15
Mata Kuliah Struktur Data - 2 008 Abstract Data Type (ADT) Euis Marlina, S.Kom Email : [email protected] http://euismarlina.edublogs.org HP : 08179424319

Materi 2 - Tipe Data Abstrak

Embed Size (px)

Citation preview

Page 1: Materi 2 - Tipe Data Abstrak

Mata Kuliah Struktur Data - 2008

Abstract Data Type (ADT)

Euis Marlina, S.Kom

Email : [email protected]://euismarlina.edublogs.org

HP : 08179424319

Page 2: Materi 2 - Tipe Data Abstrak

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.

Page 3: Materi 2 - Tipe Data Abstrak

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.

Page 4: Materi 2 - Tipe Data Abstrak

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

Page 5: Materi 2 - Tipe Data Abstrak

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

Page 6: Materi 2 - Tipe Data Abstrak

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)

Page 7: Materi 2 - Tipe Data Abstrak

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.

Page 8: Materi 2 - Tipe Data Abstrak

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

Page 9: Materi 2 - Tipe Data Abstrak

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.

Page 10: Materi 2 - Tipe Data Abstrak

Mata Kuliah Struktur Data - 2008

Pembuatan ADT

Tahap pembuatan ADT : Spesifikasi Implementasi Pemrograman

Page 11: Materi 2 - Tipe Data Abstrak

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.

Page 12: Materi 2 - Tipe Data Abstrak

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.

Page 13: Materi 2 - Tipe Data Abstrak

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 :

Page 14: Materi 2 - Tipe Data Abstrak

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);};

Page 15: Materi 2 - Tipe Data Abstrak

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];};