KELOMPOK 7: MOHAMMAD HAMKA (F1A118063) MUHAMMAD SARMAN HAMDIN (F1A118034) MUH. AZRUL (F1A118010) RESTI AZARI (F1A11808) KONSEP ENCAPSULATION
• Enkapsulasi adalah sebuah peroses pemaketan atau penyatu data besama
metode – metodenya, dimana hal ini bermanfaat untuk menyembunyikan rincian –rincian implementasi dari pemakai. Maksud dari enkampsulasi ini adalah untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain. Konsep enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat diakses sewaktu-waktu, sekaligus menjaga program tersebut.
• Encapsulation di Java adalah mekanisme pembungkus data
(variabel) dan kode yang bekerja pada data (metode) bersama sebagai satu kesatuan. Dalam encapsulation, variabel kelas akan disembunyikan dari kelas lain, dan hanya bisa diakses melalui metode kelas mereka saat ini. Oleh karena itu, juga dikenal sebagai data hiding. Untuk mencapai encapsulation di Java, deklarasikan variabel kelas sebagai private. Menyediakan metode setter dan getter public untuk memodifikasi dan melihat nilai variabel. Lanjutan… • Dalam kehidupan sehari hari enkapsulasi dapat dimisalkan sebagai arus listrik pada generator, dan sistem perputaran generator untuk menghasilkan arus listrik. Kerja arus listrik tidak mempengaruhi kerja dari sistem perputaran generator, begitu pula sebaliknya. Karena didalam arus listrik tersebut, kita tidak perlu mengetahui bagaimana kinerja sistem perputaran generator, apakah generator berputar kebelakang atau ke depan atau bahkan serong. Begitu pula dalam sistem perputaran generator, kita tidak perlu tahu bagaimana arus listrik, apakah menyala atau tidak. • Begitulah konsep kerja dari enkapsulasi, dia akan melindungi sebuah program dari akses ataupun intervensi dari program lain yang mempengaruhinya. Hal ini sangat menjaga keutuhan program yang telah dibuat dengan konsep dan rencana yang sudah ditentukan dari awal. Access modifier encapsulation, yaitu :
1. Private memberikan hak akses hanya kepada anggota class
tersebut untuk menggunakan dan/atau mengubah nilai dari property atau method tersebut. 2. Protected memberikan hak akses kepada anggota class nya dan anggota class hasil inheritance (penurunan sifat) dari class tersebut.
3. Public memberikan hak akses kepada property dan
method agar dapat digunakan diluar class tersebut. Keuntungan Dari Encapsulation, yaitu: 1. Menyembunyikan Data: Hal ini mengacu kepada perlindungan terhadap implementasi obejk internal. Objek tersebut dari interface public dan bagian private yang merupakan kombinasi data dan metode internal. Manfaat utamanya adalah bagian internal dapat berubah tanpa mempengaruhi bagian-bagian program yang lain. Pengguna tidak akan tahu tentang penerapan dalam class. Tidak akan terlihat bagi pengguna bahwa bagaimana class menyimpan nilai dalam variabel. Dia hanya tahu bahwa kita menyampaikan nilai ke metode setter dan variabel diinisialisasi dengan nilai itu. 2. Peningkatan Fleksibilitas: Kita bisa membuat variabel kelas sebagai read- only atau write-only tergantung kebutuhan kita. Jika kita ingin membuat variabel sebagai read-only maka kita harus menghilangkan metode setter seperti setName (), setAge () dll dari program atau jika kita ingin membuat variabel sebagai write-only maka kita harus menghilangkan mendapatkan metode seperti getName (), getAge () dll dari program. 3. Reusability: Encapsulation juga meningkatkan kegunaan dan mudah berubah dengan persyaratan baru. 4. Uji kode mudah: Kode encapsulation mudah diuji untuk pengujian unit. PERERAPAN KONSEP ENCAPSULATION PADA PEMOGRAMAN Penerapan Konsep Encapsulation sangat penting dilakukan untuk menjaga kebutuhan program agar dapat diakses sewaktu- waktu, sekaligus menjaga program tersebut. Katakanlah kita memiliki sebuah program. Dimana didalamnya terdapat berbagai macam objek yang saling berkomunikasi sesuai aturan yang telah kita tentukan. Encapsulation merupakan penerapan yang dilakukan ketika kita ingin menerapkan aturan aturan tadi dalam interaksi antar objek/class. Encapsulation telah diterapkan jika setiap objek tetap menjaga state/variabel-variabel yang ada dalam dirinya tetap Private. Sehingga, ketika objek lain berinteraksi dengannya, objek tersebut tidak memiliki akses langsung ke state ini. Contohnya, kita memiliki sebuah program. Dimana terdapat objek manusia yang berkomunikasi dengan objek kucing. Penjelasan Gambar Di Atas! "State" yang ada pada kucing yaitu objek ini memiliki private variable Mood, hungry, energy. Dan juga memiliki private method meow!. Si Kucing bisa mengubah "state" ini sesuka dia (seberapa dia lapar, sebanyak apa energinya saat ini, atau sebagus apa moodnya. Dan juga si kucing bisa melakukan aktifitas "Meeow" sesuka dia. Objek lain (dalam hal ini objek manusia) dapat berinteraksi dengan si kucing melalui 3 method public yang disediakan oleh si kucing. Yakni Sleep, Play, dan Feed. Setiap method public yang kucing ini memiliki kemampuan untuk melakukan perubahan terhadap kondisi dari si kucing. Misalnya method Feed, mengubah Mood kucing menjadi lebih baik, menguras Energy si kucing, dan membuat si kucing melakukan "Meow". Jadi, Manusia tidak dapat menyuruh si kucing secara langsung untuk melakukan aktifitas "Meow" atau mengubah mood si kucing tanpa melalui 3 method public yang sudah disediakan. Inilah disebut Encapsulation. Dalam Penerapannya, terdapat beberapa cara dalam memodifikasi aturan Private sebuah state dari objek. Secara umum dikenal dengan Protected dan Public 1. Public Dengan menerapkan sifat Public pada State variabel atau method, maka objek lain memiliki akses modifikasi secara langsung terhadap state tadi. Contoh program public: Public class Human{
// method constructor Public Human (){ //Instance cat Class Var Cat = new Cat();
//hanya bisa panggil Method cat yang bersifat public atau vaariabel
//vauiabel Cat->_energy++;
//Method Cat->sleep(); } } 2. Protected Protected memiliki fungsi yang sama dengan Public. Hanya saja, Protected hanya bisa diakses oleh "keturunannya" saja. Cara mendefinisikan sebuah class adalah keturunan dari class lain adalah dengan cara menambahkan "Extends classlain" setelah nama class (atau biasanya menggunakan tanda double dot (: classLain) tergantung bahasa pemrogramannya). Contoh program public: //pada contoh bahasa pemrograman lain menggunakan “public class PersiaCat extends Cat {}” Public class parsiaCat : Cat {
// method construct Public ParsiaCat (){ //langsung dapat mengakses var yang bersifat protected This->_mood ++ ;
//atau method yang bersifat protected
//vauiabel This->feed ();
//selain itu, dapat juga mengakses yang bersifat public this ->_energy--; this->sleep (); } TERIMAKASIH