- Bab 3 dari 8
- 30 menit
- 2 latihan kode
- 4 soal kuis
Abstraksi: Menyaring yang Penting
Di bab ini (9 bagian)
Tujuan bab ini
- Menjelaskan abstraksi sebagai kegiatan menyaring informasi.
- Memisahkan informasi penting dan tidak penting pada sebuah kasus.
- Membuat model sederhana dari masalah nyata, seperti menghitung kebutuhan keramik.
- Menuliskan abstraksi dalam JavaScript dengan objek dan fungsi.
Terlalu banyak informasi juga masalah
Bayangkan temanmu bertanya arah ke rumahmu, lalu kamu menjawab dengan menyebutkan warna setiap pagar, merek setiap warung, dan jumlah pohon di sepanjang jalan. Semua informasi itu benar, tetapi temanmu justru bingung. Yang ia butuhkan hanya belokan dan patokan penting.
Di sinilah pilar ketiga berperan. Abstraksi adalah kegiatan menyaring informasi: mempertahankan hal yang penting untuk menyelesaikan masalah dan mengabaikan detail yang tidak diperlukan. Hasil abstraksi adalah sebuah model, yaitu gambaran masalah yang cukup sederhana namun tetap berguna.
Contoh klasik: peta jalur kereta
Peta kota yang detail memuat jalan, gedung, sungai, dan taman. Peta jalur kereta jauh lebih sederhana: hanya stasiun dan urutannya. Peta itu tidak menampilkan gedung, jalan, atau jarak sebenarnya.
Apakah peta jalur kereta "salah" karena tidak akurat? Tidak. Penumpang kereta hanya butuh urutan stasiun dan titik transit. Informasi lain justru mengganggu. Peta jalur kereta adalah abstraksi yang baik karena sesuai dengan tujuannya.
Pelajaran pentingnya: abstraksi selalu bergantung pada tujuan. Kalau tujuanmu mencari restoran di dekat stasiun, peta jalur kereta tidak cukup dan kamu butuh peta kota. Tidak ada abstraksi yang benar untuk semua masalah.
Kasus: menghitung kebutuhan keramik lantai kelas
Misalkan sekolah ingin mengganti keramik lantai kelasmu. Ada banyak informasi tentang kelas itu:
| Informasi | Penting atau diabaikan? |
|---|---|
| Panjang lantai | Penting |
| Lebar lantai | Penting |
| Ukuran keramik | Penting |
| Warna dinding | Diabaikan |
| Jumlah meja | Diabaikan |
| Nama wali kelas | Diabaikan |
Warna dinding mungkin penting kalau masalahnya mengecat ulang. Nama wali kelas penting kalau masalahnya membuat surat. Tetapi untuk menghitung keramik, yang relevan hanya ukuran lantai dan ukuran keramik.
Setelah informasi disaring, kita bisa membuat modelnya:
jumlah keramik = (panjang × lebar) ÷ luas 1 keramik
Contoh perhitungan
Lantai kelas berukuran 800 cm × 700 cm, dan keramiknya persegi dengan sisi 40 cm.
- Luas lantai = 800 × 700 = 560.000 cm².
- Luas 1 keramik = 40 × 40 = 1.600 cm².
- Jumlah keramik = 560.000 ÷ 1.600 = 350 keping.
Bagaimana kalau hasilnya tidak bulat, misalnya 350,4? Keramik tidak bisa dibeli sebagian, jadi kamu harus membulatkan ke atas menjadi 351. Ini contoh bagaimana model perlu disesuaikan dengan kenyataan.
Abstraksi dalam JavaScript
Objek: wadah informasi
Di JavaScript, informasi tentang satu benda bisa disimpan dalam objek:
Objek ditulis dengan kurung kurawal. Setiap isi berbentuk nama: nilai dan dipisah koma. Untuk membaca nilainya, pakai titik, misalnya kelas.panjang.
Fungsi yang hanya mengambil yang penting
Abstraksi berarti fungsi kita hanya memakai informasi yang relevan:
Math.ceil adalah fungsi bawaan JavaScript untuk membulatkan ke atas. Math.ceil(350.4) menghasilkan 351, sedangkan Math.ceil(350) tetap 350.
Perhatikan bahwa jumlahKeramik sama sekali tidak tahu tentang warna dinding atau wali kelas. Fungsi ini bisa dipakai untuk kelas mana pun, bahkan untuk ruang tamu di rumah. Itulah keuntungan abstraksi: model yang sederhana lebih mudah dipakai ulang.
Kenapa memakai sentimeter?
Kamu mungkin bertanya kenapa contoh ini memakai sentimeter, bukan meter. Komputer menyimpan bilangan desimal dengan cara yang kadang tidak tepat. Coba hitung 8 × 7 ÷ (0,4 × 0,4) di JavaScript, hasilnya 349,99999999999994, bukan 350. Kalau hasil itu dibulatkan ke atas, kamu tetap mendapat 350, tetapi pada perhitungan lain selisih kecil seperti ini bisa menggeser hasil satu keping. Memakai bilangan bulat (sentimeter) menghindari masalah itu. Ini juga bagian dari abstraksi: memilih satuan yang paling memudahkan.
Cara melatih abstraksi
Saat menghadapi masalah, ajukan tiga pertanyaan ini:
- Apa tujuanku? Tanpa tujuan, kamu tidak bisa menilai mana yang penting.
- Informasi apa yang memengaruhi hasil? Kalau sebuah informasi diubah dan hasilnya tetap sama, informasi itu kemungkinan bisa diabaikan.
- Bisakah aku menuliskannya sebagai model atau rumus? Model membuat solusi bisa dipakai ulang.
Coba terapkan pada masalah "memilih rute ke sekolah". Tujuannya sampai tepat waktu. Yang memengaruhi hasil: jarak, kemacetan, dan jadwal angkutan. Yang bisa diabaikan: warna angkot dan nama jalan yang tidak kamu lewati.
Latihan berpikir: rapor dan peringkat
Wali kelas ingin menentukan siswa dengan rata-rata nilai tertinggi. Data setiap siswa memuat nama, alamat, nomor telepon orang tua, hobi, tinggi badan, dan nilai lima mata pelajaran. Mana yang penting?
Tujuannya mencari rata-rata tertinggi, jadi yang dibutuhkan hanya nama (untuk mengumumkan pemenangnya) dan nilai. Alamat, nomor telepon, hobi, dan tinggi badan tidak memengaruhi hasil. Modelnya: rata-rata = jumlah nilai ÷ banyaknya mata pelajaran, lalu bandingkan rata-rata semua siswa. Dari enam jenis informasi, cukup dua yang dipakai.
Kesalahan umum
- Membuang informasi yang ternyata penting. Kalau kamu lupa ukuran keramik, modelnya tidak bisa dihitung. Abstraksi berarti menyaring, bukan membuang sembarangan.
- Menyimpan semua informasi "untuk jaga-jaga". Fungsi yang menerima sepuluh parameter padahal hanya butuh tiga akan sulit dipakai dan dibaca.
- Lupa menyesuaikan model dengan kenyataan. Hasil pembagian 350,4 keping tidak masuk akal di toko bangunan, jadi perlu dibulatkan ke atas.
Rangkuman
- Abstraksi adalah menyaring informasi: ambil yang penting, abaikan yang tidak relevan.
- Hasil abstraksi berupa model yang sederhana namun tetap berguna, seperti peta jalur kereta.
- Apa yang penting selalu bergantung pada tujuan masalahnya.
- Model kebutuhan keramik: (panjang × lebar) ÷ luas 1 keramik, lalu dibulatkan ke atas.
- Dalam JavaScript, objek menyimpan banyak informasi, sedangkan fungsi yang baik hanya memakai yang relevan.
Slide 12 sampai 12 dari deck Computational Thinking: Berpikir Komputasional dari Nol. Penjelasan lengkapnya ada di mode Baca.

Selesaikan bab ini
- 1. Baca materi
- 2. Latihan kode (2)
- 3. Kuis (4 soal)
Latihan kode: Keramik dari data ruangan
Data ruangan disimpan sebagai objek yang memuat banyak informasi, misalnya:
Tulis kebutuhanKeramik(ruang, sisiKeramik) yang menghitung jumlah keramik persegi yang dibutuhkan. Semua ukuran dalam sentimeter.
- Pakai hanya
ruang.panjangdanruang.lebar(abstraksi). - Rumus: (panjang × lebar) ÷ (sisi × sisi), lalu bulatkan ke atas dengan
Math.ceil.
Contoh: ruang 800 × 700 dengan keramik 40 cm butuh 350 keping.
Latihan kode: Saring data siswa
Data siswa memuat banyak hal, padahal untuk peringkat kita hanya butuh nama dan rata-rata nilai.
Tulis ringkasSiswa(siswa) yang menerima objek seperti:
dan mengembalikan objek baru yang hanya berisi nama dan rataRata, misalnya { nama: "Ani", rataRata: 80 }.
Petunjuk: jumlahkan isi siswa.nilai dengan perulangan for, lalu bagi dengan siswa.nilai.length. Objek baru ditulis { nama: ..., rataRata: ... }.
Cek pemahaman
1Untuk menghitung kebutuhan keramik lantai kelas, informasi mana yang penting?
2Kenapa peta jalur kereta disebut contoh abstraksi yang baik?
3Informasi yang diabaikan dalam abstraksi selalu sama untuk semua masalah.
4Apa hasil kode berikut?
Math.ceil(560000 / 1600 + 0.4);