Skip to main content

Enkapsulasi Multiple Tipe

Enkapsulasi (Multiple Tipe)

Tipe data abstrak adalah suatu bentuk enkapsulasi yang minimal, yaitu enkapsulasi antara data dan method (data members dan member functions). Diperlukan suatu enkapsulasi multiple tipe (multiple-type encapsulation) untuk memecahkan problem-problem yang ada dalam suatu program yang sangat besar.

Ketika ukuran suatu suatu program menjadi besar hingga ribuan baris kode, maka program ukuran besar tersebut akan menimbulkan dua permasalahan yang perlu dicari solusinya:
  1. Program besar yang diorganisasi ke dalam sejumlah subprogram atau tipe data abstrak (abstract data types), belum memadai dalam konteks pengelolaan program (managable code). Diperlukan suatu cara pengorganisasian program tertentu, bukan sekedar memecah program menjadi sejumlah subprograms.
  2. Program besar akan memerlukan waktu yang tidak singkat jika memerlukan kompilasi ulang (recompilation), misalnya setelah mengalami modifikasi. Untuk program-program yang kecil, kompilasi ulang (recompile) seluruh program tidak terlalu kelihatan memakan waktu (boros). Tetapi untuk program-program yang besar, kompilasi ulang akan sangat boros (memakan waktu). Jadi diperlukan suatu cara agar dapat melakukan kompilasi parsial hanya unit yang terdampak oleh modifikasi saja yang memerlukan rekompilasi.
Solusi yang mudah diambil terhadap kedua problem tersebut adalah melakukan pengelompokan (grouping) programs yang kode dan data-nya saling terkait satu sama lain ke dalam suatu unit yang dapat di rekompilasi secara terpisah menjadi satu kompilasi tanpa rekompilasi dari program-program yang lain. Pengelompokan tersebut dinamakan enkapsulasi multiple-tipe (multiple-type encapsulation).

Bahasa Java menerapkan naming encapsulation menggunakan package. Ke dalam suatu package dapat ditempatkan definisi-definisi dari sejumlah class, setiap class di dalam package yang sama adalah partial friends yang artinya adalah bahwa setiap entitas tanpa access specifier di dalam suatu class adalah visible pada keseluruhan package. Pengguna (clients) package dapat menggunakan fully qualified name atau menggunakan import declaration. 

Sebagai contoh, suatu abstract data type, mystack, dapat ditempatkan di dalam suatu package, stkpkg, dengan menambahkan deklarasi package pada baris pertama di dalam source file, seperti berikut:
package stkpkg;
Selanjutnya, suatu entitas (dengan nama topsub) yang ada di dalam class mystack tersebut dapat diakses dengan menggunakan fully qualified name, yaitu:
stkpkg.myStack.topSub
atau menggunakan import declaration, seperti:
import stkpkg.myStack;
sehingga dengan demikian entitas di dalam mystack dapat diakses dengan menggunakan nama saja.

Comments

Popular posts from this blog

Pengertian Binding dalam Bahasa Pemrograman dan Kapan Terjadinya

Binding dimaksudkan sebagai pengikatan (association) antara suatu entity dengan atributnya, misalnya binding/pengikatan antara suatu variable dengan tipe datanya atau dengan nilainya, atau dapat juga antara suatu operasi dengan simbol, misalnya simbol + dikenali sebagai operasi penjumlahan atau simbol ^ dikenali sebagai operasi pangkat, dll.  Peristiwa binding dan kapan terjadinya binding (biasanya disebut dengan binding time ) berperan penting dalam membicarakan semantics suatu bahasa pemrograman. Beberapa kemungkinan binding time adalah:

Latihan Soal Jawab Matematika Diskrit

Berikut di bawah ini adalah latihan soal jawab untuk matematika diskrit dengan topik-topik: Pernyataan Logika Circuits dan Ekspresi Boolean Argumen (valid/tidak valid) Teori Himpunan Permutasi Fungsi --o0o-- Pernyataan Logika 1. Buatlah tabel kebenaran untuk menentukan yang mana tautology dan yang mana contradiction dalam pernyataan logika (a) dan (b) di bawah ini: a. (p ∧ q) ∨ (∼p ∨ (p ∧ ∼q)) b.  (p ∧ ∼q) ∧ (∼p ∨ q)

Contoh proses normalisasi relasi dari UNF – 1NF – 2NF – dan 3NF

Dalam posting tulisan tentang: “Tujuan dan Manfaat Normalisasi dalam Perancangan Database” , kita sudah mempelajari tentang: “Apa itu normalisasi” dan “Mengapa kita perlu melakukan normalisasi”. Kedua pertanyaan itu sudah terjawab dalam tulisan tersebut.  Kemudian dalam posting tulisan tentang: “Konsep Ketergantungan Fungsional, Normalisasi, dan Identifikasi Primary Key dalam Perancangan Sistem Database” , kita sudah mempelajari suatu konsep penting yang digunakan untuk melakukan normalisasi, yaitu konsep ketergantungan fungsional yang terdiri dari ketergantungan penuh, ketergantungan parsial atau sebagian, dan ketergantungan transitif. Proses normalisasi pertama-tama dilakukan dengan mengidentifikasi adanya ketergantungan-ketergantungan tersebut dalam relasi-relasi dan kemudian menghilangkannya. Cara melakukan normalisasi, mengidentifikasi berbagai macam ketergantungan, dan menghilangkan ketergantungan pada relasi-relasi bisa dipelajari ulang dalam postingan tulisan d...