Gambaran Besar Dulu
Bayangin kamu mau pergi ke mall yang belum pernah kamu datengin. Kamu buka Google Maps, dan yang muncul adalah peta. Peta itu nggak nunjukin warna cat tembok tiap toko, nggak nunjukin berapa banyak orang di dalamnya, nggak ada foto-foto interior — yang ada cuma jalan, nama lokasi, dan arah.
Nah, itu namanya abstraksi.
Peta adalah versi “disederhanakan” dari kota nyata. Detail yang nggak relevan sama tujuan kamu (navigasi) dibuang. Yang penting saja yang ditampilkan.
Di dunia komputer dan pemrograman, abstraksi punya peran yang sama: fokus ke apa yang penting, buang yang tidak perlu.
Definisi yang Gampang Dicerna
Abstraksi = proses menyarikan (mengambil inti) dari sebuah masalah, lalu membuang detail yang tidak perlu supaya kita bisa fokus ke solusi.
Kata kuncinya dua: ambil yang penting, buang yang tidak relevan.
Belajar Dari Kasus Nyata: Sistem Perpustakaan Sekolah
Anggap kamu diminta bikin sistem informasi perpustakaan sekolah. Pertanyaannya: data apa saja yang perlu dicatat?
Langkah 1 — Pahami masalahnya dulu
Sebelum nulis kode atau desain apapun, tanya dulu: “Apa tujuan sistem ini?”
Tujuannya sederhana: mencatat buku yang ada, mencatat siapa yang meminjam, dan tahu status buku (dipinjam atau tersedia).
Langkah 2 — Identifikasi data yang PENTING
Data yang memang dibutuhkan untuk menjalankan sistem perpustakaan:
- Judul buku
- Nama penulis
- ISBN (kode unik buku, seperti nomor KTP-nya buku)
- Status buku: tersedia / dipinjam
- Nama anggota peminjam
- Tanggal pinjam dan tanggal kembali
Langkah 3 — Buang data yang TIDAK RELEVAN
Ada banyak informasi tentang buku yang sebetulnya tidak perlu dicatat di sistem:
- Warna sampul buku (tidak berguna untuk pencarian atau peminjaman)
- Berat buku dalam gram (buat apa?)
- Nama percetakan yang ngeprint kertas (tidak relevan)
- Font yang dipakai di halaman dalam (sama sekali tidak penting)
Kalau semua itu dimasukkan, sistemnya jadi berat dan ribet — tanpa manfaat tambahan apapun.
Langkah 4 — Buat model abstraknya
Setelah data dipilah, baru kamu bisa bikin model sederhana. Di dunia IT, ini sering disebut Entity (entitas = benda/objek yang perlu dicatat). Untuk perpustakaan, ada tiga entitas utama:
BUKU ANGGOTA PEMINJAMAN
--------- ---------- ---------------
Judul ID Anggota ID Peminjaman
Penulis Nama ID Buku (ref)
ISBN Kelas ID Anggota (ref)
Status No. HP Tgl Pinjam
Tgl Kembali
Model ini bersih. Tidak ada yang berlebihan. Inilah hasil abstraksi yang baik.
Langkah 5 — Abstraksi dalam pemrograman nyata
Kalau kamu sudah belajar coding nanti, abstraksi juga muncul dalam bentuk API (Application Programming Interface). API itu semacam remote control: kamu tinggal tekan tombol “pinjam buku”, dan sistemnya langsung jalan di belakang layar — kamu tidak perlu tahu detail teknisnya. Yang penting hasilnya keluar.
Ini persis seperti kamu pakai mesin ATM. Kamu tidak perlu tahu cara bank transfer uang secara teknis. Kamu cukup masukkan PIN, pilih nominal, dan uang keluar. Kompleksitasnya disembunyikan. Itulah abstraksi.
Latihan Kelompok: Kantin Sekolah
Sekarang giliran kalian. Bayangkan sekolah mau bikin aplikasi pemesanan makanan di kantin. Dari kasus ini:
Yang penting dicatat:
- Menu yang tersedia dan harganya
- Nama pembeli / nomor meja
- Jumlah pesanan
- Status pesanan (sudah dibayar / belum, sudah disiapkan / belum)
Yang tidak relevan:
- Nama chef yang masak
- Jam berapa bahan baku datang
- Warna piring yang dipakai
- Berapa langkah yang diambil pelayan saat mengantarkan pesanan
Jebakan Umum yang Sering Terjadi
Ada beberapa kesalahan yang sering dilakukan pemula:
Terlalu banyak data. Masukkan semua informasi yang ada “karena siapa tahu berguna.” Hasilnya: sistem lambat, bingung, dan susah dikelola.
Abstraksi terlalu tipis. Data yang penting malah tidak dimasukkan. Misalnya: sistem perpustakaan tidak mencatat tanggal kembali — akhirnya tidak bisa tahu buku terlambat dikembalikan atau tidak.
Bingung “relevan untuk siapa”. Data relevan itu relatif tergantung tujuan sistem. ISBN penting untuk sistem perpustakaan, tapi mungkin tidak penting untuk sistem donasi buku bekas antar teman.
Kuncinya selalu balik ke pertanyaan awal: apa tujuan sistem ini dibuat?
Kuis Pemahaman
Setelah memahami materi di atas, coba jawab tiga pertanyaan ini:
- Konseptual: Apa perbedaan antara “data penting” dan “detail yang tidak relevan” dalam proses abstraksi? Berikan contoh kasus selain perpustakaan.
- Prosedural: Kamu diminta membuat sistem absensi kelas berbasis digital. Tuliskan minimal 4 data yang perlu dicatat, dan 2 data yang sebaiknya tidak dimasukkan. Jelaskan alasannya.
- Troubleshooting: Sebuah teman membuat sistem informasi toko baju online dan memasukkan data: nama supplier kain, jenis benang yang dipakai, dan nama mesin jahit yang digunakan. Apa yang salah dengan pendekatannya? Apa yang seharusnya dilakukan?