Kode MK: 0807003 | Semester: Ganjil 2022/2023 | Pertemuan Ke-10
Menilik Kembali Konstruksi Dasar Algoritma Struktur Data: Struktur Data Primitif dan Non-Primitif Bagan Struktur Data Struktur Data: Tipe Data Abstrak Tipe Data Abstrak (Abstract Data Type) ADT Array & Matriks Struktur Data, Representasi Lojik, Representasi Fisik (Implementasi) • Setiap struktur data pasti memiliki representasi lojik dan representasi fisik. • Representasi fisik merupakan cara mengimplementasikan representasi lojik dari suatu struktur data. • Representasi fisik dari suatu struktur data biasanya berupa struktur data pula, tetapi pada level abstraksi yang lebih rendah Struktur Data, Representasi Lojik, Representasi Fisik (Implementasi) Struktur Data (Representasi) Lojik Struktur Data (Representasi) Fisik Array Array (Kontigu) List List berkait (dengan pointer atau array), Array (kontigu) Stack List berkait (dengan pointer atau array), Array (kontigu) Queue List berkait (dengan pointer atau array), Array (kontigu) Tree List berkait dengan pointer Graph List berkait dengan pointer Tipe Data Abstrak (Abstract Data Type) • Tipe Data Abstrak (TDA) adalah Tipe Data yang representasi fisik struktur datanya disembunyikan. Pengguna TDA hanya perlu mengetahui representasi lojiknya untuk memanipulasi/melakukan berbagai operasi pada objek bertipe TDA tersebut. • Tipe Data Abstrak terdiri definisi TIPE dan sekumpulan PRIMITIF (operasi dasar) terhadap TIPE tersebut. • TIPE yang dimaksudkan di sini adalah Tipe Bentukan yang berupa tipe terstruktur (ingat kembali kuliah pertemuan kedua!) • PRIMITIF, dalam konteks prosedural, diterjemahkan menjadi fungsi dan prosedur. Tipe Data Abstrak (Abstract Data Type) • PRIMITIF dikelompokkan menjadi: • Konstruktor/Kreator: primitif pembentuk nilai tipe. Semua peubah ber-tipe tersebut harus melalui konstruktor. Nama konstruktor biasanya diawali oleh “Make” • Selektor: primitif untuk mengakses komponen tipe (nilai dari peubah). Nama selector biasanya diawali oleh “Get” • Modifier: primitif untuk mengubah nilai objek. Nama prosedur ini biasanya diawali oleh “Set” • Validator komponen tipe: primitif yang dipakai untuk menguji apakah dapat membentuk tipe sesuai dengan batasan • Destruktor/Dealokator: primitif untuk “menghancurkan”/meniadakan nilai objek sekaligus mendealokasi memori yang digunakan untuk menyimpan nilai tersebut. • Iterator: primitif untuk mengakses semua bagian yang ada di objek tersebut Tipe Data Abstrak (Abstract Data Type) • PRIMITIF dikelompokkan menjadi: • Baca/Tulis: primitif untuk menerima input dari piranti masukan (contoh: keyboard) dan menuliskan output pada piranti keluaran (contoh: layar monitor) • Operator relasional: primitif untuk mendefinisikan “lebih kecil”, “lebih besar”, “sama dengan”, dan sebagainya. • Aritmatika terhadap tipe tersebut karena biasanya aritmatika dalam bahasa pemrograman hanya terdefinisi untuk bilangan numerik. • Konversi dari tipe tersebut ke tipe dasar atau sebaliknya. Implementasi Tipe Data Abstrak Terdiri atas dua modul • Modul definisi / spesifikasi tipe dan primitif (Interface) • Spesifikasi tipe sesuai dengan bahasa yang bersangkutan • Spesifikasi dari primitif sesuai dengan kaidah dalam konteks procedural, yaitu: • Fungsi • Prosedur • Modul body / realisasi dari primitif, berupa kode program dalam bahasa pemrograman tertentu. Realisasi fungsi dan prosedur harus sedapat mungkin memanfaatkan selektor dan konstruktor. Implementasi Tipe Data Abstrak • Untuk menguji suatu ADT, biasanya dibuat sebuah program utama yang di dalamnya terdapat pengujian setiap fungsi dan prosedur dengan mencakup semua kasus parameter. Program utama tersebut disebut driver. Tipe Data Abstrak: Array Array Dengan Elemen Kontigu
Buatlah kode program dari setiap prosedur dan fungsi pada Tipe Data Abstrak Array tersebut dengan menggunakan notasi algoritmik Kuis • Buat Tipe Data Abstrak “Jam” dengan menggunakan notasi algoritmik yang digunakan dalam kuliah ini