ABSTRACT DATA TYPE

by 14.25 0 komentar
Apa itu ADT?


ADT(Abstract Data Type) merupakan definisi type dari atribut-atribut yang dimiliki oleh suatu data dan operasi-operasi terhadap atribut-atribut tersebut. Jadi, pada saat membuat suatu ADT ada dua hal yang harus ditentukan yaitu type-type atribut dari data tersebut dan operasi-operasi terhadap atribut tersebut. Apasih itu type? Di ADT atribut-atribut itu disebut TYPE. Jika di kaitkan dengan kodingan C type ADT mirip dengan fungsi struct dalam C. Sedangkan operasi-operasi di ADT bernama PRIMITIF. Banyak di internet bilang ADT terdapat TYPE dan PRIMITIF terhadap TYPE tersebut. Saya sendiri awalnya akan bingung apa itu PRIMITIF. Jika dipautkan dengan kodingan C, PRIMITIF sama seperti fungsi dan prosedur di bahasa C. Namun kelebihan PRIMITIF adalah variasi operasinya lebih beragam. 
Mengapa perlu menggunakan ADT? 
Seperti yang saya jelaskan tadi ADT memiliki PRIMITIF, yaitu operasi-operasi yang lebih kompleks dari program C tanpa ADT. Selain itu struktur program nantinya lebih rapi dan semua atribut dan operasinya sudah disimpan dalam suatu file ADT sehingga main program tidak bercampur dengan type dan primitifnya. 
Bagaimana penerapan ADT? 
Langkah 1 : Specification 
  • Buatlah daftar operasi (hanya sebuah nama) pikirkan apa keperluannya. Meninjau dan memperbaiki daftar. 
  • Tentukan setiap konstanta yang mungkin diperlukan. 
  • Jelaskan parameter operasional secara rinci. 
  • Jelaskan semantik operasi (apa yang akan dilakukan) setepat mungkin. 

Langkah 2 : Application 
  • Mengembangkan aplikasi nyata atau imajiner untuk menguji spesifikasi. 
  • Hilang atau operasi lengkap yang ditemukan sebagai efek samping mencoba untuk menggunakan spesifikasi. 

Langkah 3 : Implementation 
  • Tentukan representasi yang sesuai. 
  • Melaksanakan operasi. 
  • Test, debug, dan merevisi. 

Primitif, dalam konteks prosedural, diterjemahkan menjadi fungsi atau prosedur. Primitif dikelompokkan menjadi : 
1. Konstruktor/Kreator, pembentuk nilai type. Semua objek (variabel) bertype tersebut harus melalui konstruktor. Biasanya namanya diawali Make. 
2. Selektor, untuk mengakses komponen tye (biasanya namanya diawali dengan Get) 
3. Prosedur, pengubah nilai komponen (biasanya namanya diawali Get) 
4. Validator komponen type, yang dipakai untuk meng_test apakah dapat membentuk type sesuai dengan batasan. 
5. Destruktor/Dealokator, yaitu untuk “menghancurkan” nilai objek (sekaligus memori penyimpanannya) 
6. Baca/Tulis, untuk interface dengan input/output device. 
7. Operator relational, terhadap type tersebut untuk mendefinisikan lebih besar, lebih kecil, sama dengan, dan sebagainya. 
8. Aritmatika, terhadap type tersebut karena biasanya aritmatika dalam bahasa pemrograman hanya terdefinisi untuk bilangan numerik. 
Konversi, dari type tersebut ke type dasar dan sebaliknya. 
ADT biasanya diimplementasi menjadi dua buah modul, yaitu : 
1.      Definisi/Spesifikasi Type dan Primitif. 
a.       Spesifikasi type sesuai dengan bahasa yang bersangkutan. 
b.      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 hal ini setiap kali membuat sebuah ADT, harus disertai dengan sebuah program utama yang dibuat khusus untuk meng_test ADT tersebut, 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 direalisasikan terlebih dulu. 
Di dalam modul ADT tidak terkandung definisi variabel. Modul ADT biasanya dimanfaatkan oleh modul lain, yang akan mendeklarasikan variabel bertype ADT tersebut 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. 

Mank Adi

Developer

Mahasiswa Teknologi Informasi, Fakultas Teknik, Universitas Udayana yang simpel dan seorang gamers