Selasa, 01 Oktober 2013

Definisi ADT (Abstrak Data Tipe)

1.      Definisi ADT (Abstrak Data Tipe)

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 numeric.
Ø  Konversi dari type tersebut ke type dasar dan sebaliknya.
ADT biasanya diimplementasi menjadi dua buah modul, yaitu:
Ø  Definisi/Spesifikasi Type dan primitif .
ü  Spesifikasi type sesuai dengan bahasa yang bersangkutan.
ü  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/prosedur yang memakai fungsi/prosedur lain harus sudah ditest dan
direalisasi terlebih dulu.
Dalam modul ADT tidak terkandung definisi variabel. Modul ADT biasanya
dimanfaatkan oleh modul lain, yang akan mendeklarasikan variabel bertype ADT tsb
dalam modulnya. Jadi ADT bertindak sebagai Supplier (penyedia type dan primitif),
sedangkan modul pengguna berperan sebagai Client (pengguna) dari ADT tersebut.
Biasanya ada sebuah pengguna yang khusus yang disebut sebagai main program
(program utama) yang memanfaatkan langsung type tersebut.

2.      Contoh

a.       INTEGER
Tipe data Integer (int) digunakan untuk operasi (+, -, *, /, %,).
Pada tipe data interger kali ini menggunakan contoh ADT kalkulator.

b.      CHARACTER
Tipe data character (char) digunakan untuk operasi vocal dan konsonan dengan symbol (‘ ‘)
Pada tipe data ini akan menggunakan contoh ADT nama mahasiswa dengan nilai IPK nya.

c.       FLOAT
Tipe data float (float) digunakan untuk operasi  bilangan pecahan
Pada tipe data ini akan menggunakan contoh ADT luas lingkaran.

d.      DOUBLE
Tipe data double (double) sama seperti LONG digunakan untuk operasi  bilangan pecahan dan bulat, tapi jangkauannya lebih besar
Pada tipe data ini  akan  menggunakan contoh ADT keliling persegi panjang.

e.       ARRAY
Array adalah sebuah tipe data yang digunakan untuk membuat kolom pada matrik,
Pada tipe data ini akan menggunakan contoh penjumlahan array 2 dimensi.

f.       LONG
Tipe data ini sama dengan DOUBLE digunakan operasi bilangan pecahan dan bulat, tapi dengan jangkauan yang kecil
Pada tipe data ini akan menggunakan contoh ADT keliling lingkaran.

g.      POINTER
      Tipe data pointer (*) digunakan untuk menunjuk obyek lain, karena variabel pointer atau pointer adalah variabel yang berisi alamat di memori komputer dari suatu obyek lain, yaitu obyek yang ditunjuk oleh pointer.