Abstract Data Type (ADT)
Abstract Data Type (ADT)
ADT adalah definisi TYPE dan sekumpulan PRIMITIF (operasi dasar) terhadap TYPE tersebut. Selain itu, dalam sebuah ADT yang lengkap, disertakan pula definisi invarian dari TYPE dan aksioma yang berlaku. ADT merupakan definisi statik.
Definisi type dari sebuah ADT dapat mengandung sebuah definisi ADT lain.
Misalnya:
- ADT Waktu yang terdiri dari ADT JAM dan ADT DATE
- GARIS yang terdiri dari dua buah POINT
- SEGI4 yang terdiri dari pasangan dua buah POINT (Top, Left) dan (Bottom,Right)
Type
diterjemahkan menjadi type terdefinisi dalam bahasa yang bersangkutan, misalnya menjadi record dalam bahasa Ada/Pascal atau struct dalam bahasa C.
Primitif
dalam konteks prosedural, diterjemahkan menjadi fungsi atau prosedur.
Primitif dikelompokkan menjadi :
- Konstruktor/Kreator, pembentuk nilai type. Semua objek (variabel) bertype tsb harus melalui konstruktor. Biasanya namanya diawali Make.
- Selektor, untuk mengakses komponen type (biasanya namanya diawali dengan Get)
- Prosedur pengubah nilai komponen (biasanya namanya diawali Get)
- Validator komponen type, yang dipakai untuk mentest apakah dapat membentuk type sesuai dengan batasan
- Destruktor/Dealokator, yaitu untuk “menghancurkan” nilai objek (sekaligus memori penyimpannya)
- Baca/Tulis, untuk interface dengan input/output device
- Operator relational, terhadap type tsb untuk mendefinisikan lebih besar, lebih kecil, sama dengan, dsb
- Aritmatika terhadap type tsb, karena biasanya aritmatika dalam bahasa pemrograman hanya terdefinisi untuk bilangan numerik
- Konversi dari type tersebut ke type dasar dan sebaliknya
- Definisi/Spesifikasi Type dan primitif .
- Spesifikasi type sesuai dengan bahasa yang dipakai.
- Spesifikasi dari primitif sesuai dengan kaidah dalam konteks prosedural, yaitu:
- Fungsi : nama, domain, range dan prekondisi jika ada
- Prosedur : Initial State, Final State dan Proses yang dilakukan
- Body/realisasi dari primitif, berupa kode program dalam bahasa yang bersangkutan. Realisasi fungsi dan prosedur harus sedapat mungkin memanfaatkan selektor dan konstruktor.
Supaya ADT dapat di-test secara tuntas, maka dalam kuliah ini setiap kali membuat sebuah ADT, harus disertai dengan sebuah program utama yang dibuat khusus untuk men-test ADT tsb, yang minimal mengandung pemakaian (call) terhadap setiap fungsi dan prosedur dengan mencakup semua kasus parameter. Program utama yang khusus dibuat untuk test ini disebut sebagai driver. Urutan pemanggilan harus diatur sehingga fungsi atau prosedur yang memakai fungsi atau prosedur lain harus sudah ditest dan direalisasikan terlebih dahulu.