Abstract Data Type (ADT)
- Indra Mahathanaya
- Dec 7, 2015
- 2 min read

ADT adalah koleksi data dan operasi yang dapat digunakan untuk memanipulasi data tersebut Dalam C++, ADT dapat dibuat dalam sebuah Class. Class dalam C++ merupakan pengembangan dari struct dalam bahasa pemrograman C. Class memiliki data dan fungsi. Data dan fungsi yang dideklarasi privatetidak dapat diakses secara langsung oleh client, sementara data dan fungsi yang dideklarasi publicakan bersifat publik dan dapat diakses oleh client secara langsung.
Contoh ADT
Tipe jadi (built-in): boolean, integer, real, array, dllTipe buatan (user-defined): stack, queue, tree, dllADT Built-in:BooleanNilai: true dan falseOperasi: and, or, not, xor, dllIntegerNilai: Semua bilanganOperasi: tambah, kurang, kali, bagi, dll
ADT buatan (user-defined) :
Stack (tumpukan) Nilai : elemen dalam stack Operasi: create, destroy, push, pop Queue (antrian) Nilai: elemen dalam Queue Operasi: create, destroy, enqueue, dequeue, dll
Tree (pohon) Nilai: elemen dalam pohon Operasi: insert, delete, find, traverse
Class atau Struct memiliki member. Setiap member memiliki nama dan tipe. Class atau Struct boleh memiliki member dengan tipe yang beragam. Oleh karena itu, Class atau struct dapat digunakan untuk membuat tipe data aggregate yang rumit.
struct point {
double x, y;
}; Dalam C++, nama struct (tag) adalah tipe. Oleh karena itu, pointmerupakan tipe. Pendeklarasian di atas dapat diibaratkan sebagai template dan tipe datapointitu sendiri belum dialokasikan dalam memori.
Pendeklarasian: point pt; mengalokasikan memori untuk variabel ptbertipe point Untuk mengakses member dari struct pt, operator dot harus digunakan. Contoh: pt.x = -1;
pt.y = 0.5;
Nama member harus unik dalam skop struct. Karena saat mengakses member, nama struct harus ditulis, maka pemanggilan nama member yang sama dari struct yang berbeda tidak menjadi masalah.
struct fruit {
char name[15];
int calories;
};
struct vegetable {
char name[15];
int calories;
};
fruit a;
vegetable b; Dalam bahasa C: struct fruita;
Struct vegetableb; Pemanggilan a.calories danb.calories tidak akan menimbulkan masalah.
referensi:
http://1.bp.blogspot.com/-4V623eRoqmA/UnTnC4S_i_I/AAAAAAAAAJ0/YajouGsmcKs/s1600/What+is+Abstract++Data+Type5.png
Comments