Pengantar Struktur Data
iv
D
AFTAR
I
SI
PRAKATA ……….
ii
KATA PENGANTAR EDITOR ……….
iii
DAFTAR ISI ……….
iv
Bab 1
Penyajian Data Sederhana dan Struktur Data
1
1.1. Data dan Struktur Data 1
1.2 Tipe Data Sederhana 4
1.2.1 Integer 5
1.2.2 Bilangan Real 5
1.2.3 Aritmatika Campuran 7
1.2.4 Bilangan Kompleks 8
1.2.5 Bilangan Presisi Ganda 8
1.2.6 Tipe Data Boolean atau Logikal 8
1.2.7 Tipe Data Karakter dan String 10
1.3 Deklarasi Data dalam Bahasa Pemrograman 14
1.4 Pemetaan (Mapping) ke Storage : Integer 16
1.5 Pemetaan ke Storage : Karakter dan String 18
1.6 Sekilas Macam Struktur Data 19
1.7 Organisasi Logik dan Fisik dari Struktur Data 21 1.8 Waktu Pelaksanaan Program, Fungsi Ukuran Input 23
1.9 Notasi Big-Oh 24
Bab 2
Array
(Larik) dan
Record
30
2.1 Array Dimensi Satu 31
2.2 Array Dimensi Banyak 31
2.3. Mendeklarasikan Array dalam Bahasa Pemrograman 34
2.4 Pemetaan Array Dimensi Satu ke Storage 36
2.5 Pemetaan ke Storage terhadap Array Dimensi Banyak 37
2.6 Tringular Array (Array Segitiga) 40
2.7 Sparse Array (Array Jarang) 43
Pengantar Struktur Data
v
Bab 3
Stack
atau Tumpukan
48
3.1 Daftar Linear 48
3.2 Stack atau Tumpukan 49
3.3 Operasi pada Stack 50
3.4 Deklarasi Stack dalam COBOL dan Pascal 51
3.5 Aplikasi Stack 53
Bab 4
Queue
(Antrean)
65
4.1 Pengertian Queue (Antrean) 65
4.2 Operasi Dasar pada Antrean 67
4.3 Penyajian dari Antrean 69
4.4 Deque 72
4.5 Antrean Berprioritas 73
4.6. Penyajian One-way List dari Antrean Berprioritas 74
4.7 Penyajian Array dari Antrean Berprioritas 77
4.8 Tambahan : Mesin Antrean 78
Bab 5
Linked List
83
5.1 Struktur Berkait 83
5.2 Penyajian Linked List dalam Memori 85
5.3 Kunjungan Linked List 88
5.4 Pencarian (Searching) dalam Linked List 91
5.4.1 Cari dalam List Tidak Terurut 92
5.4.2 Cari dalam List Terurut 93
5.5 Alokasi Memori : Koleksi Sampah 94
5.6 Penyisipan Simpul ke Dalam Linked List 99
5.6.1 Algoritma Penyisipan 102
5.6.2 Penyisipan pada Bagian Awal List 103
5.6.3 Penyisipan pada Bagian Depan List 106
5.6.4 Penyisipan ke Dalam Linked List Terurut 106
5.7 Penghapusan Simpul Linked List 110
5.7.1 Algoritma Penghapusan 113
5.7.2 Penghapusan Simpul Sesudah Simpul yang Diketahui 114 5.7.3 Penghapusan Simpul yang Diketahui Informasinya 115
5.8 Header Linked List 118
5.9 Algoritma untuk Header Linked List 120
5.10 Penyajian Polinomial 122
5.11 Linked-Stack dan Linked-Queue 124
5.12 Two Way List 124
Pengantar Struktur Data
vi
Bab 6
Sortir
130
6.1 Sortir Terhadap Record 130
6.1.1 Metode Sortir Gabung (Merge-sort) 132
6.1.2 Metode Sortir Natural Merge dan Balanced Merge 133
6.1.3 Balanced Merge 135
6.2 Teknik Sortir Penyisipan 139
6.3 Teknik Sortir Pemilihan 142
6.4 Teknik Sortir Penukaran 144
6.4.1 Sortir Gelembung (Bubble-sort) 144
6.4.2 Perbaikan Algoritma Sortir Gelembung 149
6.4.3 Sortir Biasa 151
6.5 Shellsort : Mempercepat Sortir Penyisipan 153
6.6 Quicksort : Suatu Aplikasi Stack 156
6.7 Sortir Topologik 161
6.7.1 Graph dan Digraph 161
6.7.2 Persyaratan Sortir Topologik 172
6.7.3 Algoritma Sortir Topologik 173
Bab 7
Pohon Binar
178
7.1 Pohon 178
7.2 Pohon Binar (Binary Tree) 179
7.3 Terminologi Pohon Binar 181
7.4 Pohon Binar Lengkap 183
7.5 Pohon-2 184
7.6 Pohon Ketinggian Seimbang 186
7.7 Ketinggian Minimum dan Maksimum Pohon Binar 186
7.8 Penyajian Pojon Binar dalam Memori 187
7.8.1 Penyajian Kait 187
7.8.2 Penyajian Sekuensial 191
7.9 Penyajian Pohon Umum Secara Pohon Binar 192
7.10 Notasi Prefix, Infix dan Postfix serta Traversal 196
7.11 Pohon Cari Binar 204
7.12 Cari dan Penyisipan Simpul Pohon Cari Binar 207
7.13 Penghapusan Simpul Pohon Cari Binar 210
7.14 Pohon Cari Optimal 214
7.15 Tambahan : Lebih Lanjut Tentang Pohon Cari Optimal 219
7.16 Heap 226
7.17 Heapsort 230