stdsquare²
🎓 Kelas
stdsquare / materi / slides / pertemuan-03
Tema
Japan
Arcade
Dark Retro
Font
‹ Daftar slide Pertemuan 3: Pengembangan komponen aplikasi menggunakan HTML, CSS, JavaScript, dan React Native
Program Studi Bisnis Digital • FEB

Lab Pemrograman

Pertemuan 3 — Komponen Aplikasi dengan HTML, CSS, JavaScript & React Native

Dari halaman web statis menuju blok bangun aplikasi mobile: memahami empat bahan dasar yang membentuk hampir semua aplikasi digital yang Anda pakai sehari-hari.

RPS MINGGU 3 • 2×50 MENIT

Tujuan Pembelajaran Hari Ini

Setelah pertemuan ini, Anda diharapkan mampu menjelaskan peran HTML, CSS, JavaScript, dan React Native serta menyusun komponen aplikasi sederhana.

PEMAHAMAN KONSEP
4
bahan dasar aplikasi
HTML sebagai kerangka, CSS sebagai tampilan, JavaScript sebagai interaktivitas, React Native sebagai jembatan ke aplikasi mobile.
KEMAMPUAN PRAKTIS
1
komponen aplikasi sederhana
Membaca dan menyusun struktur komponen (tampilan + gaya + perilaku) untuk sebuah tombol atau kartu produk sederhana.

Mengapa Anda Perlu Paham Empat Bahan Dasar Ini?

Sebagai calon manajer produk digital, Anda akan berbicara dengan developer setiap hari — memahami bahan dasarnya membuat Anda partner diskusi yang setara.

Bayangkan Anda product owner sebuah aplikasi UMKM. Developer bilang, "fitur keranjang belanja sudah selesai UI-nya, tapi logic tambah-kurang jumlah barang belum jalan." Kalau Anda tahu bahwa "tampilan" itu ranah HTML/CSS sedangkan "logic" atau perilaku itu ranah JavaScript, Anda langsung paham apa yang masih kurang — tanpa perlu developer menjelaskan ulang dari nol.
Kasus nyata: aplikasi seperti Tokopedia dan Gojek versi mobile dibangun dengan pendekatan komponen serupa React Native — satu tim menulis satu basis kode yang berjalan di HP Android maupun iPhone, menghemat waktu dan biaya pengembangan secara signifikan.
Bagian 1 dari 3
Fondasi Web: HTML, CSS & JavaScript
Tiga bahasa dasar yang membangun hampir setiap halaman web di internet — kerangka, tampilan, dan perilaku.

Tahap 1: HTML — Kerangka & Struktur Halaman

HTML (HyperText Markup Language) adalah bahasa yang menyusun apa saja yang ada di sebuah halaman — judul, paragraf, gambar, tombol — tanpa mengatur tampilannya.

<tag>isi konten</tag>
<h1> / <p>
  • Judul dan paragraf teks
  • Contoh: nama produk, deskripsi
<img> / <button>
  • Gambar produk
  • Tombol "Tambah Keranjang"
<div>
  • Kotak pembungkus/kontainer
  • Mengelompokkan elemen terkait

Tahap 2: CSS — Mendandani Tampilan

CSS (Cascading Style Sheets) mengatur bagaimana rupa elemen HTML — warna, ukuran, jarak, dan tata letak.

MARGIN (jarak ke elemen luar)BORDER (garis tepi)PADDING (jarak isi ke tepi)CONTENT (isi elemen)
Glosarium: box model — cara browser menghitung ukuran setiap elemen: content + padding + border, dikelilingi margin di luar.

Hitung dari Nol: Total Lebar Sebuah Kotak Produk

Studi kasus: sebuah kartu produk punya width: 200px, padding: 20px tiap sisi, border: 5px tiap sisi, dan margin: 10px tiap sisi.

LangkahPerhitunganNilai
1. Lebar konten (width yang ditulis)langsung dari kode200px
2. Tambahan padding kiri + kanan20px × 2 sisi40px
3. Tambahan border kiri + kanan5px × 2 sisi10px
4. Total lebar kotak yang tampak200 + 40 + 10250px
5. Total ruang termasuk margin (jarak ke kotak sebelah)250 + (10px × 2 sisi)270px
RUANG YANG SEBENARNYA DIPAKAI
270px
bukan 200px seperti yang tertulis di "width" — jebakan paling umum pemula

Coba Sendiri: Hitung Total Lebar Kotak Anda

Ubah nilai width, padding, border, dan margin, lalu amati bagaimana ruang total yang dipakai kotak berubah.

Tahap 3: JavaScript — Membuat Halaman "Hidup"

JavaScript menambahkan perilaku — merespons klik, mengubah isi halaman tanpa reload, memvalidasi input pengguna.

Tanpa JavaScript
  • Tombol "Tambah Keranjang" tidak merespons
  • Halaman statis, seperti brosur digital
  • Setiap aksi butuh muat ulang halaman
Dengan JavaScript
  • Klik tombol langsung menambah jumlah item
  • Notifikasi "berhasil ditambahkan" muncul instan
  • Form login memberi peringatan sebelum submit
Glosarium: DOM (Document Object Model) — representasi halaman HTML di dalam memori browser yang bisa "diutak-atik" JavaScript secara langsung, misalnya mengubah teks atau warna tanpa memuat ulang halaman.

Alur Sebuah Klik Tombol: Bagaimana JavaScript Bekerja

Studi kasus: pengguna menekan tombol "+" untuk menambah jumlah barang di keranjang belanja.

LangkahYang terjadiAnalogi
1. Pengguna menekan tombol "+"Browser mendeteksi event "click"Menekan bel pintu
2. JavaScript "mendengar" event tersebutFungsi event listener aktifOrang di dalam rumah mendengar bel
3. JavaScript menjalankan fungsi terkaitNilai jumlah barang ditambah 1Orang itu berjalan membuka pintu
4. DOM diperbarui, layar berubahAngka jumlah tampil baru, tanpa reloadPintu terbuka, tamu langsung terlihat
Bagian 2 dari 3
Dari Web ke Aplikasi Mobile: React Native
Bagaimana pengetahuan HTML, CSS, dan JavaScript dipakai kembali untuk membangun aplikasi yang berjalan di HP.

Tahap 4: React Native — Satu Kode, Dua Platform

React Native adalah kerangka kerja (framework) untuk menulis aplikasi mobile memakai JavaScript, yang bisa berjalan di Android dan iOS sekaligus.

1 Basis Kode (JS)Aplikasi AndroidAplikasi iOS
Bandingkan: cara lama (native) mengharuskan tim menulis kode Kotlin untuk Android dan kode Swift untuk iOS secara terpisah — dua tim, dua basis kode, dua kali biaya perawatan.

Tahap 5: Komponen, JSX & Props — Blok Bangun Aplikasi

Aplikasi React Native disusun dari komponen — potongan kode yang bisa dipakai berulang, ditulis dengan sintaks mirip HTML bernama JSX.

Komponen & JSX
  • Komponen = "cetakan kue" yang bisa dipakai berkali-kali
  • JSX = campuran JavaScript + tampilan mirip HTML
  • Contoh: komponen <TombolBeli /> dipakai di banyak halaman
Props (Properties)
  • "Isian" yang dikirim ke sebuah komponen
  • Mis. warna, teks tombol, harga produk berbeda-beda
  • Satu komponen, tampilan bisa bervariasi lewat props
Glosarium: props — singkatan dari properties, yaitu data yang "dititipkan" ke sebuah komponen supaya tampilannya bisa disesuaikan tanpa menulis ulang kodenya.

Dari HTML ke JSX: Perbandingan Bertahap

Studi kasus: mengubah sebuah tombol sederhana dari HTML web menjadi komponen React Native.

LangkahHTML (Web)JSX (React Native)
1. Elemen dasar tombol<button>Beli</button><Pressable><Text>Beli</Text></Pressable>
2. Menambahkan gaya/warnaclass="tombol-merah" (CSS terpisah)style={styles.tombolMerah} (StyleSheet)
3. Menangani klikonclick="tambahKeranjang()"onPress={tambahKeranjang}
4. Hasil akhirBerjalan di browser (web)Berjalan sebagai aplikasi native di HP

Tahap 6: Styling di React Native — StyleSheet vs CSS

React Native memakai StyleSheet, objek JavaScript yang meniru cara berpikir CSS — tanpa file .css terpisah.

CSS (Web)
  • File terpisah (.css) atau di dalam <style>
  • Properti: color, padding, margin
  • Satuan: px, %, rem, em
StyleSheet (React Native)
  • Objek JavaScript di dalam file komponen
  • Properti serupa: color, padding, margin
  • Satuan: angka polos (tanpa "px"), otomatis pas layar HP
Kabar baik: karena konsepnya nyaris identik dengan CSS, mahasiswa yang sudah paham box model tadi (padding, border, margin) tinggal menyesuaikan sedikit cara penulisannya di React Native.

Hitung dari Nol: Efisiensi Waktu React Native vs Native Terpisah

Studi kasus: tim mengembangkan fitur "Login" untuk aplikasi. Bandingkan total waktu jika ditulis native terpisah vs React Native.

LangkahPerhitunganNilai
1. Waktu tulis fitur Login native Android (Kotlin)estimasi tim20 jam
2. Waktu tulis fitur Login native iOS (Swift)estimasi tim, terpisah dari Android20 jam
3. Total waktu jika native (2 basis kode)20 + 2040 jam
4. Waktu tulis fitur Login di React Native (1 basis kode)estimasi tim, untuk 2 platform sekaligus25 jam
5. Persentase waktu yang dihemat(40−25) ÷ 40 × 100%37,5%
EFISIENSI WAKTU DENGAN REACT NATIVE
37,5%
hemat 15 jam dari 40 jam, untuk satu fitur saja — ilustrasi, bukan angka baku industri

Coba Sendiri: Bandingkan Waktu Native vs React Native

Ubah estimasi jam kerja tiap pendekatan, lalu amati persentase waktu yang dihemat.

Bagian 3 dari 3
Merangkai Komponen Jadi Aplikasi
Menyatukan HTML, CSS, JavaScript, dan React Native dalam satu gambaran besar, lalu berlatih langsung.

Peta Alur Lengkap: Dari HTML ke Aplikasi Mobile

HTML (struktur)CSS (tampilan)JavaScript (perilaku)Komponen +JSX (React Native)Aplikasi Mobile LiveKonsep struktur-tampilan-perilaku tetap sama; hanya wujud kodenya berubah saat masuk ke React Native
Sub-CPMK minggu ini: Anda mampu menjelaskan peran HTML, CSS, JavaScript, dan React Native, serta mengenali struktur, gaya, dan perilaku dalam sebuah komponen aplikasi.

Latihan Kelas: Diagnosis Komponen Sederhana

Kerjakan berpasangan (5 menit), lalu kita bahas bersama.

Kasus: Sebuah komponen "KartuProduk" di aplikasi mobile UMKM batik menampilkan foto, nama produk, dan tombol "Beli". Foto dan nama sudah tampil rapi, tapi tombol "Beli" tidak merespons saat ditekan.
Pertanyaan Diskusi
  • Bagian mana (struktur/gaya/perilaku) yang kemungkinan bermasalah?
  • Bahasa/konsep apa yang perlu dicek developer?
  • Apakah ini soal HTML/JSX, CSS/StyleSheet, atau JavaScript?
Yang Perlu Anda Cek
  • Apakah komponen Pressable/onPress sudah terpasang?
  • Apakah fungsi event listener-nya sudah ditulis?
  • Apakah props teks tombol sudah benar diterima?

Rangkuman: Cheat Sheet Empat Bahan Dasar

BahanPeranPertanyaan Kunci
HTMLStruktur/kerangka halamanApa saja yang ada di layar?
CSSTampilan (box model: content-padding-border-margin)Bagaimana rupanya?
JavaScriptPerilaku & interaktivitas (event, DOM)Apa yang terjadi saat diklik?
React NativeKomponen (JSX + props) untuk aplikasi mobile lintas platformSatu kode, jalan di Android & iOS?
Kata kunci hari ini: komponen (blok bangun), JSX (sintaks tampilan), props (data titipan), StyleSheet (gaya di React Native).

Penutup: Tugas & Persiapan Minggu Depan

Tugas Individu
  • Amati 1 aplikasi mobile yang sering Anda pakai
  • Identifikasi 3 komponen di dalamnya (struktur/gaya/perilaku)
  • Tuliskan props apa saja yang mungkin dipakai tiap komponen
MINGGU DEPAN
P4
Integrasi Python ke React Native
Bagaimana script Python dasar bisa "berbicara" dengan komponen aplikasi React Native yang sudah kita kenal hari ini.