Abstract Data Type (ADT)
Kali ini saya akan berbagi sedikit ilmu yang saya dapat di perkuliahan semester 2 telkom university,di smester dua ini saya mendapatkan matkul yang dirasa matkul paling kill bagi saya , matkul implementasi sruktur data . implementasi struktur data adalah kelanjutan dan pengembangan dari materi implementasi algoritma pada smester satu.
Udah ah gak usah lama-lama langsung saja materi pertama yang di berikan dosen di perkuliahan semester dua ini adalah Abstract Data Type (ADT). HAYOO siapa yang tau tentang ADT??
ADT adalah definisi TYPE dan sekumpulan primitif (operasi dasar) terhadap TYPE tersebut. Dalam sebuah ADT yang lengkap ,disertakan pula penjelasan invarian(persyaratan tertentu) dari type dan aturan-aturan yang berlaku dan bisa di buktikan.
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 pasangan dua buah POINT.
• SEGI EMPAT yang terdiri dari pasangan dua buah point (top,left) dan (bottom,right).
Loh LOH ko mode serius on gini . kalo gak ngerti baca ulang ulang aja sampe ngerti :v ,. Jadi gampangnya ADT adalah membuat suatu TYPE yang terdefinisi di algoritma utama ,misalnya dalam bahasa C ada struct nah ini yang di sebut TYPE, sedangkan operasi dasar nya dalam konteks procedural diterjemahkan menjadi fungsi atau procedure, bener gak sihh??? Ahh sudah lah.
OPERASI DASAR atau yang biasanya di sebut primitif di bagi menjadi beberapa kelompok ,yaitu :
• Konstruktor/kreator ,pembentuk nilai type.semua variabel bertype tersebut harus melalui kontruktor( biasanya di awali “Make”).
• Destruktor/dealokator,yaitu unk menghancurkan nilai objek (hal ini sekaligus sebagai memory penyimpanannya)
• Selector,untuk mengakses komponen type(biasanya diawali dengan “Get”).
• Procedure pengubah nilai komponen.
• Validator komponen type,yang dipakai untuk mengetest apakah dapat membentuk type sesuai dengan batasan .
• Read/write , untuk interface denngan I/O device.
• Operator relational, terhadap type tersebut untuk mendefinisikan lebih besar,lebih besar dari samadengan ,lebih kecil ,lebih kecil dari samadengan ,samadengan,dan tidak samadengan.
• Aritmatika terhadap type tersebut ,karena biasanya dalam bahasa pemrograman hanya terdefinisi untuk bilangan numerik.
• Konversi dari type tersebut ke type dasar dan sebaliknya.
ADT biasanya diimplementasika menjadi dua buah modul ,yaitu:
1. Definisi type dan primitif, dalam konteks procedural ada dua yaitu:
a. Fungsi : nama,domain,range dan prekondisi jika ada.
b. Procedure : Initial state,final state, dan proses yang dilakukan.
2. Body/realisasi dari primitif,berupa kode program dalam bahasa yang bersangkutan. Realisasi fungsi dan procesure harus sedapat mungkin memanfaatkan selector dan konstruktor.
Realisasi ADT dalam beberapa bahasa.
Pada bahasa C ntuk spesifikasinya biasa ada di file header dengan ekstensi .h dan di body file kode di tulis dengan ekstensi .c , Dalam modul ADT tidak terkandung definisi variabel,biasanya di manfaatkan oleh modul lain. Jadi gambarannya ADT di gambarkan sebagai penyedia type dan primitif,sedangakan modul pengguna berperan sebagai pengguna (client) dari ADT tersebut. Biasanya ada sebuah pengguna yang khusus disebut program utama yang memanfaatkan langsung type tersebut.
Jeng-jeng pasti dah mulai pening,panas dingin,mual-mual dan cepet-cepet ngeclose ni blog kan ,, sama saya juga wkkwkwk,, tapi tenang saya ada solusinya !
Saya akan memberikan contoh dari ADT yang telah di berikan dosen saya swaktu perkuliahan. YA MONGGO DI PENTELENGI!!!!!
• ADT JAM. Contoh ini sekaligus memberikan gambaran mengapa bahasa algoritmik masih di butuhkan ,karena bersifat umum dan tidak tergantung pada pernak-pernik dalam bahasa pemrograman ,sehingga dapat dipakai sebagai bahasa dalam membuat spesifikasi umum .
• ADT POINT. Contoh ini di berikan karena merupakan ADT yang sangat penting yang di pakai dalam bidang informatika bahkan bisa di katakan standard dan akan slalu di pakai dalam pemrograman berorientasi objek.
• ADT GARIS. Contoh ini memberikan gambaran sebuah ADT yang memanfaatkan ADT POINT ,dan sebuah ADT yang mempunyai invarian.
• ADT SEGIEMPAT dengan posisi sejajar sumbu x dan y,di definisikan sebagai dua buah poin (topLeft dan BotomRight).
nah biar lo tambah bingung pentelengi aja post selajutnya :p di post selanjutnya bakal saya beri contoh implementasi yang kalo lo liat bakalan langsung keluar moment OwwwwWWWWWWW nya 🙂 , jadi jangan lupa yah PENTELENGIN AJA !!!!!!