Anda di halaman 1dari 15

Abstract Data Type (ADT)

Euis Marlina, S.Kom

Email : euismarlina@gmail.com
http://euismarlina.edublogs.org
HP : 08179424319

Mata Kuliah Struktur Data - 2008


Pengantar
 Tipe data dapat kaji dari sisi kelas maupun level
abstraksinya.
 Terdapat dua kelas tipe data kalau kita lihat dari
kompleksitasnya, yaitu :
- Tipe data atomik
Tipe data yg dipandang sebagai satu kesatuan
tunggal dan tidak dapat dipecah-pecah lagi (non
decomposible entity).
Contoh : Integer, Char, float/real.
- Tipe data berstruktur
Tipe data yang dipandang sebagai satu kesatuan
tunggal dan dapat dipecah-pecah lagi
(decomposibleentity).
Contoh : Array, Struct/Record, dll.
Mata Kuliah Struktur Data - 2008
 Sedangkan atas level abstraksinya, tipe data dapat
dikelompokkan ke dalam tiga level, yaitu :
- Tipe data abstrak/ADT
Tipe data yang merupakan hasil imajinasi kita
dengan memberikan beberapa batasan domain
maupun operasinya. Contoh : usia, daftarnilai.
- Tipe data virtual
Tipe data yang ada/dikenal oleh bahasa
pemrograman. Contoh : integer, array of integer.
- Tipe data fisikal
Tipe data yang nyata dalam main processor.

Mata Kuliah Struktur Data - 2008


Modul Program
 Modul pada bahasa pemrograman
berorientasi objek, diimplementasikan
dengan kelas dengan sekumpulan layanan
berupa metode publik yang dapat dipanggil
oleh pemakai kelas
 Pada bahasa prosedural, modul
diimplementasikan sebagai struktur, dan
sekumpulan operasi berupa prosedur dan
fungsi yang dipanggil pemakai modul lewat
pemanggilan prosedur dan fungsi.

Mata Kuliah Struktur Data - 2008


Abstraksi Data/ADT
Persoalan abstraksi data, yaitu :
 Struktur data seharusnya menjadi satu

bagian internal yang tersembunyi


 Pemakai modul tidak perlu mengetahui

struktur data yang digunakan untuk


mengimplementasikan suatu modul
 Pemakai modul hanya diberikan gambaran

perilaku, bukan struktur internal dari modul


 Fokus pada prilaku objek, membentuk basis

pemrograman berorientasi objek.


Mata Kuliah Struktur Data - 2008
 Abstraksi data memungkinkan kita
memperluas bahasa pemrograman dengan
tipe data baru
 Abstraksi data memungkinkan kita
mengabstraksikan rincian2 cara data
diimplementasikan, menjadi bagaimana
objek-objek berprilaku
 Abstraksi data berisi sekumpulan objek
 Abstraksi data pada prinsipnya merupakan
dasar pemrograman berorientasi objek
(Object Oriented Programming/OOP)
Mata Kuliah Struktur Data - 2008
Pengertian
 ADT adalah kumpulan nilai dan
kumpulan operasi yang diizinkan
 ADT memungkinkan pendefinisian
suatu himpunan nilai di variabel
disertai operasi-operasi yang izinkan
padanya
 ADT menyatakan prilaku suatu
variabel.

Mata Kuliah Struktur Data - 2008


Tujuan ADT
 ADT memisah struktur penyimpanan (lokasi memori)
dari perilaku.
 ADT menyembunyikan informasi (information hiding)
atau pengkapsulan (encapsulation), yaitu :
 Perubahan implementasi ADT tidak mengubah teks
program lain bila antarmuka (interface) tidak
berubah
 Pemakaian dan pembuatan ADT dapat dilakukan
terpisah, hanya perlu kesepakatan antarmuka
pemakaian ADT
 ADT merupakan sarana pemrograman modular dan
menjadi landasan pembentukan tim pemrograman

Mata Kuliah Struktur Data - 2008


 ADT merupakan sarana untuk membuat
modul-modul yang menyerupai dengan
konsep-konsep yang ditemukan pada
domain persoalan
 Pada sistem akademik ditemukan konsep
student, lecturer, room dll
 Maka dapat dibuat ADT student, ADT
lecturer, ADT Room dsb, yang serupa
namanya dengan konsep2 yang dijumpai
pada domain persoalan.
Mata Kuliah Struktur Data - 2008
Pembuatan ADT
Tahap pembuatan ADT :
 Spesifikasi

 Implementasi

 Pemrograman

Mata Kuliah Struktur Data - 2008


Contoh
 Spesifikasi untuk tipe data abstrak letterstring :
Elements : Nilai elemennya adalah karakter
‘a’-’z’,’A’-’Z’, dan termasuk juga spasi. Kita sebut
nilai-nilai tersebut sebagai kumpulan karakter
(letters).

Structure : Terdapat hubungan secara linear di


antara elemen letters di dalam suatu string.

Domain : letterstring berisi 0 sampai 80 karakter.


Domain dari tipe letterstring adalah seluruh
kemungkinan nilai yang memenuhi aturan-aturan
tersebut.

Mata Kuliah Struktur Data - 2008


 Operations :
letter leftletter( letterstring s)
Kondisi awal :Jumlah karakter input s minimal 1.
Kondisi akhir :leftletter berisi karakter awal (paling kiri) di
dalam string s.
append( letter l; letterstring s)
Kondisi awal : Jumlah karakter input s kurang dari 80.
Kondisi akhir :String s lebih panjang dibandingkan
sebelumnya, dan isi l adalah karakter terbaru dan berada
paling kanan di dalam s.
boolean empty( letterstring s )
Kondisi awal :Tidak ada.
Kondisi akhir :Jika s tidak berisi satupun karakter maka
empty bernilai true selain itu empty bernilai false.

Mata Kuliah Struktur Data - 2008


 boolean full( letterstring s )
Kondisi awal :Tidak ada.
Kondisi akhir :Jika s berisi 80 karakter maka full bernilai
true selain itu full bernilai false.
reverse ( letterstring s )
Kondisi awal :Tidak ada.
Kondisi akhir :Urutan dari isi s dibalik, sehingga elemen
pertama dan terakhir bertukar tempat, elemen kedua dari
awal dan kedua dari akhir bertukar tempat, demikian
seterusnya.
Dengan memilih bahasa C sebagai bahasa yang akan
digunakan untuk penulisan program, maka representasi dan
implementasinya adalah sebagai berikut :

Mata Kuliah Struktur Data - 2008


 Representation
struct letterstring {
int n;
letter str[80];
};
Implementation
int empty( letterstring s ) {
if (s.n<1) return(1); else return(0);
};
int full( letterstring s ) {
if (s.n>=80) return(1); else return(0);
};

Mata Kuliah Struktur Data - 2008


 void append( letter l; letterstring *s) {
if (s.n<80)
s.str[++s.n] = l;
};
letter leftletter( letterstring s) {
if (s.n>0)
return(s.str[0] );
};
void reverse ( letterstring *s ) {
int i; letterstring temp;
for(i=0;i<80;i++) temp.str[i] = temp.str[80-i+1];
for(i=0;i<80;i++) s.str[i] = temp.str[i];
};

Mata Kuliah Struktur Data - 2008