Upload
euis-marlina
View
3.596
Download
7
Embed Size (px)
Citation preview
Mata Kuliah Struktur Data - 2008
Abstract Data Type (ADT)
Euis Marlina, S.Kom
Email : [email protected]://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 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.
Modul Program
Mata Kuliah Struktur Data - 2008
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.
Abstraksi Data/ADT
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 :1. Perubahan implementasi ADT tidak mengubah teks
program lain bila antarmuka (interface) tidak berubah
2. Pemakaian dan pembuatan ADT dapat dilakukan terpisah, hanya perlu kesepakatan antarmuka pemakaian ADT
3. 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
Representationstruct letterstring {int n;letter str[80];};
Implementationint 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];};