Abstraksi vs Enkapsulasi: Perbedaan Antara Abstraksi dan Enkapsulasi
Diterbitkan: 2021-02-09Daftar isi
pengantar
Setiap programmer berkembang untuk mengembangkan kode yang rapi dan bersih, dan dia harus menggunakan senjata yang tepat dari armor atau konsep OOP. Menggunakan konsep OOP yang tepat akan mengurangi kompleksitas dan entitas objek dipisahkan dengan bagian lain dari kode. Selain itu, ini meningkatkan keterbacaan dan dapat dengan mudah dimodifikasi jika diperlukan.
Juga, konsep OOP seperti pewarisan memberikan ekstensibilitas kode. Konsep-konsep ini berguna untuk mendefinisikan kelas abstrak, memperbarui kode yang diimplementasikan sebelumnya, mengimplementasikan aplikasi untuk skenario kehidupan nyata.
Abstraksi, enkapsulasi adalah konsep dasar dalam pemrograman berorientasi objek. Dan setiap programmer mengimplementasikan konsep-konsep ini untuk kode yang bersih dan dapat digunakan kembali. Tetapi ada banyak perbedaan antara kedua konsep ini, mari kita pahami di artikel ini.
Pada awalnya, mari kita berjalan cepat melalui konsep abstraksi dan enkapsulasi.
Abstraksi
Abstraksi adalah proses menyembunyikan data yang tidak perlu dan hanya menampilkan data yang relevan. Dari lautan data, kami hanya menjaga transparansi beberapa data kepada pengguna. Konsep penting dalam pemrograman berorientasi objek ini akan mengurangi kompleksitas kode dan meningkatkan keterbacaan.
Misalnya, kita diberi tugas untuk membuat portal pendaftaran kursus online, dan bidang data yang tersedia untuk kita adalah {nama, usia, pekerjaan saat ini, nama perguruan tinggi, nama kursus, metode pembayaran, nama saudara, status perkawinan, kendaraan nomor}.
Setelah melihat bidang data yang tersedia, kami akan memahami bahwa beberapa bidang tidak diperlukan untuk portal pendaftaran kursus, bidang seperti {nama saudara, status perkawinan, nomor kendaraan} tidak diperlukan untuk pendaftaran kursus.
Jadi, kita harus spesifik dan hanya memilih data yang relevan. Sekarang bidang yang diperlukan adalah {nama, usia, pekerjaan saat ini, nama perguruan tinggi, nama kursus, metode pembayaran}, ini membuat contoh abstraksi di OOP karena kami telah mengawal informasi yang dipilih dari seluruh data.
Sekarang, data baru ini juga dapat digunakan untuk beberapa aplikasi lain seperti pelacak status kursus, catatan penyelesaian kursus, dll. Kami dapat menggunakan data yang sama tanpa perubahan apa pun.
Banyak orang sering bingung tentang abstraksi dan kelas abstrak, Jadi apakah keduanya terkait?
Kelas abstrak berbeda dari abstraksi, kelas/metode abstrak dibuat dengan maksud untuk mengimplementasikannya di kelas anak atau subkelas. Sedangkan abstraksi hanya menyembunyikan data, dan hanya menampilkan data yang relevan dengan menggunakan penentu akses seperti publik, dilindungi, pribadi.
Enkapsulasi
Enkapsulasi adalah mengikat anggota data dengan variabel anggota. Ini akan menghindari akses langsung variabel, karena akses langsung variabel dapat melanggar privasi, dan penyembunyian implementasi tidak akan mungkin dilakukan.
Kita mungkin telah melalui beberapa metode klasik di kelas seperti set dan get, di mana metode set digunakan untuk memperbarui atau mengalokasikan nilai ke variabel dan metode get digunakan untuk membaca atau mengambil nilai variabel. Di sini kita dapat langsung mengakses variabel menggunakan objek kelas itu, tetapi jika kita ingin membuat variabel menjadi pribadi maka kita harus menggunakan pengaturan ini dan mendapatkan metode.
Konsepnya sederhana, kita akan membuat metode set dan get menjadi publik dan variabelnya bersifat pribadi. Jadi variabel hanya dapat diakses melalui metode publik di luar kelas karena objek pribadi tidak dapat diakses di luar kelas tetapi dapat diakses di dalam kelas. Konsep mengikat atau menggabungkan variabel dengan metode ini disebut enkapsulasi.
Mari kita lihat program java sederhana untuk memahami hal ini dengan lebih baik.
kelas Pendaftaran Kursus { nama_siswa String pribadi ; String pribadi course_name; String publik getName (){ kembalikan nama_siswa; } public void setName (Nama string){ ini .student_name=nama; } publik String getCourse (){ kembali course_name; } public void setCourse (Kursus string){ ini .course_name=kursus; } } pGrad kelas publik { public static void main (String[] args){ CourseRegistration c= new CourseRegistration(); c.setName( “mithun” ); c.setCourse( "Ilmu Data" ); System.out.println(c.getName()); System.out.println(c.getCourse()); } } |
Dalam kode di atas, kita telah membuat class CourseRegistration, di mana variabel anggota nama siswa, dan nama kursus bersifat pribadi, tetapi kita mengaksesnya di kelas lain menggunakan nama yang ditetapkan dan fungsi get name. Di kelas utama, kami telah membuat objek dengan tipe CourseRegistration. Kami menginisialisasi dan mengakses variabel anggota menggunakan fungsi set dan get.
Sekarang setelah kita melihat definisi dan contoh abstraksi, mari kita bahas kelebihan dan perbedaan antara abstraksi dan enkapsulasi.
Keuntungan Abstraksi
- Privasi data dijaga karena hanya data yang relevan yang dapat dilihat oleh pengguna.
- Mengurangi kerumitan kode dan meningkatkan keterbacaan.
- Kelas yang mengimplementasikan abstraksi dapat digunakan sebagai kelas induk dengan mewarisinya, sehingga meningkatkan kegunaan kembali, dan mengurangi duplikasi.
Keuntungan Enkapsulasi
- Ini membantu dalam mengikat anggota data dengan fungsi anggota.
- Meningkatkan efisiensi dan ramah pengguna untuk analisis kesalahan.
- Memberikan fleksibilitas kepada programmer dalam mengontrol aksesibilitas dan transparansi data.
Perbedaan Antara Abstraksi dan Enkapsulasi
Definisi
- Abstraksi menyembunyikan detail dan implementasi kode.
- Enkapsulasi menyembunyikan data dan mengontrol visibilitas kode.
Fase
- Abstraksi adalah proses tingkat desain.
- Enkapsulasi adalah proses tingkat implementasi.
Kemampuan Penting
- Abstraksi berkaitan dengan apa yang dapat dilakukan oleh instance kelas, alih-alih implementasi kelas.
- Enkapsulasi membantu dalam pengikatan data dan kontrol atas menjaga transparansi data.
Gunakan Kasus
- Abstraksi adalah proses tingkat desain dan digunakan untuk mengurangi kompleksitas pada tahap perancangan suatu proyek.
- Enkapsulasi adalah proses tingkat implementasi, dan digunakan untuk memberikan privasi dan mempertahankan kontrol atas transparansi data pada tahap implementasi proyek.
Bagaimana Menerapkan
- Abstraksi dapat dicapai dengan menggunakan kelas dan antarmuka di java.
- Enkapsulasi juga diimplementasikan menggunakan kelas dan kontrol atas privasi data diperoleh dengan menentukan penentu akses seperti protected, public, private.
Pelajari Kursus Pengembangan Perangkat Lunak online dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Tingkat Lanjut, atau Program Magister untuk mempercepat karier Anda.
Kesimpulan
Kami telah membahas pentingnya konsep OOP, memahami definisi abstraksi dan enkapsulasi. Berjalan melalui contoh-contoh abstraksi, dan enkapsulasi. Kami juga telah melihat keuntungan menggunakan konsep OOP seperti abstraksi dan enkapsulasi. Dan akhirnya, kita telah melewati perbedaan antara abstraksi dan enkapsulasi.
Sekarang setelah Anda mengetahui definisi dan implementasi abstraksi, enkapsulasi, coba terapkan dalam kode Anda dan coba kurangi kerumitan kode yang akan Anda tulis mulai sekarang!
Jika Anda tertarik untuk mempelajari lebih lanjut tentang Java, pengembangan full-stack, lihat Program PG Eksekutif upGrad & IIIT-B dalam Pengembangan Perangkat Lunak Full-stack yang dirancang untuk profesional yang bekerja dan menawarkan 500+ jam pelatihan ketat, 9+ proyek , dan penugasan, status Alumni IIIT-B, proyek batu penjuru praktis & bantuan pekerjaan dengan perusahaan-perusahaan top.
Apa itu abstraksi dalam pemrograman berorientasi objek?
Abstraksi dalam pemrograman berorientasi objek adalah teknik untuk mewakili informasi tingkat tinggi tentang suatu masalah dengan membangun sebuah objek. Abstraksi diimplementasikan dengan bantuan antarmuka dan implementasi antarmuka dilakukan dengan menggunakan kode aktual. Abstraksi diimplementasikan di mana detail konkret disembunyikan dari modul yang dikonsumsi dengan menyediakan antarmuka yang berbeda. Abstraksi diimplementasikan untuk menyembunyikan detail implementasi dari detail level rendah. Ini juga digunakan untuk menyembunyikan detail kompleks dan menyediakan antarmuka yang lebih sederhana kepada pengguna.
Bagaimana cara kerja kelas dan objek dalam pemrograman?
Kelas dan objek adalah dua konsep utama yang digunakan dalam semua bahasa pemrograman berorientasi objek. Setiap kelas berisi satu set variabel dan metode yang dapat digunakan dan dimanipulasi. Dalam bahasa pemrograman berorientasi objek, semua objek dalam suatu program memiliki tipe tertentu dan variabel serta metode suatu objek hanya dapat dimanipulasi oleh metode dengan tipe yang sama. Dalam kebanyakan bahasa berorientasi objek, kelas digunakan untuk membuat objek dan sebaliknya. Program berorientasi objek terdiri dari objek, prosedur, dan tipe data. Segala sesuatu dalam program berorientasi objek, termasuk data dan kode, adalah objek.
Apa perbedaan antara enkapsulasi dan abstraksi?
Abstraksi adalah metode menghilangkan detail yang tidak perlu dalam kode dan berfokus pada bagian yang relevan. Misalnya, alih-alih menulis fungsi yang mengalikan dua angka, kita dapat menulis fungsi "menggandakan" dan menggunakannya untuk mengalikan angka apa pun dengan angka apa pun. Abstraksi adalah cara untuk merepresentasikan beberapa data tertentu. Enkapsulasi adalah cara menyembunyikan kompleksitas sesuatu dan hanya mengekspos bagian-bagian yang ingin Anda ekspos. Misalnya, jika Anda memiliki kelas yang memiliki satu atau beberapa bidang pribadi yang Anda gunakan untuk menyimpan data, maka Anda berada dalam enkapsulasi. Kelas berisi data dan memiliki metode yang mengekspos data publik.