STRUKTUR STRUKTUR Pertemuan 6 Pertemuan 6 DATADATA Struktur Data prepared by Suyanto 1
Definisi Definisi Antrian merupakan suatu struktur data linear. Tumpukan, Konsepnya perbedaannya adalah operasi penambahan dan penghapusan pada ujung yang berbeda. Penghapusan dilakukan pada bagian DEPAN (FRONT) dan penambahan berlaku pada bagian BELAKANG (REAR). Elemen-elemen di dalam integer, real, antrian dapat bertipe data rekord atau terstruktur. sama dengan dalam bentuk sederhana Struktur Data prepared by Suyanto 2
Sistem Pengaksesan Sistem Pengaksesan Antrian Antrian barubaru elemen elemen pada pada artinya artinya dikeluarkan dikeluarkan ditemukan ditemukan Penjualan Penjualan Penjadualan Penjadualan Manager. Manager. Penjadualan pemakaian CPU, pada Client--Server 3.3. Penjadualan pemakaian CPU, pada Client Server Pemakaian jalur I/O (Input/Output), pada sistem computer 4.4. Pemakaian jalur I/O (Input/Output), pada sistem computer Penyimpanan barang di Apotek. 5.5. Penyimpanan barang di Apotek. disebut disebut dilakukan dilakukan juga juga pada pada yaitu Waiting Line"" yaitu ""Waiting Line elemen elemen dandan BELAKANG penghapusan BELAKANG penghapusan DEPAN. . Sistem Sistem pengaksesan DEPAN pengaksesan FIFO (First In First Out First In First Out), ), FIFO ( akan pertama yang akan ituitu pertama yang dapat Antrian dapat Antrian penambahan penambahan bagian bagian bagian bagian pada pada menggunakan menggunakan dilakukan dilakukan sistem sistem Antrian Antrian elemen elemen yang pertama pertama masuk masuk yang Implementasi Antrian. . Implementasi Antrian daridari antara antara karcis karcis lain : lain : Bioskop kereta, , Bioskop kereta pencetakan pencetakan 1.1. 2.2. (Spooling System), misalmisal (Spooling System), Print Print Struktur Data prepared by Suyanto 3
Contoh Antrian Contoh Antrian Contoh Contoh dengan dengan Antrian Antrian elemen.. N N elemen Antrian Kosong, , Antrian Kosong dengan dengan elemen 1 1 elemen dandan Antrian kosong Antrain 1 Elemen Antrian N Elemen D C Belakang = 0 Belakang =1 B Depan = 0 A Depan = 1 A Struktur Data prepared by Suyanto Antrian Antrian Belakang = 4 Depan = 1 4
Kamus Data Kamus Data Berikut Berikut ini ini pendeklarasian pendeklarasian struktur struktur Antrian Antrian dalamdalam kamus kamus data : data : Kamus Const MAKSQ = 8; {Kapasitas Type Jenis Antrian Data Elemen = char; = record maksimal dari Antrian, misalnya 80 elemen} Item : Array[1..MAKSQ] of jenisElemen; Depan Belakang : 0..MAKSQ; : 0..MAKSQ; Antrian 1. 2. adalah Elemen, bertipe Depan, bertipe MaksQ Belakang, bertipe struktur data bertipe dari dengan field record yang terdiri 1 sampai dari kosong) sampai 0 (saat larik/array dengan integer berkisar indek MaksQ. dengan dari 0 sampai dari integer berkisar 3. MaksQ. dengan Struktur Data prepared by Suyanto 5
Operasi Dasar pd Antrian Operasi Dasar pd Antrian 1. CreateQueue(Q) : Membuat Antrian baru Q, dengan jumlah elemen kosong. 2. MakeNullQ (Q) : Mengosongkan Antrian Q, jika ada elemen maka semua elemen terhapus. 3. EmptyQ : Antrian kosong? Menguji apakah Antrian Q kosong. 4. FullQ : Antrian penuh? Menguji apakah Antrian Q penuh 5. TambahkanQ/ Insert (x,Q) : memasukkan elemen baru x ke dalam Antrian Q 6. AmbilQ/Remove (Q,x) : mengerluarkan elemen depan pada Antrian Q. Struktur Data prepared by Suyanto 6
Ilustrasi operasi Tambah/InsertQ dan Hapus/ RemoveQ Ilustrasi operasi Tambah/InsertQ dan Hapus/ RemoveQ terhadap Antrian terhadap Antrian NO. OPERASI ISI ANTRIAN DEPAN BELAKANG 1. CREATEQ(Q) Kosong 0 0 2. Tambah/InsertQ('a',Q) a 1 1 3. Tambah/InsertQ('b',Q) a b 1 2 4. Tambah/InsertQ('c',Q) a b c 1 3 5. Ambil/RemoveQ(Q,x) b c 2 3 6. Tambah/InsertQ('d',Q) b c d 2 4 7. Tambah/InsertQ('e',Q) b c d e 2 5 8. Ambil/RemoveQ(Q,x) c d e 3 5 9. Ambil/RemoveQ(Q,x) d e 4 5 10. Ambil/RemoveQ(Q,x) e 5 5 Struktur Data prepared by Suyanto 7
Underflow & Overflow Underflow & Overflow dilakukan yang ApaApa dilakukan yang ? ? lagi kali lagi Ambil/RemoveQ(Q, x) kali Ambil/RemoveQ(Q Underflow, , artinya adaada tidak artinya Underflow tidak terjadi yang terjadi dapat yang dapat elemen yang yang elemen sebanyak Tambah/InsertQ(x,Q) ) sebanyak dilakukan bilabila Tambah/InsertQ(x,Q dilakukan 5 5 adalah Antrian kali, jikajika sepuluh sepuluh adalah Antrian kali, ? ? Overflow lagi tidak lagi tidak dalamdalam elemen adaada elemen Antrian.. Antrian bilabila terjadi terjadi sebanyak , x) sebanyak duadua kosong kosong antrian antrian diambil. . ApaApa diambil kapasitas kapasitas Overflow, , artinya artinya dapat yang dapat yang antrian antrian dimasukkan dimasukkan penuh penuh keke Struktur Data prepared by Suyanto 8
Algoritma InsertQ Algoritma InsertQ Algoritma 1. : Tambah/InsertQ Antrian, apakah Antrian [Periksa Jika Return 2. [Naikkan Jika DEPAN = 1 dan Jika BELAKANG = N maka BELAKANG = BELAKANG penuh] OVERFLOW cetak FullQ(Q) maka nilai Belakang] {Antrian BELAKANG = 1 EmptyQ(Q) maka kosong} {Antrian +1 dapat diisi} 3. [Masukkan Antrian baru] [BELAKANG] = ELEMEN elemen 4. [Jika Belakang = MaksQ dan Depan <> 1, lakukan penggeseran] Jika BELAKANG = MaksQ AND DEPAN <> 1 maka GESERAntrian(Q) 5. Return Struktur Data prepared by Suyanto 9
Algoritma RemoveQ Algoritma RemoveQ Algoritma [Periksa 1. Jika Return [Ambil/Remove elemen Elemen [Naikkan Jika elemen} : Ambil/RemoveQ Antrian, apakah Antrian kosong] UNDERFLOW cetak EmptyQ(Q) maka 2. posisi Depan] di = Antrian[DEPAN] Depan] 3. nilai DEPAN = BELAKANG maka {Antrian DEPAN = 0 dan tidak BELAKANG = 0 Jika 4. Return DEPAN = DEPAN + 1 Struktur Data prepared by Suyanto ada 1 10
Contoh Soal Contoh Soal Q Lakukan 1. 2. 3. 4. 5. Jawab 1. = [O,S,A,M,A] operasi Insert [Q,A] Remove [Q,item] Remove [Q,item] Insert [Q,W] Remove [q,item] Queue berikut : 6. Insert [Q,U] 7. Insert [Q.O] 8. Insert [Q,E] 9. Remove [Q,item] 10. Remove [Q, item] : Insert [Q,A] Overflow karena 2. Remove [Q,item] Q = [ __,S,A,M,A ] Q = [ __,__,A,M,A] kelebihan data 3. Remove [Q,item] Front (Q) = S Rear (Q) = A Noel (Q) = 4 Maxs (Q) = 5 Isempty (Q) = false (Q) = A Front Rear (Q) = A Noel (Q) = 3 Maxs (Q) = 5 Isempty (Q) = false Struktur Data prepared by Suyanto 11
Penyajian Antrian.......1.1 Penyajian Antrian Antrian dengan array. Kalau dengan antrian menunjukkan dapat menggunakan tidak dilengkapi dan disajikan dari dalam komputer berbagai dalam cara. Biasanya menggunakan array Queue, depan front = null One -Way -List (Linier Linked List) ataupun dalam Antrian dari sajikan lokasi antrian. Nilai lain, maka kita penunjuk. FRONT berisi belakang disebutkan 2 variabel elemen lokasi REAR berisi elemen hampa. dari adalah bahwa Antrian Gambar sebuah pemasukan berikut bagaimana dan antrian. : menunjukkan N elemen elemen array queue dengan penghapusan dan menyajikan menunjukkan suatu bagaimana antrian dalam melakukan Queue Front : 1 AAA BBB CCC DDD ...... Rear : 4 1 2 3 4 5 6 7 ........ N a Struktur Data prepared by Suyanto 12
Penyajian Antrian.......2.2 Penyajian Antrian Queue Front : 2 BBB CCC DDD Rear : 4 1 2 3 4 5 b Queue Front : 2 BBB CCC DDD EEE Rear : 6 1 2 3 4 5 c Struktur Data prepared by Suyanto 6 FFF 6 7 7 ......... ........ ......... ........ N N 13
Penyajian Antrian.......3.3 Penyajian Antrian Queue Front : 3 Rear : 6 1 2 CCC 3 DDD 4 EEE 5 FFF 6 7 ...... ... ........ d Dapat kita lihat bahwa setiap kali penghapusan, nilai lokasi front akan ber + 1 untuk setiap kali pemasukan elemen, nilai rear akan ber + 1 hal ini berakibat bahwa setelah pemasukan elemen ke-N (berawal dari antrian hampa). Maka lokasi Queue (N) telah diduduki, disini mungkin saja tidak sebanyak N elemen ada dalam antrian (karena sudah dilakukan penghapusan). Struktur Data prepared by Suyanto N 14
Penyajian Antrian.......4.4 Penyajian Antrian Untuk melakukan pemasukan berikutnya, yaitu memasukkan elemen item, kita dapat menggunakan lokasi Queue (1) datang sesudah Queue (n) di array dalam berdasarkan asumsi ini, maka rear adalah 1. Gambar berikut ini memperlihatkan antrian yang disimpan dalam array dengan lokasi memori sebagai array sirkular. Struktur Data prepared by Suyanto 15
Queue Circular...1 Queue Circular...1 a) Pada awal hampa Queue Front : 0 Rear : 0 1 2 3 4 5 b) A dan B dimasukkan Queue Front : 1 A B Rear : 2 1 2 3 4 5 c) C,D dan Front : 1 E dimasukkan Queue D A B C Rear : 5 1 2 3 Struktur Data prepared by Suyanto 4 E 5 16
Queue Circular...2 Queue Circular...2 d) A,B,C dihapus Front : 4 Queue D E Rear : 5 1 2 3 4 5 e) F dimasukkan Queue Front : 4 F D E Rear : 1 1 2 3 4 5 f) D dihapuskan Front : 5 F Rear : 1 1 Struktur Data prepared by Suyanto 2 Queue 3 4 E 5 17
Queue Circular...3 Queue Circular...3 g) G dan H dimasukkan Queue Front : 5 F G H Rear : 3 1 2 3 4 h) E dihapuskan Queue Front : 1 F G H Rear : 3 1 2 3 4 Struktur Data prepared by Suyanto E 5 5 18
SoalSoal 1. Array Queue = Null dengan max (Q) = 5 a. b. c. d. Insesrt Insert AB Remove 2 elemen Insert FG KLM e. Remove item f. Remove item g. Insert H h. Remove item Berapakah F,R,I ? 2. Diketahui kemudian suatu dimasukkan isi Tentukan F,R,I dari Tentukan ke 2. Diketahui kemudian suatu dimasukkan isi Tentukan F,R,I dari Tentukan ke Data : P,Q,R,S,T,U,V dimasukkan di ke langsung Queue 1 elemen dalam dimasukkan dan stack kosong, ke dalam langsung dan remove di POP sebanyak itu dalam 4 elemen di Queue. Setelah lagi stack terakhir Queue stack awal. Struktur Data prepared by Suyanto 19