Defri Kurniawan, M.Kom defri.kurniawan@dsn.dinus.ac.id Pertemuan I Defri Kurniawan, M.Kom defri.kurniawan@dsn.dinus.ac.id
RENCANA KEGIATAN PERKULIAHAN SEMESTER W Pokok Bahasan 1 Review + ADT Stack 2 ADT Queue 3 List Linear 4 5 6 Representasi Fisik List Linear 7 Variasi List Linear 8 Ujian Tengah Semester W Pokok Bahasan 9 Variasi List Linear 10 11 Stack dengan Representasi List 12 Queue dengan Representasi List 13 List Rekursif 14 Pohon dan Pohon Biner 15 Multi List 16 Ujian Akhir Semester
Kemampuan yang Diharapkan Mahasiswa dapat mengingat kembali akan pentingnya memahami struktur data array, struktur, pointer serta penggunaanya dalam fungsi dan prosedur Mahasiswa dapat memahami ADT Stack dan mengimplementasikannya dengan menggunakan tabel
Materi yang harus dikuasai Array Struktur Pointer Fungsi Prosedur
Review
Type Data (Review) Tipe data dasar String Tipe data Enumerasi Bilangan Boolean Bilangan Bulat Bilangan Riil Karakter String Tipe data Enumerasi Tipe data Bentukan
Array
Struktrur Struct merupakan perintah yang dapat digunakan untuk membuat struktur dari suatu record. Sebuah record bisa memiliki domain yang heterogen. Sebagai contoh, sebuah record yang merepresentasikan tentang seseorang memiliki atribut berupa nama yang bertipe string, umur yang bertipe integer, dan tinggi yang bertipe double Materi Struct INF108-M15.pdf
Type Bentukan (Review) Type adalah himpunan nilai dan sekumpulan operator yang terdefinisi Dalam konteks fungsional, mendefinisikan type adalah mendefinisikan : Nama dan struktur type Selektor Konstruktor Predikat Fungsi – fungsi lain
Abstract Data Type
Abstract Data Type (ADT) Type dan sekumpulan primitif (operasi dasar) terhadap type tersebut Definisi type dari ADT dapat mengandung definisi ADT lain. Contoh : ADT Waktu ; ADT Jam, ADT Date ADT Garis ; 2 Point ADT Segi4 ; 2 Point (Top/Left) , (Bottom/Right)
Abstract Data Type (ADT) Primitif, dalam konteks prosedural diterjemahkan menjadi fungsi atau prosedur. Konstruktor Selektor Prosedur Destruktor Operator : arithmetic, relational Predikat lain Operasi lain Contoh : Date, Time, Point, Line, Rectangle
{*Definisi Abstract Data Type POINT*} type point: <x: integer, {absis} y: integer {ordinat}> {*Konstruktor POINT*} Function MakePoint (x:integer, y:integer) point {membentuk sebuah point dari x dan y dengan x sebagai absis dan y sebagai ordinat} {*Selektor POINT*} Function GetAbsis (P: point) integer {mengirimkan komponen absis dari P} Function GetOrdinat (P: point) integer {mengirimkan komponen ordinat dari P} {*Predikat*} Function IsOrigin ?(P: point) boolean {mengirimkan nilai benar jika P adalah titik origin yaitu titik <0,0>}
Pointer
Pointer Pointer merupakan struktur data yang dinamis Variable yang di deklarasikan menunjuk pada lokasi alamat memori dalam RAM
Mengambil alamat suatu variabel Nilai i=15 dimasukkan ke dalam i, j p q 15 ? 1080 1082 1084 1086 int i=15, j, *p, *q; (1) & operator difference Mengambil alamat suatu variabel Nilai i=15 dimasukkan ke dalam i, (Sesuai dengan variabel) i j p q 15 ? 1080 1082 1084 1086 * Operator reference Mengambil nilai dari alamat suatu variabel p = &i; (2) p i 15 p mengarah ke alamat variabel i Yaitu 1080.
Mengambil alamat suatu variabel Nilai i=15 dimasukkan ke dalam i, j p q 15 ? 1080 1082 1084 1086 int i=15, j, *p, *q; (1) & operator difference Mengambil alamat suatu variabel Nilai i=15 dimasukkan ke dalam i, (Sesuai dengan variabel) i j p q 15 ? 1080 1082 1084 1086 * Operator reference Mengambil nilai dari alamat suatu variabel p = &i; (2) p i 15 p mengarah ke alamat variabel i Yaitu 1080.
Mengambil alamat suatu variabel j p q 20 ? 1080 1082 1084 1086 *p = 20; (3) & operator difference Mengambil alamat suatu variabel p i 20 Nilai 20 diarahkan ke alamat p. Karena p juga mengarah ke alamat i, Maka nilai dari i = 20 * Operator reference Mengambil nilai dari alamat suatu variabel i j p q 20 40 1080 ? 1082 1084 1086 (4) j = 2 * *p; i j p q 20 40 1080 1082 1084 1086 (5) q = &i p i 20 q p mengarah ke alamat variabel i Yaitu 1080.
Mengambil alamat suatu variabel p = &i; j p q 15 ? 1080 1082 1084 1086 int i=15, j, *p, *q; & operator difference Mengambil alamat suatu variabel i j p q 15 ? 1080 1082 1084 1086 p = &i; p i 15 * Operator reference Mengambil nilai dari alamat suatu variabel i j p q 20 ? 1080 1082 1084 1086 *p = 20; p i 20 i j p q 20 40 1080 ? 1082 1084 1086 j = 2 * *p; i j p q 20 40 1080 1082 1084 1086 q = &i
Stack
TERIMA KASIH
POST TEST 1. Sebutkan tipe-tipe data yang Anda ketahui?! 2. Apa yang Anda ketahui tentang tipe data bentukan?! Berikan contohnya! 3. Jelaskan apa kegunaan dari Struct?! 4. Jelaskan apa yang Anda pahami tentang: a. Struktur data statis b. Struktur data dinamis 5.Jelaskan apa yang dimaksud tipe data pointer dan berikan contohnya!