Abstraksi dalam bidang Ilmu Komputer

Abstraksi dalam Bidang Ilmu Komputer

Abstraksi
Pernahkah kamu mendengar kata abstraksi
 dalam kehidupan sehari-hari? Mungkin ini akan terdengar asing bagi kamu yang baru akan terjun ke bidang IT. Namun, sebenarnya kata ini sering digunakan dalam bidang ilmu komputer. 

Ilmu komputer adalah disiplin yang membutuhkan pengetahuan tentang software, hardware, dan interaksi antara keduanya. Banyak Developer mengandalkan abstraksi untuk menghapus elemen yang tidak relevan ketika berinteraksi dengan hardware. Mempelajari lebih lanjut proses penyederhanaan ini dapat membantu Developer menyederhanakan alur kerja mereka dan memecahkan masalah dengan lebih efektif.

Pengertian Abstraksi 

Dalam konteks komputer atau pemrograman, abstraksi adalah proses dalam menyembunyikan detail implementasi dengan tujuan agar Developer dapat fokus terhadap alur bisnis dibandingkan dengan menulis kode secara terperinci. Dengan menggunakan proses ini, kode yang ditulis developer bersifat deklaratif (ringkas).

💻 Mulai Belajar Pemrograman

Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.

Daftar Sekarang

Sederhananya, ia adalah proses menghilangkan elemen kode atau program yang tidak relevan atau mengutamakan elemen yang lebih penting. Abstraksi mengacu pada melihat sesuatu untuk mempertahankan bentuk atau makna umum sambil mengurangi adanya detail spesifik. 

Fungsi Abstraksi 

Ada beberapa fungsi utama abstraksi dalam ilmu komputer, yaitu:

Collaboration

Collaboration

Ia membantu Developer berkolaborasi dengan lebih baik lagi. Dengan mengetahui abstraksinya, kita dapat melihat jenis input dan output pada fungsi, tanpa perlu melihat detail implementasinya. Dengan adanya abstraksi, Developer juga dapat saling percaya dan fokus terhadap pekerjaan atau tujuan masing-masing. Ia bisa diibaratkan sebagai panduan atau bahkan kontrak yang mengikat antara developer.

Generalization

Abstraction sebenarnya mirip dengan generalisasi. Namun, saat membahas abstraksi dalam bidang ilmu komputer, kamu dapat membuat sebuah program komputer. 

Misalnya, jika kamu ingin komputer menjalankan tugas tertentu, kamu tentu perlu menulis sebuah program yang dapat melakukan tugas tersebut. Kamu tentu harus memikirkan tugas tersebut dalam bentuk yang paling dasar.


Jika ingin membuat program yang mengalikan empat dengan enam, kamu dapat membuat fungsi yang mengalikan dua angka lalu memasukkan empat dan enam ke dalam program tersebut. Di sini, kamu telah mengabstraksi program dari yang khusus tentang dua angka menjadi menghitung perkalian secara umum.

User Perception

Ia juga dapat merujuk pada cara pengguna berpikir tentang suatu program. Apa yang dilihat pengguna tentu berbeda dengan cara kerja perangkat atau program. Sebagai contoh, kamu bisa mengetikkan kalimat ke dalam dokumen di komputer. Kamu dapat melihat kata-kata tersebut muncul, tetapi tidak menyaksikan berbagai perintah yang dikeluarkan komputer untuk merekam arti tombol pada keyboard, menyimpannya dalam memori, dan mengirimkan kode tersebut ke monitor.

Jenis-jenis Abstraksi

Data abstraction

Data abstraction adalah elemen bahasa komputer yang memungkinkan Developer memahami kode dan berkomunikasi dengan hardware. 

Contoh abstraksi data adalah tipe data “string” yang digunakan dalam bahasa pemrograman komputer sederhana untuk menunjukkan string teks. Penyederhanaan konsep seperti ini memungkinkan Developer untuk berkomunikasi dengan sistem secara lebih mudah. 

Bahasa yang kompleks tentu saja akan memiliki tipe data yang lebih kompleks, tetapi semuanya memiliki fungsi abstraksi dasar yang sama yang memungkinkan Developer untuk menggunakannya kembali dalam aplikasi berbeda, menyederhanakan mekanisme perilaku hardware, dan membuat abstraksi baru yang dikompilasi dari berbagai tipe data.

Control Abstraction

Control abstraction adalah ketika seorang Developer membuat control construct baru yang merupakan statement dalam program untuk mendefinisikan bagaimana komputer menjalankan fungsinya. Ia sangat penting untuk menciptakan sistem software yang scalable karena memungkinkan Developer mengembangkan fungsionalitas baru dalam suatu program. Beberapa bahasa pemrograman masyhur mengandalkan abstraksi kontrol untuk memfasilitasi komunikasi antara Developer dan sistem komputer.

Kenapa Abstraksi Penting dalam Bidang Ilmu Komputer?

Abstraksi penting karena membantu Developer mengonsep program yang mereka buat. Mereka dapat bekerja lebih cepat dan mereferensikan berbagai aspek program atau kode secara lebih efisien. Proses ini juga memungkinkan mereka bekerja lebih cepat dalam membuat program yang lebih kompleks. 

Kita tahu bahwa program itu kompleks dan memerlukan banyak kode untuk menjalankan fungsi-fungsi yang dibutuhkan. Oleh karenanya, untuk terus menyempurnakan kode-kode dan membuat program baru, Developer dapat mengandalkan abstraksi kode sebelumnya untuk membantu mereka memahami cara kerja kode secara umum.

Contoh Abstraksi dalam Kehidupan

Contoh abstraksi modern dapat diilustrasikan dalam sebuah application programming interface (API), yang sangat lazim dalam sistem lintas platform.

Kita tahu bahwa API adalah cara utama untuk menyediakan informasi abstraks sehingga “pihak ketiga” tidak perlu mengetahui banyak tentang codebase kita. Simpelnya, API adalah “penghubung” antar stakeholder. Stakeholder dapat menggunakan API untuk menghubungkan satu kode aplikasi ke kode aplikasi lain, mendorong kumpulan data melalui lingkungan lintas platform, serta memungkinkan program-program tersebut saling berkolaborasi secara otomatis.

API kemudian berfungsi sebagai sarana utama abstraksi dengan membangun prinsip-prinsip berorientasi objek yang menunjukkan “outside program” apa yang dilakukan “inside program”.

Sebagai penutup, abstraksi hanyalah proses membuat informasi basis kode lebih fleksibel dengan menyederhanakan cara penyajiannya dalam sistem eksternal. Namun, hal ini telah menyebabkan kemajuan teknologi secara besar-besaran sebelum perubahan lainnya seperti peralihan ke virtualisasi jaringan.


Belajar Pemrograman Gratis
Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.