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.