Pengertian Abstraction
Sebelumnya kita telah mempelajari mengenai Encapsulation yang merupakan konsep yang mengarahkan kita ke konsep abstraction.
Definisi dari Abstraction jika dalam bidang penulisan “paper”, merupakan sebuah ringkasan yang membahas informasi penting mengenai konten yang akan dibawakan, sebelum dijelaskan secara detail dan menyeluruh.
Jika dalam bahasa pemrograman, Abstraction merupakan salah satu konsep penting yang digunakan oleh programmer untuk mempercantik dan mempermudah penggunaan kode di masa mendatang.
Dimana kita membuat sebuah ringkasan dari kesuluruhan kode, yang berisi atau hanya menyajikan informasi penting dan menyembunyikan detailnya, yang dimaksud menyembunyikan detail di sini adalah menyembunyikan latar belakang, implementasi atau mekanisme kerja dari informasi yang disajikan.
Mirip seperti encapsulation tapi berbeda dalam tujuannya, dimana encapsulation lebih berfokus kepada pembungkusan kode sedangkan abstraction berfokus pada penyajian kode.
Contoh Abstraction dunia nyata
Seseorang menggunakan smarthphone dimana disajikan tombol-tombol untuk mengendalikan smarthphone tersebut, seperti tombol untuk “menyalakan”, “mematikan” smarthphone dan untuk “menaikan menurunkan suara”, apa yang orang itu tau hanyalah sebatas pengertian itu. Orang tersebut tidak mengetahui mekanisme kerja pada tombol-tombol tersebut hingga smarthphone tersebut benar-benar melakukan tugasnya.
Contoh konsep Abstraction di C++
Sekarang perhatikan contoh program di bawah ini :
#include <iostream> using namespace std; int main(){ cout<<"Hallo semua"; return 0; }
Pada baris ke 5, kita menggunakan cout
untuk mencetak “Hallo semua”
pada layar, apa yang kita tau hanya sebatas itu. Jika anda bisa membongkar bahasa pemrograman c++ dan mencari tau latar belakang cout
, kita akan tau bahwa sebenarnya cout
memiliki mekanisme kerja yang cukup komplek untuk membuatnya berfungsi mencetak sebuah kalimat pada layar.
Abstraction pada class
Sebenarnya konsep abstraction tidak hanya dapat dilakukan pada class, karena inti dari konsep ini adalah hanya meringkas dan menyajikan informasi penting di depan. Tetapi untuk kali ini, sebagai contoh penggunaan konsep abstraksi, penulis akan mencontohkanya dengan menggunakan class.
Di dalam class terdapat anggota class yang dapat didirikan sifat aksesnya dengan “access specifier
” dimana bisa kita manfaatkan untuk konsep ini, jika anggota tersebut merupakan anggota bersifat public maka akan terlihat dari luar sedangkan jika selain itu bisa kita gunakan untuk mekanisme kerja yang komplek dan tidak pelu orang-orang tau.
Contoh program:
#include <iostream> using namespace std; class SmartPhone{ private: bool menyala = 0; //disembunyikan public: //antar muka atau informasi penting yang dapat digunakan oleh pengguna void tombolMenyalakan(){ menyala = 1; } void tombolMatikan(){ menyala = 0; } void cetakStatus(){ cout << (menyala? "Smartphone telah menyala": "Smartphone mati")<<endl; } }; int main(){ SmartPhone bcpp; bcpp.cetakStatus(); bcpp.tombolMenyalakan(); bcpp.cetakStatus(); bcpp.tombolMatikan(); bcpp.cetakStatus(); return 0; }
Hasil Program:
Smartphone telah menyala
Smartphone mati
Penulis menyadari bahwa secara mekanisme cara kerja smartphone pada dunia nyata lebih komplek lagi, tapi terpaksa penulis persingkat dengan sebuah contoh program di atas. Dapat kita lihat bahwa terdapat satu informasi yang dilindungi dan tidak dapat di akses dari luar secara langsung, dan beberapa functon untuk melakukan operasi kepada infomasi-informasi yang dilindungi.
Keuntungan menggunakan Abstraction
- Membantu untuk meningkatkan keamanan dari sebuah aplikasi atau program dengan hanya menampilkan antar muka saja.
- Memudahkan dalam pengembangan selanjutnya, Karena kode di dalam dapat di ubah secara individual tanpa menyebabkan error pada pengguna.
- Menghindarkan terjadinya duplikasi kode.
Desain strategi dan kesimpulan
Kesimpulan dari konsep abstraction adalah dimana kita mendesain sebuah kode program dengan memisahkan antar muka (informasi yang disajikan) dan implementasi (informasi mekanisme kerja dan informasi yang berada di latar belakang).
Jadi dengan hal ini dapat memberikan kemudahan dalam memahami dan menggunakan program, dan juga memudahkan pengembangan program di masa mendatang, karena ketika terjadi perubahan pada implementasi tidak akan berpengaruh pada penggunaan.
Интересно!
keren dan mudah dipahami