QUEUE. Struktur data ini banyak dipakai dalam informatika misalnya untuk merepresentasi: antrian job dalam sistem operasi antrian dalam dunia nyata.

Ukuran: px
Mulai penontonan dengan halaman:

Download "QUEUE. Struktur data ini banyak dipakai dalam informatika misalnya untuk merepresentasi: antrian job dalam sistem operasi antrian dalam dunia nyata."

Transkripsi

1 QUEUE 1 of 23 Definisi Queue (antrian) adalah list linier yang : elemen yang pertama kali masuk antrian disebut elemen depan (front/head of queue), sedangkan elemen yang terakhir kali masuk disebut elemen belakang (rear/tail of queue). merupakan salah satu contoh aplikasi dari double linked list, yaitu kumpulan data dengan penambahan data (elemen) hanya melalui satu sisi, yaitu belakang (tail) dan penghapusan data (elemen) hanya melalui sisi depan (head). Karena sifat keluar-masuknya elemen queue melalui kedua ujung queue, maka elemen-elemen pada kedua ujung barisan tersebut perlu diidentifikasi. satu elemen dengan elemen lain dapat diakses melalui informasi Next merupakan struktur data dinamis, ketika program dijalankan, jumlah elemennya dapat berubah secara dinamis sesuai keperluan. List linier/linked List (senarai berantai) yaitu sekumpulan elemen bertype sama, yang mempunyai keterurutan tertentu, yang setiap elemennya terdiri dari 2 bagian. Linked List terdiri dari: Single Linked List pointer hanya dapat bergerak satu arah saja, maju/mundur, atau kanan/kiri sehingga pencarian data hanya dapat bergerak dalam satu arah saja. Double Linked List pointer dapat bergerak ke semua arah sehingga pencarian data dapat bergerak dalam berbagai arah. Struktur data ini banyak dipakai dalam informatika misalnya untuk merepresentasi: antrian job dalam sistem operasi antrian dalam dunia nyata. Sifat Queue Mempunyai sifat FIFO (First In First Out), yaitu suatu metode pembuatan linked list dimana data yang masuk pertama akan keluar pertama juga dan data yang terakhir masuk akan keluar terakhir. Operasi dan Fungsi Dasar pada Queue 1. Inisialisasi queue menjadi kosong (pembuatan queue kosong) membuat queue kosong diperlukan untuk memulai memakai queue. 2. Test Queue Kosong» mencari tahu status queue kosong atau tidak mengetahui bahwa queue kosong atau tidak sangat penting, sebab semua operasi akan dilakukan berdasarkan kosong atau tidaknya suatu queue. 3. Test Queue Penuh» mencari tahu status queue penuh atau tidak 4. Mencari panjang queue (jumlah elemen queue) 5. Penambahan sebuah elemen pada queue. penambahan selalu dilakukan pada ekor, dan karena alamat ekor diketahui maka prosesnya sederhana, yaitu hanya insert last.

2 2 of Clear menghapus elemen seluruh antrian 7. Penghapusan elemen pada queue. penghapusan elemen pada queue selalu dilakukan pada elemen pertama, hanya saja perlu diperhitungkan bahwa mungkin queue menjadi kosong akibat terjadinya penghapusan. Jika queue menjadi kosong, maka harga tail harus diganti. Jika akibat penghapusan queue tidak kosong, maka elemen terakhir tidak berubah. Representasi Untuk mempermudah penulisan, di bawah ini isi queue tidak dituliskan secara bertumpuk, tetapi dengan kesepakatan: elemen paling kanan adalah elemen yang ada pada ujung belakang (yang terakhir kali masuk) queue yang dipakai bernama Q ADDQ(B,Q) berarti memasukkan elemen B ke dalam queue Q DELQ(B,Q) berarti mengambil elemen dari queue Q dan menaruhnya ke dalam variabel B Operasi yang dilakukan Isi Queue Kondisi Awal kosong - ADDQ('A',Q) A - ADDQ('B',Q) AB - ADDQ('C',Q) ABC - Keterangan DELQ(Data,Q) BC Variabel Data berisi 'A' ADDQ('D',Q) BCD - DELQ(Data,Q) CD Data berisi 'B' POP(Data,S) D Data berisi 'C' Implementasi Queue dalam bahasa Pascal Untuk membuat aplikasi antrian dapat menggunakan 2 metoda : 1. Array a. Linear Array b. Circular Array 2. Linked List

3 3 of 23 IMPLEMENTASI QUEUE DENGAN ARRAY A. IMPLEMENTASI QUEUE DENGAN LINEAR ARRAY Linear Array adalah suatu array yang dibuat seakan-akan merupakan suatu garis lurus dengan satu pintu masuk dan satu pintu keluar. Dengan adanya 2 pintu, Sehingga membutuhkan variabel Head dan Tail. Gambar berikut menunjukkan model penyajian antrian dengan linier array : depan (Head) Belakang (Tail) max=5 Keluar masuk Berikut diberikan penggalan konstanta, type dan variabel yang akan dipakai untuk menjelaskan operasi-operasi dalam queue linear array. Const Type Var MaxQueue = 5; TypeQueue = byte; Queue : array[1..maxqueue] of TypeQueue; Head, Tail : Byte; Operasi-operasi pada queue dengan linear array : 1. Create Procedure Create berguna untuk menciptakan Queue yang baru dan kosong yaitu dengan cara memberikan nilai awal (head) dan nilai akhir (tail) dengan 0(nol). Nol menunjukkan bahwa queue(antrian) masih kosong. Berikut penggalan procedure create. Procedure create; Head := 0; Tail := 0; 2. IsEmpty Function IsEmpty berguna untuk mengecek apakah Queue masih kosong atau sudah berisi data. Hal ini dilakukan dengan mengecek apakah tail bernilai nol atau tidak, jika nol maka kosong. Berikut penggalan function IsEmpty : Function IsEmpty : Boolean; If Tail = 0 then IsEmpty := true Else IsEmpty := false;

4 4 of IsFull Function IsFull berguna untuk mengecek apakah Queue sudah penuh atau masih bisa menampung data dengan cara mengecek apakah nilai tail sudah sama dengan jumlah maksimal queue, jika nilai keduanya sama maka penuh. Berikut penggalan function full: Function IsFull : Boolean; If Tail = MaxQueue then IsFull := true Else IsFull := false; 4. EnQueue Procedure EnQueue berguna untuk memasukkan 1 elemen ke dalam Queue. Berikut penggalan procedure enqueue. Procedure enqueue(elemen : byte); If IsEmpty then Head := 1; Tail := 1; Queue [Head] := elemen; 5. DeQueue Procedure DeQueue berguna untuk mengambil 1 elemen dari queue, operasi ini sering disebut SERVE. Hal ini dilakukan dengan cara memindahkan semua elemen satu langkah ke posisi di depannya, sehingga otomatis elemen yang paling depan akan tertimpa dengan elemen yang terletak di belakangnya. Berikut penggalan procedure DeQueue. Procedure DeQueue; Var i : byte; If not IsEmpty then For i := Head to Tail-1 do Queue [i] := queue [i-1]; Dec(tail);

5 5 of Clear Procedure Clear berguna untuk menghapus semua elemen dalam queue dengan jalan mengeluarkan semua elemen tersebut satu per satu sampai kosong dengan memanfaatkan procedure dequeue. Berikut penggalan procedure clear. Procedure clear; While not IsEmpty then DeQueue; B. IMPLEMENTASI QUEUE DENGAN CIRCULAR ARRAY Circular Array adalah suatu array yang dibuat seakan-akan merupakan sebuah lingkaran dengan titik awal(head) dan titik akhir (tail) saling bersebelahan jika array tersebut masih kosong. Gambar berikut menunjukkan model penyajian antrian dengan circular array : head := 1; tail := Max_Queue; posisi head dan tail pada gambar di atas adalah bebas asalkan saling bersebelahan. Operasioperasi yang terdapat pada circular array tidak berbeda jauh dengan operasi pada linear array. Implementasi dengan array melingkar merupakan model yang tepat untuk mengatasi inefisiensi penggunaan ruang array pada model linear. Array dapat dipandang sebagai sebuah lingkaran. Apabila posisi terakhir dari array sudah digunakan dan posisi pertama dari array sudah tidak digunakan lagi, maka elemen queue berikutnya dapat diletakkan mulai posisi pertama lagi. Untuk mengimplementasikan array melingkar dari sebuah array linear, posisiposisi yang mengelilingi lingkaran diberi nomor dari 1 s.d maks., sama dengan indeks dari array linear. Pergeseran atau kenaikan indeks dilakukan dengan operasi aritmetika modulo (pembagian bilangan bulat). Ketika nilai indeks melebihi maks, maka dimulai lagi dari 1. operasi modulo mirip operasi pada sebuah jam, dengan angka 1 s.d 12. bila kita mengggeser empat jam dari jam 10, maka kita akan mencapai jam 2. Operasi-operasi queue dengan circular array : 1. Create Procedure Create berguna untuk menciptakan Queue yang baru dan kosong yaitu dengan cara memberikan nilai awal (head) dengan satu(1) dan nilai akhir (tail) dengan jumlah maksimal data yang akan ditampung/array. Berikut penggalan procedure create. Procedure create; Head := 1; Tail := Max_Queue;

6 Procedure dequeue; If not IsEmpty then Head := (head mod max_queue) of IsEmpty Function IsEmpty berguna untuk mengecek apakah Queue masih kosong atau sudah berisi data. Hal ini dilakukan dengan mengecek apakah tail masih terletak bersebelahan dengan head, dan tail LEBIH BESAR head atau tidak, jika benar maka kosong. Berikut penggalan function IsEmpty : Function IsEmpty : Boolean; If (Tail mod max_queue) + 1 = head then IsEmpty := true Else IsEmpty := false; 3. IsFull Function IsFull berguna untuk mengecek apakah Queue sudah penuh atau masih bisa menampung data dengan cara mengecek apakah tempat yang masih kosong tinggal satu atau tidak (untuk membedakan dengan IsEmpty dimana semua tempat kosong), jika ya maka kosong. Berikut penggalan function IsFull: Function Isfull : Boolean; Var X : 1..Max_Queue; X := (Tail mod Max_Queue) + 1; If (x mod Max_Queue) + 1 = head then IsFull := true Else isfull := false; 4. EnQueue Procedure EnQueue berguna untuk memasukkan 1 elemen ke dalam Queue. (tail dan head mula-mula adalah nol (0) ) Berikut penggalan procedure EnQueue. Procedure EnQueue(elemen : TypeElemen); If not IsFull then Tail := (tail mod Max_Queue) + 1; Queue [Tail] := elemen; 5. DeQueue Procedure DeQueue berguna untuk mengambil 1 elemen dari queue. Hal ini dilakukan dengan cara memindahkan posisi head satu langkah ke belakang. Berikut penggalan procedure dequeue.

7 7 of 23 C. IMPLEMENTASI QUEUE DENGAN DOUBLE LINKED LIST Selain menggunakan array, queue juga dapat dibuat dengan linked list. Metode linked list yang digunakan adalah double linked list. Berikut penggalan tipe konstanta dan variabel yang akan digunakan dalam penjelasan operasi-operasi queue dengan linked list. Type Var point = ^simpul; simpul = record isi : tipedata; next : point; queue = record head : point; tail : point; Q :Queue ; N : 0..Max_Queue; {jumlah antrian} Operasi-operasi pembuatan queue dengan double linked list : 1. Create Procedure Create berguna untuk menciptakan Queue yang baru dan kosong yaitu dengan cara mengarahkan pointer head dan tail kepada nil. Berikut penggalan procedure create. Procedure create; q.head := nil; q.tail := q.head; n := 0; 2. IsEmpty Function IsEmpty berguna untuk mengecek apakah Queue masih kosong atau sudah berisi data. Hal ini dilakukan dengan mengecek apakah head masih menunjuk pada nil atau tidak, jika ya maka kosong. Berikut penggalan function IsEmpty : Function IsEmpty : Boolean; If q.head = nil then isempty := true Else IsEmpty := false;

8 8 of IsFull Function IsFull berguna untuk mengecek apakah Queue sudah penuh atau masih bisa menampung data dengan cara mengecek apakah N (jumlahqueue) sudah sama dengan max_queue atau belum, jika ya maka penuh. Berikut penggalan function IsFull: Function Isfull : Boolean; if n = Max_Queue then IsFull := true Else IsFull := false; 4. EnQueue Procedure Enqueue berguna untuk memasukkan 1 elemen ke dalam Queue. (tail dan head mula-mula menunjuk ke null) Berikut penggalan procedure enqueue. Procedure enqueue (elemen : TypeData); Var now : point; If not Isfull then New (now); Now^.isi := elemen; Now^.next := nil; If IsEmpty then q.head := now; q.tail := now; n := 1; end else begin q.tail^.next := now; q.tail := now; inc(n);

9 9 of Dequeue Procedure Dequeue berguna untuk mengambil 1 elemen dari queue. Hal ini dilakukan dengan cara menghapus satu simpul yang terletak paling depan(head). Berikut penggalan procedure dequeue. Procedure dequeue; Var now : point; If not IsEmpty then Now := q.head; q.head := q.head^.next; dispose (now); dec(n); Perbedaan Queue dan Stack Perbedaan stack dan queue terdapat pada: aturan penambahan dan penghapusan elemen. Pada stack, operasi penambahan dan penghapusan elemen dilakukan di satu tempat atau satu ujung. Elemen yang terakhir kali dimasukkan akan berada paling dekat dengan ujung atau dianggap paling atas sehingga pada operasi penghapusan, elemen teratas tersebut akan dihapus paling awal. Pada queue, operasi tersebut dilakukan di tempat yang berbeda. Penambahan elemen selalu dilakukan melalui salah satu ujung, menempati posisi di belakang elemen-elemen yang sudah masuk sebelumnya atau menjadi elemen belakang, sedangkan penghapusan elemen dilakukan di ujung yang berbeda, yaitu pada posisi elemen yang masuk paling awal atau elemen depan dibanding elemen-elemen lain. Stack dengan single linked list, sedangkan queue dengan double linked list. stack dapat diimplementasikan dengan single linked list. Keunggulannya dibandingkan array adalah penggunaan alokasi memori yang dinamis sehingga menghindari pemborosan memori. Misalnya pada stack dengan array disediakan tempat untuk stack berisi 150 elemen, sementara ketika dipakai oleh user stack hanya diisi 50 elemen, maka telah terjadi pemborosan memori untuk sisa 100 elemen, yang tak terpakai. Dengan penggunaan linked list maka tempat yang disediakan akan sesuai dengan banyaknya elemen yang mengisi stack. Dalam stack dengan linked list tidak ada istilah full, sebab biasanya program tidak menentukan jumlah elemen stack yang mungkin ada (kecuali jika sudah dibatasi oleh pembuatnya). Namun demikian sebenarnya stack ini pun memiliki batas kapasitas, yakni dibatasi oleh jumlah memori yang tersedia. Salah satu kelemahan single linked list adalah pointer (penunjuk) hanya dapat bergerak satu arah saja, maju/mundur, atau kanan/kiri sehingga pencarian data pada single linked list hanya dapat bergerak dalam satu arah saja. Untuk mengatasi kelemahan tersebut, dapat menggunakan metode double linked list. Linked list ini dikenal dengan nama Linked list berpointer Ganda atau Double Linked List..

10 Contoh Aplikasi Queue 10 of 23 PROGRAM QUEUE01; uses crt; const MAX=50; type larik = Array[0..MAX] of char; RecQueue = RECORD info : larik; awal : integer; akhir : integer; END; var antri : RecQueue; pilih,elm : char; procedure init; begin antri.awal := 0; antri.akhir := 0; function Isfull:boolean; begin if antri.akhir = MAX then Isfull := true else Isfull := false; function IsEmpty:boolean; begin if antri.akhir = 0 then Isempty := true else Isempty := false; procedure baca; var i:integer; begin writeln('isi queue sekarang : '); for i := antri.awal to antri.akhir do write(antri.info[i], ' '); writeln(''); procedure inqueue(elemen:char); begin

11 if Isempty = true then begin antri.awal := 1; antri.akhir:= 1; antri.info[antri.awal] := elemen; end else if Isfull <> true then begin antri.akhir := antri.akhir + 1; antri.info[antri.akhir]:=elemen; end else writeln('queue overflow...'); 11 of 23 function dequeue:char; var isi:char; i : integer; begin if Isempty <> true then begin isi := antri.info[antri.awal]; for i:=antri.awal to antri.akhir - 1 do antri.info[i] := antri.info[i+1]; antri.akhir := antri.akhir - 1; dequeue := isi; end else writeln('queue underflow...'); BEGIN CLRSCR; writeln('--- Demo Queue dg Linear Array ---'); init; repeat writeln('operasi QUEUE dg Linear Array :'); writeln('[1] InQueue (Insert Queue)'); writeln('[2] DeQueue (Delete Queue)'); writeln('[3] Baca'); writeln('[4] Selesai...'); write(' Pilihan : '); readln(pilih); case pilih of '1' : begin write('antrian Masuk : '); readln(elm); inqueue(elm); '2' : begin

12 elm:=dequeue; writeln(elm,' Keluar dr antrian'); '3' : baca; '4' : writeln('wakarimasuta (?_?)'); else writeln('salah pilih...'); writeln(''); until (pilih = '4'); readln; END. 12 of 23 Program Antri1; Uses crt; Const Max = 10; Type Node = ^Queue; Queue = Record Kar : Char; Next : Node; Var Pil : char; Jml : byte; Head, now, tail : node; Procedure Push(ch : char); {membuat node} New(Now); If Head = NIL then Head := Now; Else Tail^.Next := Now; Tail := Now; Tail^.Next := NIL; Now^.Kar := ch; Procedure Pop; {menghapus simpul} Now := Head; Head := Head^.Next; Dispose(Now); Procedure EnQueue; {mengisi antrian} Var I : byte; Temp : char; GotoXY(1,6); Clreol;Write( KARAKTER : );

13 Repeat GotoXY(25,6); Clreol;Temp := Readkey;Write(Temp); Until Temp <> ; Push(Temp); For I := 1 to 75 Jml * 6 do {animasi mengisi antrian} GotoXY(I+1,20); Write( o ); GotoXY(I,21);Write( =(, Now^.Kar, )= ); GotoXY(I+1,22);Write( / \ );Delay(10); If I <> 75 Jml * 6 then GotoXY(I+1,20);Write( ); GotoXY(I,21);Write( ); GotoXY(I+1,22);Write( ); 13 of 23 Procedure DeQueue; {mengeluarkan antrian} Var I, Byk : byte; Now := Head; For I := 69 to 76 do {animasi mengeluarkan antrian} GotoXY(I+1,20);Write( o ); GotoXY(I,21);Write( =(,Now^.Kar, )= ); GotoXY(I+1,22);Write( / \ );Delay(10); GotoXY(I+1,20);Write( ); GotoXY(I,21);Write( ); GotoxXY(I+1,22);Write( ); Byk := 0; While Byk <> Jml do Inc(Byk); Now := Now^.Next; For I := 69 Byk * 6 to 75 Byk * 6 do {animasi memajukan} GotoXY(I+1,20);Write( o ); GotoXY(I,21);Write( =(,Now^.Kar, )= ); GotoXY(I+1,22);Write( / \ );Delay(25); If I <> 75 Byk * 6 then GotoXY(I+1,20);Write( ); GotoXY(I,21);Write( ); GotoXY(I+1,22);Write( );

14 Procedure Input; {membuat menu} GotoXY(1,1);Writeln( 1. ENQUEUE ); GotoXY(1,2);Writeln( 2. DEQUEUE ); GotoXY(1,3);Writeln( 3. EXIT ); Repeat Repeat GotoXY(1,4);Clreol;Write( YOUR CHOICE : ); Pil := Readkey;Write(Pil); Until Pil in [ 1, 2, 3 ]; Case Pil of 1 : {menambah pengantri} If Jml < Max then Inc(Jml); EnQueue; end else GotoXY(1,8);Write( ANTRIAN PENUH! );Delay(500); GotoXY(1,8);Clreol; 14 of 23 2 : {mengeluarkan pengantri} If Jml >= 1 then Dec(Jml); DeQueue; Pop; end else GotoXY(1,8);Write( ANTRIAN KOSONG! );Delay(500); GotoXY(1,8);Clreol; Until Pil = 3 ; {keluar dari program} {program utama} Jml := 0; Clrscr; Input; End. Program Antri2; Uses crt; Type Point = ^Rec;

15 Var Rec = Record Isi : Char; Next : Point; Queue = Record; Head : Point; Tail : Point; Q : Queue; I, K : Byte; {i = tinggi_stack} 15 of 23 Procedure GambarPipa; {membentuk pipa antrian} Var Y : Byte; GotoXY(39,8);Write( \ / ); For Y := 1 to 10 do GotoXY(40,Y+8);Write( ); GotoXY(46,Y+8);Write( ); GotoXY(40,19);Write( _ _ ); GotoXY(61,21);Write( \ ); GotoXY(61,23);Write( / ); Function IsEmpty : Boolean; {fungsi cek antri kosong} If Q.Head = NIL then IsEmpty := True Else IsEmpty := False; Function IsFull : Boolean; {fungsi cek antrian penuh} If 1 = 10 then IsFull := True Else IsFull := False; Procedure EnQueue; {prosedur menambah pengantri} Var Now : Point; If IsFull then GotoXY(1,6); Write( QUEUE SUDAH PENUH... ); Delay(200);

16 GotoXY(1,6); Clreol; end else New(Now); GotoXY(1,7); Clreol;Write( MASUKKAN SATU HURUF = ); Now^Isi := Readkey;Write(Now^.Isi); Now^.Next := NIL; For K := 1 to 20 do {animasi mengisi antrian} GotoXY(K+22,7);Write( ); GotoXY(K+23,7);Write(Now^.Isi);Delay(10); For K := 1 to 11-I do GotoXY(43,K+6);Write( ); GotoXY(43,K+7);Write(Now^.Isi);Delay(10); Inc(I); GotoXY(1,7);Clreol; If IsEmpty then Q.Head := Now; Q.Tail := Now; end else Q.Tail^.Next := Now; Q.Tail := Now; 16 of 23 Procedure DeQueue; {prosedur mengurangi antrian} Var U : Byte; Now : Point; If IsEmpty then GotoXY(1,6);Write( QUEUE KOSONG... ); Delay(200); GotoXY(1,6);Clreol; end else For K := 19 to 22 do {animai mengeluarkan pengantri} GotoXY(43,K-1);Write( ); GotoXY(43,K);Write(Q.Head^.Isi);Delay(10); For K := 43 to 63 do GotoXY(K,22);Write( );

17 GotoXY(K+1,22); Write(Q.Head^.Isi);Delay(10); Now := Q.Head; Q.Head := Q.Head^.Next; Dispose(Now); Dec(I); Now := Q.Head; K := 18; While Now <> NIL do GotoXY(43,K);Write(Now^.Isi); Now := Now^.Next; Dec(K); GotoXY(43,K);Write( ); Sound(1000);Delay(200);NoSound; 17 of 23 Procedure Create; {memberi nilai antrian awal} Q.Head := NIL; Q.Tail := NIL; Procedure Clear; {mengosongkan antrian} While not IsEmpty do DeQueue; Procedure Menu; {tampilan menu} Var Jwb : Char; I := 0; GotoXY(1,2);Writeln( 1. ENQUEUE ); GotoXY(1,3);Writeln( 2. DEQUEUE ); GotoXY(1,4);Writeln( 3. EXIT ); Create; Repeat GotoXY(1,5);Clreol;Write( PILIHAN [ 1 / 2 / 3 ]: ); Jwb := Readkey;Write(Jwb); Case Jwb of 1 : EnQueue; {menambah antrian} 2 : DeQueue ; {mengurangi antrian} Until Jwb = 3 ; {keluar dari program} Clear; {main program}

18 End. Clrscr; GambarPipa; Menu; 18 of 23

19 19 of 23 Perbandingan Queue Dengan Linked List VS Queue Dengan Array Implementasi queue menggunakan array Implementasi sederhana Ukuran memori harus ditentukan ketika sebuah objek queue dideklarasikan Pemborosan tempat (memori) ketika menggunakan jumlah data yang lebih sedikit dari alokasi memori Tidak dapat menambahkan data melebihi maksimal ukuran array yang telah dideklarasikan Implementasi queue menggunakan linked list Pengalokasian memori dinamis Menggunaka 2 buah pionter, qfront dan qrear, untuk menandai posisi depan dan belakang dari queue Perbandingan implementasi queue, array VS linked list (contoh 1) Memory requirements Array-based implementation Diasumsikan ukuran queue 100 Diasumsikan index membutuhkan 2 bytes Total memory: (80 bytes x 101 slots) + (2 bytes x 2 indexes) = 8084 bytes Linked-list-based implementation Diasumsikan pointers membutuhkan 4 bytes Total memory per node: 80 bytes + 4 bytes = 84 bytes Gambar :

20 20 of 23 Perbandingan implementasi queue, array VS linked list (contoh 2) Memory requirements Array-based implementation Diasumsikan ukuran queue 100 Diasumsikan index membutuhkan 2 bytes Total memory: (2 bytes x 101 slots) + (2 bytes x 2 indexes) = 206 bytes Linked-list-based implementation Diasumsikan pointers membutuhkan 4 bytes Total memory per node: 2 bytes + 4 bytes = 6 bytes Gambar : PEMBAHASAN 1. INPUT PROGRAM a. PROGRAM ANTRI1 Program antri1 merupakan program animasi antrian. Dalam program tersebut terdapat 3 pilihan yaitu ENQUEUE, DEQUEUE dan EXIT. Jika ENQUEUE dipilih, maka user akan diminta menginput sebuah character yang akan langsung ditampilkan. Jika ENQUEUE dipilih lagi, character baru akan ditambahkan dibelakang character sebelumnya. Kalau terpilih DEQUEUE maka karaklter terdepan akan menghilang dan character-character di belakangnya akan maju. Jika dipilih exit maka program akan selesai. b. PROGRAM ANTRI2 Program antri2 adalah program yang akan menggambarkan suatu antrian. Dimana terdapat 3 pilihan yaitu ENQUEUE, DEQUEUE dan EXIT. Jika dipilih ENQUEUE, maka user diminta menginputkan character. Dalam proses menginputkan character tersebut

21 21 of 23 terdapat animasi yaitu character tersebut memasuki tempat antrian. Jika dipilih DEQUEUE, maka animasi character terdepan keluiar dari antrian. Jika dipilih exit, maka program akan selesai. 2. OUTPUT PROGRAM a. ANTRI1 Output Program apabila kita memilih angka 1 yaitu ENQUEUE : Output Program apabila kita memilih angka 2 yaitu DEQUEUE Output Program apabila kita memilih angka 3 yaitu EXIT

22 22 of 23 b. ANTRI2 Output Program apabila kita memilih angka 1 yaitu ENQUEUE Output Program apabila kita memilih angka 2 yaitu DEQUEUE

23 23 of 23 Output Program apabila kita memilih angka 3 yaitu EXIT DAFTAR PUSTAKA Sismoro, Heri S.Kom Dan Kusrini Iskandar, S.Kom, 2004, Struktur Data Dan Pemrograman Dengan Pascal, Yogyakarta : Andi Offset Sanjaya, Dwi, 2001, Bertualang Dengan Struktur Data Di Planet Pascal, Yogyakarta : J & J Learning. d=33

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II. : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Queue.

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II. : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Queue. Pertemuan 9 Waktu Tujuan Pembelajaran : 135 menit : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Queue. Substansi Materi : Queue Tabulasi Kegiatan Perkuliahan No Tahap Kegiatan Kegiatan Pengajar

Lebih terperinci

Masukan Judul... Infotype àsebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list

Masukan Judul... Infotype àsebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list Universitas Muhammadiyah Sukabumi Artikel Struktur Data Oleh : fahmi fauzi Masukan Judul... 1. STACK DAN QUEUE DENGAN LINKED LIST Pengertian Linked list : sekumpulan elemen bertipe sama, yang mempunyai

Lebih terperinci

: Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Linked List. Single Linked List

: Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Linked List. Single Linked List Pertemuan 5 Waktu Tujuan Pembelajaran : 135 menit : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Linked List. Substansi Materi : Single Linked List, LIFO, FIFO Tabulasi Kegiatan Perkuliahan

Lebih terperinci

Lab. Teknik Informatika Struktur Data 1

Lab. Teknik Informatika Struktur Data 1 2. POINTER dan SINGLE LINK LIST TUJUAN PRAKTIKUM 1. Praktikan mengetahui tipe struktur data baru yaitu tipe data Pointer. 2. Praktikan menggunakan pointer didalam pembuatan program dan dapat menerapkannya

Lebih terperinci

BAB III QUEUE (ANTRIAN)

BAB III QUEUE (ANTRIAN) BAB III QUEUE (ANTRIAN) 3.1 Pengertian Antrian Antrian (Queue) merupakan kumpulan data yang mana penambahan elemen hanya bias dilakukan pada suatu ujung yaitu rear /tail / belakang, dan pengha[usan dilakukan

Lebih terperinci

QUEUE (ANTRIAN) Struktur Data - Queue

QUEUE (ANTRIAN) Struktur Data - Queue QUEUE (ANTRIAN) Queue (antrian) adalah barisan elemen yang apabila elemen ditambah maka penambahannya berada di posisi belakang (rear) dan jika dilakukan pengambilan elemen dilakukan di elemen paling depan

Lebih terperinci

Struktur Data Array. Rijal Fadilah S.Si

Struktur Data Array. Rijal Fadilah S.Si Struktur Data Array Rijal Fadilah S.Si Array Berdimensi Satu Array Satu dimensi tidak lain adalah kumpulan elemen-elemen identik yang tersusun dalam satu baris. Elemen-elemen tersebut memiliki tipe data

Lebih terperinci

Algoritma Dan Struktur Data II. Queue

Algoritma Dan Struktur Data II. Queue Algoritma Dan Struktur Data II Queue Apakah Queue itu? Putuu Putra Astawa Apakah Queue itu? Penambahan data dilakukan pada sebuah ujung sebuah list, sedangkan penghapusan data dilakukan pada ujung yang

Lebih terperinci

Pertemuan 7. REVIEW dan QUIS

Pertemuan 7. REVIEW dan QUIS Pertemuan 7 REVIEW dan QUIS 1. Type data dibawah ini, yang tidak termasuk dalam tipe data sederhana tunggal, adalah : a. Boolean d. Integer b. String e. float c. Char 2. ==, =,!=, termasuk dalam operator

Lebih terperinci

QUEUE (ANTREAN) Pertemuan 6 PENGERTIAN QUEUE (ANTREAN)

QUEUE (ANTREAN) Pertemuan 6 PENGERTIAN QUEUE (ANTREAN) Pertemuan 6 QUEUE (ANTREAN) PENGERTIAN QUEUE (ANTREAN) Struktur Data Antrean (Queue) adalah suatu bentuk khusus dari List Linier dengan operasi pemasukan data hanya diperbolehkan pada salah satu sisi,

Lebih terperinci

Pertemuan VI ANTRIAN (Queue)

Pertemuan VI ANTRIAN (Queue) Pertemuan VI ANTRIAN (Queue) STMIK Balikpapan Jurusan Manajemen Informatika Pada pembahasan selanjutnya kita akan mempelajari satu jenis struktur data yang disebut dengan antrian (queue) yang sering digunakan

Lebih terperinci

LOGO STRUKTUR DATA QUEUE

LOGO STRUKTUR DATA QUEUE STRUKTUR DATA QUEUE Queue (antrian) adalah barisan elemen yang apabila elemen ditambah, maka penambahannya berada pada posisi belakang (rear) dan jika dilakukan pengambilan elemen dilakukan di elemen paling

Lebih terperinci

STACK (TUMPUKAN) Secara sederhana, sebuah tumpukan bisa kita ilustrasikan seperti gambar berikut.

STACK (TUMPUKAN) Secara sederhana, sebuah tumpukan bisa kita ilustrasikan seperti gambar berikut. STACK (TUMPUKAN) Salah satu konsep yang sangat berguna di dalam Ilmu Komputer adalah satu bentuk struktur data yang disebut tumpukan (stack). Dalam bab ini kita akan mencoba menggali mengapa tumpukan sangat

Lebih terperinci

1. Kompetensi Mengenal dan memahami struktur data Stack (tumpukan) dan Queue (antrian).

1. Kompetensi Mengenal dan memahami struktur data Stack (tumpukan) dan Queue (antrian). No. : LST/PTI/PTI 212/13 Revisi : 00 Tgl. : 28-4-2008 Hal. 1 dari 5 hal. 1. Kompetensi Mengenal dan memahami struktur data Stack (tumpukan) dan Queue (antrian). 2. Sub Kompetensi Dapat menyelesaikan suatu

Lebih terperinci

ALGORITMA DAN STRUKTUR DATA ARRAY STACK DAN QUEUE

ALGORITMA DAN STRUKTUR DATA ARRAY STACK DAN QUEUE ALGORITMA DAN STRUKTUR DATA ARRAY STACK DAN QUEUE STACK = TUMPUKAN SUATU SUSUNAN KOLEKSI DATA DIMANA DATA DAPAT DITAMBAHKAN DAN DIHAPUS SELALU DILAKUKAN PADA BAGIAN AKHIR DATA, YANG DISEBUT DENGAN TOP

Lebih terperinci

5. QUEUE (ANTRIAN) TUJUAN PRAKTIKUM

5. QUEUE (ANTRIAN) TUJUAN PRAKTIKUM 5. QUEUE (ANTRIAN) TUJUAN PRAKTIKUM 1. Praktikan mengenal salah satu lagi tipe khusus dari link list yaitu queue/ antrian beserta seluruh operasi yang ada padanya. 2. Praktikan diharapkan dapat menerapkan

Lebih terperinci

Pointer. Pengertian. Struktur Data Pascal

Pointer. Pengertian. Struktur Data Pascal Pointer Struktur Data Pascal Pengertian Pada materi sebelumnya telah dijelaskan mengenai variabel bertipe array, suatu tipe data yang bersifat statis (ukuran dan urutannya sudah pasti). Selain itu ruang

Lebih terperinci

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II. Tujuan Pembelajaran : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Stack.

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II. Tujuan Pembelajaran : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Stack. Pertemuan 7 Waktu : 135 menit Tujuan Pembelajaran : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Stack. Substansi Materi : Stack Tabulasi Kegiatan Perkuliahan No Tahap Kegiatan Kegiatan Pengajar

Lebih terperinci

MAKALAH STRUKTUR DATA. DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH ( )

MAKALAH STRUKTUR DATA. DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH ( ) MAKALAH STRUKTUR DATA DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH (14.1.03.03.0024) FAKULTAS TEKNIK PROGRAM STUDI SISTEM INFORMASI UNIVERSITAS NUSANTARA PGRI KEDIRI

Lebih terperinci

4. STACK / TUMPUKAN TEORI PENUNJANG

4. STACK / TUMPUKAN TEORI PENUNJANG 4. TCK / TUMPUKN TUJUN PRKTIKUM 1. Praktikan mengenal tipe khusus dari link list yaitu stack/tumpukan beserta seluruh operasi yang ada padanya. 2. Praktikan diharapkan dapat menerapkan teori mengenai single

Lebih terperinci

RESUME A B C D. Gambar 1 Double Linked list dengan Empat Simpul

RESUME A B C D. Gambar 1 Double Linked list dengan Empat Simpul RESUME Linked list yang kita pelajari sebelumnya hanya mempunyai sebuah pointer pada setiap simpulnya. Hal ini merupakan kelemahan bahwa linked list tersebut hanya bisa dibaca dalam satu arah saja, yaitu

Lebih terperinci

Materi 9 : QUEUE (ANTREAN) Dosen:

Materi 9 : QUEUE (ANTREAN) Dosen: JURNAL PRAKTIKUM (LAB. ACTIVITY) STRUKTUR DATA SI025 Materi 9 : QUEUE (ANTREAN) Dosen: Acihmah, M.Kom Agung Nugroho, M.Kom Ikmah, M.Kom Lilis Dwi Farida, S.Kom., M.Eng Ninik Tri. H, M.Kom Prof. Dr. Ema

Lebih terperinci

Queue. Implementasi Queue dengan Array

Queue. Implementasi Queue dengan Array Queue Queue (antrian) adalah kumpulan data yang penambahan elemennya dilakukan pada suatu ujung (bagian belakang) dan penghapusannnya dilakukan pada ujung yang lain (bagian depan). Prinsip ini biasa juga

Lebih terperinci

Kode MK/ Pemrograman Terstruktur 2. ZK Abdurahman Baizal. KK Algoritma dan Komputasi. Queue (Antrian)

Kode MK/ Pemrograman Terstruktur 2. ZK Abdurahman Baizal. KK Algoritma dan Komputasi. Queue (Antrian) Kode MK/ Pemrograman Terstruktur 2 ZK Abdurahman Baizal KK Algoritma dan Komputasi Queue (Antrian) 1 8/25/2015 Pendahuluan Pada bab ini kita akan membahas queue, yang sebenarnya mempunyai ADT hampir sama

Lebih terperinci

VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI. Pemrograman Dasar Kelas X Semester 2

VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI. Pemrograman Dasar Kelas X Semester 2 VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI Tujuan Pembelajaran 1. Siswa mampu memahami penulisan Tipe data, variabel dan konstanta dalam pascal 2. Siswa mampu menerapkan penggunaan Tipe data,

Lebih terperinci

MODUL PRAKTIKUM STRUKTUR DATA

MODUL PRAKTIKUM STRUKTUR DATA MODUL PRAKTIKUM STRUKTUR DATA JAKARTA 2018 Page 1 DAFTAR ISI MODUL I TIPE DATA ARRAY 1 MODUL II STACK 4 MODUL III SEARCHING. 10 MODUL IV SORTING.. 13 MODUL V POINTER... 17 MODUL VI LINKED LIST 23 Page

Lebih terperinci

STRUKTUR DATA POKOK BAHASAN - 8 QUEUE ( ANTRIAN)

STRUKTUR DATA POKOK BAHASAN - 8 QUEUE ( ANTRIAN) STRUKTUR DATA POKOK BAHASAN - 8 QUEUE ( ANTRIAN) Oleh : NAZARUDDIN AHMAD, S.T, M.T Referensi : Antonius Rachmat C, S.Kom Andri Heryamdi Design By mytemplate 2013 Queue Queue atau antrian adalah barisan

Lebih terperinci

3. DOUBLE LINK LIST. Lab. Teknik Informatika Struktur Data 1

3. DOUBLE LINK LIST. Lab. Teknik Informatika Struktur Data 1 3. DOUBLE LINK LIST TUJUAN PRAKTIKUM Setelah mengenal tipe data single link list maka : 1. Praktikan diharapkan dapat menggunakan double link list. 2. Praktikan diharapkan mengerti perbedaan antara single

Lebih terperinci

Double linked list. Gambar 1. Double linket list dengan empat simpul Deklarasi Double Linked List di dalam Pascal :

Double linked list. Gambar 1. Double linket list dengan empat simpul Deklarasi Double Linked List di dalam Pascal : Double linked list Link list yang kita pelajari sebelumnya hanya mempunyai sebuah pointer pada setiap simpulnya. Hal ini merupakan kelemahan bahwa link list tersebut hanya bisa dibaca dalam satu arah saja,

Lebih terperinci

A B C D E F. Gambar 1. Senarai berantai dengan 6 simpul

A B C D E F. Gambar 1. Senarai berantai dengan 6 simpul struktur data fd [page 1 of 7] SENARAI BERANTAI Dalam pemakaian sehari-hari istilah senarai berantai (list) adalah kumpulan linier sejumlah data. Contohnya seperti daftar belanja harian, dimana setiap

Lebih terperinci

PRAKTIKUM STRUKTUR DATA QUEUE. SULIDAR FITRI, M.Sc

PRAKTIKUM STRUKTUR DATA QUEUE. SULIDAR FITRI, M.Sc PRAKTIKUM STRUKTUR DATA QUEUE SULIDAR FITRI, M.Sc QUEUE Secara harafiah, queue berarti antrian, queue merupakan salah satu contoh aplikasi dari pembuatan double linked list yang cukup sering kita temui

Lebih terperinci

BAB 1 PENGANTAR KE STRUKTUR DATA

BAB 1 PENGANTAR KE STRUKTUR DATA Struktur Data - 1 BAB 1 PENGANTAR KE STRUKTUR DATA 1.1 Mengapa Struktur Data Diperlukan? Struktur data adalah cara mengorganisakan data di memori komputer. Bagaimana data diorganisasikan (struktur data)

Lebih terperinci

Double Linked List DIKTAT KULIAH. Pertemuan 6

Double Linked List DIKTAT KULIAH. Pertemuan 6 Pertemuan 6 Waktu : 135 menit Tujuan Pembelajaran : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Double Linked List. Substansi Materi : Doubled Linked List, Circullar Double Linked List Tabulasi

Lebih terperinci

BAB II STACK Atau TUMPUKAN

BAB II STACK Atau TUMPUKAN BAB II STACK Atau TUMPUKAN List Linear (Daftar Linear). List linier adalah sekumpulan elemen bertipe sama, yang mempunyai keterurutan tertentu, yang setiap elemennya disebut simpul (node). Simpul terdiri

Lebih terperinci

Menghapus Pointer Statement yang digunakan untuk menghapus pointer adalah Dispose, yang mempunyai bentuk umum : Dispose(peubah) ;

Menghapus Pointer Statement yang digunakan untuk menghapus pointer adalah Dispose, yang mempunyai bentuk umum : Dispose(peubah) ; Maka sekarang kita mempunyai dua buah simpul yang ditunjuk oleh P1 dan P2. Setelah itu kita dapat melakukan pengaksesan data, yaitu dengan menuliskan : P1^.Nama_Peg := Ariswan ; P1^.Alamat := Semarang

Lebih terperinci

STRUKTUR DATA Pertemuan 1 s.d 8

STRUKTUR DATA Pertemuan 1 s.d 8 STRUKTUR DATA Pertemuan 1 s.d 8 Sasaran: Meningkatkan: pemahaman pengetahuan tentang teori dasar struktur data dan penanganan data serta pembuatan algoritma dan penggunaan strukturd dalam pemrograman Materi

Lebih terperinci

DIKTAT KULIAH STRUKTUR DATA. Disusun oleh: Sri Primaini A.

DIKTAT KULIAH STRUKTUR DATA. Disusun oleh: Sri Primaini A. DIKTAT KULIAH STRUKTUR DATA Disusun oleh: Sri Primaini A. FAKULTAS ILMU KOMPUTER UNIVERSITAS INDO GLOBAL MANDIRI PALEMBANG 2016 DAFTAR ISI Halaman BAB 1 PENGANTAR KE STRUKTUR DATA... 1 1.1 Mengapa Struktur

Lebih terperinci

MODUL 1. Struktur Bahasa PASCAL secara umum

MODUL 1. Struktur Bahasa PASCAL secara umum MODUL 1 Struktur Bahasa PASCAL secara umum Pascal mempunyai struktur sebagai berikut: 1. Bagian Judul Program 2. Bagian Deklarasi e a. Deklarasi tipe data (TYPE) b. Deklarasi variabel (VAR) c. Deklarasi

Lebih terperinci

Struktur Data. Tumpukan : Definisi & Operasi. Pertemuan 4 PROBLEM ALGORITHM DATA IMPLEMENTATION. Pert. 4b Struktur Data - FMIPA USD

Struktur Data. Tumpukan : Definisi & Operasi. Pertemuan 4 PROBLEM ALGORITHM DATA IMPLEMENTATION. Pert. 4b Struktur Data - FMIPA USD Pertemuan 4 : Definisi & Operasi Disusun oleh : PH. Prima Rosa, S.Si., M.Sc. Sri Hartati Wijono, S.Si. 2003/2004 Pert. 4b Struktur Data - FMIPA USD - 2003 Hal. 1 Struktur Data PROBLEM ALGORITHM DATA IMPLEMENTATION

Lebih terperinci

MODUL PRAKTIKUM PERCABANGAN DAN PENGULANGAN

MODUL PRAKTIKUM PERCABANGAN DAN PENGULANGAN PERCABANGAN DAN PENGULANGAN Pada BAB ini akan membahas tentang PERCABANGAN dan PERULANGAN. PERCABANGAN : a) IF THEN b) CASE OF PENGULANGAN: a) REPEAT N TIMES b) REPEAT UNTIL c) WHILE DO d) ITERATE STOP

Lebih terperinci

BAB II STACK (TUMPUKAN)

BAB II STACK (TUMPUKAN) BAB II STACK (TUMPUKAN) Stack merupakan metode dalam menyimpan atau mengambil data ke dan dari memori. Stack dapat dibratkan sebuah tumpukan barang dalam sebuah tempat yang hanya memiliki satu pintu diatsnya

Lebih terperinci

STACK (Tumpukan) Tumpukan Koin. Tumpukan Kotak

STACK (Tumpukan) Tumpukan Koin. Tumpukan Kotak STACK (Tumpukan) Tumpukan Koin Tumpukan Kotak Defenisi : Secara sederhana, tumpukan bisa diartikan sebagai suatu kumpulan data yang seolah-olah ada data yang diletakan diatas data yang lain. Satu hal yang

Lebih terperinci

BAB IX LINKED LIST (SENARAI BERANTAI)

BAB IX LINKED LIST (SENARAI BERANTAI) BAB IX LINKED LIST (SENARAI BERANTAI) Linked list atau biasa disebut senarai berantai adalah suatu kumpulan data yang saling terhubung antar 1 data dengan data berikutnya. Suatu element (disebut dengan

Lebih terperinci

STACK (TUMPUKAN) & QUEUE (ANTRIAN) Altien Jonathan Rindengan, S.Si., M.Kom.

STACK (TUMPUKAN) & QUEUE (ANTRIAN) Altien Jonathan Rindengan, S.Si., M.Kom. STACK (TUMPUKAN) & QUEUE (ANTRIAN) Altien Jonathan Rindengan, S.Si., M.Kom. Stack Stack (tumpukan) : list (urutan) dimana penambahan dan pengambilan elemen hanya dilakukan pada satu sisi yang disebut top

Lebih terperinci

LAPORAN PRAKTIKUM RESMI QUEUE

LAPORAN PRAKTIKUM RESMI QUEUE LAPORAN PRAKTIKUM RESMI QUEUE Disusun oleh : Amin Setyaningrum 201301052 Dosen pengampu : Yosef Murya Kusuma Ardhana.S.T., M.Kom JURUSAN SISTEM INFORMASI SEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO PURWOKERTO

Lebih terperinci

Struktur Data. Queue (Antrian)

Struktur Data. Queue (Antrian) Struktur Data Queue (Antrian) Definisi Queue (Antrian) adalah list linier yang : 1. Dikenali elemen pertama (Head) dan elemen terakhirnya (Tail) 2. Aturan penyisipan dan penghapusan elemennya didefinisikan

Lebih terperinci

Variabel dan Tipe Data Kusrini 1, Heri Sismoro 2

Variabel dan Tipe Data Kusrini 1, Heri Sismoro 2 Variabel dan Tipe Data Kusrini 1, Heri Sismoro 2 1 Jurusan Sistem Informasi, 2 Jurusan Manajemen Informatika 1,2 STMIK AMIKOM Yogyakarta 1,2 Jl. Ringroad Utara Condong Catur Sleman Yogyakarta Variabel

Lebih terperinci

ALGORITMA & PEMROGRAMAN

ALGORITMA & PEMROGRAMAN ALGORITMA & PEMROGRAMAN Oleh: Tim Algoritma & Pemrograman IF Linked List PENGERTIAN LINKED LIST Salah satu bentuk struktur data, berisi kumpulan data (node) yang tersusun secara sekuensial, saling sambung-menyambung,

Lebih terperinci

BAB IV Antrian(Queue)

BAB IV Antrian(Queue) BAB IV Antrian(Queue) Tujuan 1. Memahami berbagai cara untuk merepresentasikan queue secara sekuensial maupun dengan menggunakan linked list 2. Memahami implementasi queue dalam menyelesaikan sebuah permasalahan

Lebih terperinci

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 1 x 3 x 50 Menit Pertemuan : 9

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 1 x 3 x 50 Menit Pertemuan : 9 A. Kompetensi 1. Utama SATUAN AARA PRKULIAHAN (SAP) Mata Kuliah : Struktur ata Kode : TIS3213 Semester : III Waktu : 1 x 3 x 50 Menit Pertemuan : 9 Mahasiswa dapat memahami tentang konsep pemrograman menggunakan

Lebih terperinci

Konsep Sorting dalam Pemrograman Saniman dan Muhammad Fathoni

Konsep Sorting dalam Pemrograman Saniman dan Muhammad Fathoni Konsep Sorting dalam Pemrograman Saniman dan Muhammad Fathoni Abstrak Sort adalah proses pengurutan data yang sebelumnya disusun secara acak sehingga menjadi tersusun secara teratur menurut suatu aturan

Lebih terperinci

STACK DAN QUEUE (Muhammad Fachrie, STMIK Amikom Yogyakarta)

STACK DAN QUEUE (Muhammad Fachrie, STMIK Amikom Yogyakarta) STACK DAN QUEUE (Muhammad Fachrie, STMIK Amikom Yogyakarta) A. Stack 1. Pendahuluan Stack (tumpukan) dan queue (antrian) sebenarnya adalah sebuah cara dalam mengorganisasikan data-data yang dimiliki. Ibarat

Lebih terperinci

Bab 4 Pointer dan Struktur Data Dinamik 16 BAB IV POINTER DAN STRUKTUR DATA DINAMIK TUJUAN PRAKTIKUM TEORI PENUNJANG

Bab 4 Pointer dan Struktur Data Dinamik 16 BAB IV POINTER DAN STRUKTUR DATA DINAMIK TUJUAN PRAKTIKUM TEORI PENUNJANG Bab 4 Pointer dan Struktur Data Dinamik 16 BAB IV POINTER DAN STRUKTUR DATA DINAMIK TUJUAN PRAKTIKUM 1. Mengerti dalam penggunaan pointer. 2. Dapat membuat larik dinamik dan daftar berkait TEORI PENUNJANG

Lebih terperinci

Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN

Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN I. Elemen-Elemen Dalam Bahasa Pemrograman Berikut adalah elemen-elemen pada bahasa pemrograman: Berikut adalah element-element pada bahasa pemrograman: 1. Aturan

Lebih terperinci

BAB IX LINKED LIST (SENARAI BERANTAI)

BAB IX LINKED LIST (SENARAI BERANTAI) BAB IX LINKED LIST (SENARAI BERANTAI) Double Linked List Double Linked List adalah suatu linked list yang mempunyai penunjuk yaitu penunjuk ke data sebelumnya dan berikutnya. Perhatikan gambar di bawah

Lebih terperinci

KONSEP POINTER DAN LINKED LIST

KONSEP POINTER DAN LINKED LIST Pertemuan 3 KONSEP POINTER DAN LINKED LIST Untuk mengolah data yang banyaknya tidak bisa ditentukan sebelumnya, maka disediakan satu fasilitas yang memungkinan untuk menggunakan suatu perubah yang disebut

Lebih terperinci

Teori Algoritma TIPE DATA

Teori Algoritma TIPE DATA Alam Santosa Teori Algoritma Dasar Algoritma TIPE DATA Program komputer adalah deretan perintah untuk memanipulasi data input menjadi informasi yang bermanfaat bagi pengguna (user). Data yang diinput dapat

Lebih terperinci

Stack. Gambar 1.1 Stack

Stack. Gambar 1.1 Stack Stack Stack adalah struktur data yang memiliki sifat last in first out. Struktur dari stack yang dapat kita lihat sehari-hari adalah : tumpukan (lihat gambar 1.1) Gambar 1.1 Stack Terdapat 2 (dua) operasi

Lebih terperinci

*Sekumpulan elemen yang diatur secara terurut. *Linear List tidak sama dengan Connected-List

*Sekumpulan elemen yang diatur secara terurut. *Linear List tidak sama dengan Connected-List 1. Array 1. Linear List 2. Stack 3. Queue 1. Apa? 2. Bagaimana cara implementasinya? 2. List 1. Connected List 2. Circular List 3. Doubly-linked List 4. Multi list structure 3. Tree Structure Sekumpulan

Lebih terperinci

KERUGIAN DAN KEUNTUNGAN LINKED LIST

KERUGIAN DAN KEUNTUNGAN LINKED LIST KERUGIAN AN KEUNTUNGAN LINKE LIST KERUGIANNYA AALAH : 1. iperlukan ruang tambahan untuk menyatakan/tempat field pointer. 2. iperlukan waktu yang lebih banyak untuk mencari suatu node dalam linked list.

Lebih terperinci

Struktur Data. Belajar Struktur Data Menggunakan Pascal Pertemuan-1

Struktur Data. Belajar Struktur Data Menggunakan Pascal Pertemuan-1 Struktur Data Belajar Struktur Data Menggunakan Pascal Pertemuan-1 I n W a h y u W i d o d o e m a i l @ r i n g k e s. c o m Identifier, Konstanta dan Variabel Identifier (sebutan / pengenal) Identifier

Lebih terperinci

ARRAY DINAMIS. Type. Pengenal = Simpul Simpul = Type. (Nama var) : ( Type data)

ARRAY DINAMIS. Type. Pengenal = Simpul Simpul = Type. (Nama var) : ( Type data) ARRAY DINAMIS Sebelumnya telah dijelaskan mengenai variable bertipe array (array statis), suatu tipe data yang bersifat statis (urutan dan ukuran sudah pasti). Kelemahan dari array statis adalah penggunaan

Lebih terperinci

Pertemuan 3. Perubah Dinamis (Dinamic variable) Suatu perubah yang akan dialokasikan hanya pada saat diperlukan, yaitu setelah program dieksekusi.

Pertemuan 3. Perubah Dinamis (Dinamic variable) Suatu perubah yang akan dialokasikan hanya pada saat diperlukan, yaitu setelah program dieksekusi. Pertemuan 3 KONSEP POINTER DAN LINKED LIST Untuk mengolah data yang banyaknya tidak bisa ditentukan sebelumnya, maka disediakan satu fasilitas yang memungkinan untuk menggunakan suatu perubah yang disebut

Lebih terperinci

& PEMROGRAMAN. Alex De Kweldju, S.Kom D3 Teknik Komputer Fakultas Teknik Universitas Negeri Papua

& PEMROGRAMAN. Alex De Kweldju, S.Kom D3 Teknik Komputer Fakultas Teknik Universitas Negeri Papua ALGORITMA & PEMROGRAMAN II Pascal #2 Alex De Kweldju, S.Kom D3 Teknik Komputer Fakultas Teknik Universitas Negeri Papua PASCAL Bahasa Pemrograman Terstruktur Diciptakan Nikalus Wirth Kata PASCAL untukpenghormatan

Lebih terperinci

Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom

Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom Pengantar Bahasa Pemrograman Pascal Page 1 / 11 Pengenalan Pascal Pascal merupakan salah satu bahasa pemrograman tingkat tinggi. Pemrograman

Lebih terperinci

POINTER STACK DAN QUEUE. Institut Teknologi Sumatera

POINTER STACK DAN QUEUE. Institut Teknologi Sumatera POINTER STACK DAN QUEUE ALGORITMA DAN STRUKTUR DATA Institut Teknologi Sumatera PRE TEST Apakah yang disebut dengan array? Bagaimana cara deklarasi dan pengacuan dari sebuah array? Apa kekurangan array?

Lebih terperinci

MODUL PRAKTIKUM STRUKTUR DATA Modul ke-1, Pertemuan ke-1 Nama file : P01-XXX (XXX adalah 3 digit terakhir NIM) Deskripsi: Senarai, Traversal

MODUL PRAKTIKUM STRUKTUR DATA Modul ke-1, Pertemuan ke-1 Nama file : P01-XXX (XXX adalah 3 digit terakhir NIM) Deskripsi: Senarai, Traversal MODUL PRAKTIKUM STRUKTUR DATA Modul ke-1, Pertemuan ke-1 Nama file : P01-XXX (XXX adalah 3 digit terakhir NIM) Senarai, Traversal Deklarasi global: type TInfo = integer type Address = pointer to Elemen

Lebih terperinci

Algoritma Dan Struktur Data II

Algoritma Dan Struktur Data II Algoritma Dan Struktur Data II Array dan Matriks Apa itu Struktur Data? PROGRAM ALGORITMA STRUKTUR DATA Algoritma.. deskripsi langkah-langkah penyelesaian masalah yang tersusun secara logis 1. ditulis

Lebih terperinci

ARRAY. contoh : A[1] := 10; var A : array[1..10] of integer; A[nomer_indeks]

ARRAY. contoh : A[1] := 10; var A : array[1..10] of integer; A[nomer_indeks] ARRAY Array adalah tipe data kompleks yang elemen-elemennya mempunyai tipe data yang sama. Jumlah elemen array bersifat tetap dan tidak bisa ditambah atau dikurangi setelah pendeklarasiannya. Tiap elemen

Lebih terperinci

MODUL PRAKTIKUM STRUKTUR DATA

MODUL PRAKTIKUM STRUKTUR DATA MODUL PRAKTIKUM STRUKTUR DATA Bahasa Pemrograman : C++ Software : Turbo C++ 4.5 Laboran : M. Fachrurrozi Novi Yusliani LABORATORIUM DASAR KOMPUTER PROGRAM ILMU KOMPUTER UNIVERSITAS SRIWIJAYA 2006 DAFTAR

Lebih terperinci

STACK atau TUMPUKAN. Pertemuan 5 STACK (TUMPUKAN)

STACK atau TUMPUKAN. Pertemuan 5 STACK (TUMPUKAN) Pertemuan 5 STACK atau TUMPUKAN STACK (TUMPUKAN) Merupakan bentuk khusus dari Linier List yang pemasukan dan penghapusan elemennya hanya dapat dilakukan pada satu posisi, yaitu posisi akhir dari List (Top)

Lebih terperinci

Memulai Pemrograman Pascal dengan Delphi Console 1. Buka aplikasi delphi 2. Pilih File New Other Console Application

Memulai Pemrograman Pascal dengan Delphi Console 1. Buka aplikasi delphi 2. Pilih File New Other Console Application #2 Aplikasi Console Aplikasi console merupakan aplikasi berbasis teks yang berjalan pada command prompt. Bahasa yang digunakan pada aplikasi delphi adalah bahasa pemrograman pascal. Struktur Penulisan

Lebih terperinci

QUEUE (ANTREAN) Prinsip Antrean : FIFO (First In First Out) FCFS (First Come First Serve) Yang Tiba lebih awal Maka akan dilayani Terlebih Dahulu

QUEUE (ANTREAN) Prinsip Antrean : FIFO (First In First Out) FCFS (First Come First Serve) Yang Tiba lebih awal Maka akan dilayani Terlebih Dahulu QUEUE (ANTREAN) Struktur Data Antrean (Queue) adalah suatu bentuk khusus dari List Linier dengan operasi pemasukan data hanya diperbolehkan pada salah satu sisi, yang disebut sisi Belakang / ekor (Tail)

Lebih terperinci

Universitas gunadarma. pascal. Bab 4- bab 10. Hana Pertiwi S.T

Universitas gunadarma. pascal. Bab 4- bab 10. Hana Pertiwi S.T Universitas gunadarma pascal Bab 4- bab 10 Hana Pertiwi S.T 14 PASCAL Struktur Perulangan WHILE-DO Struktur Perulangan REPEAT-UNTIL REPEAT UNTIL 1. Struktur Perulangan FOR 2. Penggunaan gabungan struktur

Lebih terperinci

POINTER PADA PASCAL. <nama_var> : ^<tipe_data>; <nama_var> : pointer;

POINTER PADA PASCAL. <nama_var> : ^<tipe_data>; <nama_var> : pointer; POINTER PADA PASCAL PEMBAHASAN : 1. Mengenal tipe data Pointer. 2. Manipulasi memori lewat Pointer bertipe dan tak bertipe. 3. Linked List; meliputi operasi inisialisasi, menambah node baru, menyisipkan

Lebih terperinci

Algoritma Dan Struktur Data II

Algoritma Dan Struktur Data II Algoritma Dan Struktur Data II List, Stack Putuputraastawa@gmail.com putuastawa.wordpress.com Beberapa Jenis Struktur Data 1. Array 1. Linear List 2. Stack 3. Queue 1. Apa? 2. Bagaimana cara implementasinya?

Lebih terperinci

QUEUE ( ANTREAN ) 4.1. PENGERTIAN QUEUE (ANTREAN)

QUEUE ( ANTREAN ) 4.1. PENGERTIAN QUEUE (ANTREAN) QUEUE ( ANTREAN ) 4.1. PENGERTIAN QUEUE (ANTREAN) Setelah pada Bab 3 yang lalu kita bahas tentang salah satu jenis daftar (list) linear, yakni stack, kali ini kita bahas jenis lain dari daftar linear,

Lebih terperinci

Praktikum Stuktur Data [MODUL]

Praktikum Stuktur Data [MODUL] Praktikum Stuktur Data [MODUL] 2011 1/29 KONTRAK PRAKTIKUM Nama Mata Kuliah : Praktikum Struktur Data Kode Mata Praktikum : TKC 119 SKS : 1 Mata Kuliah Prasyarat : Struktur Data Dosen Penanggung Jawab

Lebih terperinci

MODUL 6 SINGLE & DOUBLE LINKED LIST

MODUL 6 SINGLE & DOUBLE LINKED LIST MODUL 6 SINGLE & DOUBLE LINKED LIST 1. Tujuan Instruksional Umum a. Mahasiswa dapat melakukan perancangan aplikasi menggunakan struktur Linked List (Senarai Berkait) b. Mahasiswa mampu melakukan analisis

Lebih terperinci

MATERI 2 JENIS-JENIS DATA SEDERHANA & INPUT/OUTPUT DATA

MATERI 2 JENIS-JENIS DATA SEDERHANA & INPUT/OUTPUT DATA MATERI 2 JENIS-JENIS DATA SEDERHANA & INPUT/OUTPUT DATA Kata-Kata Cadangan Kata-kata cadangan (reserved words) adalah kata-kata yang sudah didefinisikan oleh Pascal yang mempunyai maksud tertentu. Kata-kata

Lebih terperinci

PENJUMLAHAN DAN PENGURANGAN MATRIKS

PENJUMLAHAN DAN PENGURANGAN MATRIKS PENJUMLAHAN DAN PENGURANGAN MATRIKS Obyektif : 1. Mahasiswa mengetahui tentang Matriks 2. Mahasiswa mengerti tentang penjumlahan matriks 3. Mahasiswa mengerti tentang pengurangan matriks Definisi Matriks

Lebih terperinci

List akan disimpan dalam bagian memori komputer yang dinamakan HEAP

List akan disimpan dalam bagian memori komputer yang dinamakan HEAP pendahuluan Dikembangkan tahun 1955-1956 oleh Allen Newell, Cliff Shaw dan Herbert Simon di RAND Corporation sebagai struktur data utama untuk bahasa Information Processing Language (IPL). IPL dibuat untuk

Lebih terperinci

KONSEP POINTER DAN LINKED LIST

KONSEP POINTER DAN LINKED LIST Pertemuan 3 KONSEP POINTER DAN LINKED LIST Untuk mengolah data yang banyaknya tidak bisa ditentukan sebelumnya, maka disediakan satu fasilitas yang memungkinan untuk menggunakan suatu perubah yang disebut

Lebih terperinci

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA MODUL KE-2 STACK DAN QUEUE

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA MODUL KE-2 STACK DAN QUEUE PRAKTIKUM ALGORITMA DAN STRUKTUR DATA MODUL KE-2 STACK DAN QUEUE LABORATORIUM PEMROGRAMAN PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS MUHAMMADIYAH MALANG 2015 I. TUJUAN II. Mahasiswa mampu

Lebih terperinci

MATERI 4 PENYELEKSIAN KONDISI

MATERI 4 PENYELEKSIAN KONDISI MATERI 4 PENYELEKSIAN KONDISI Terkadang suatu program akan membutuhkan suatu penyeleksian kondisi Dengan menyeleksi suatu kondisi, program dapat menentukan tindakan apa yang harus dikerjakan, tergantung

Lebih terperinci

List Linear (Linked List) Farah Zakiyah Rahmanti 2014

List Linear (Linked List) Farah Zakiyah Rahmanti 2014 List Linear (Linked List) Farah Zakiyah Rahmanti 2014 Overview Single Linked List Double Linked List Circular List SINGLE LINKED LIST Deskripsi Single linked list atau biasa disebut dengan linked list

Lebih terperinci

LINKED LIST. Altien Jonathan Rindengan, S.Si, M.Kom

LINKED LIST. Altien Jonathan Rindengan, S.Si, M.Kom LINKED LIST Altien Jonathan Rindengan, S.Si, M.Kom Pendahuluan Dalam suatu linear list kita dapat melakukan operasi penyisipan atau penghapusan atas elemen-elemennya pada sembarang posisi. Misalkan ada

Lebih terperinci

Struktur Data. Pertemuan 2

Struktur Data. Pertemuan 2 Pertemuan 2 Tujuan Pembelajaran Mahasiswa mampu menjelaskan konsep struktur data (Pengertian Struktur data, Konsep struktur data, Tipe data sederhana, Deklarasi data dalam bahasa pemrograman. 1. Pengertian

Lebih terperinci

QUEUE (ANTREAN) Operasi Antrean : FIFO (First In First Out) Elemen yang pertama masuk merupakan elemen yang pertama keluar.

QUEUE (ANTREAN) Operasi Antrean : FIFO (First In First Out) Elemen yang pertama masuk merupakan elemen yang pertama keluar. QUEUE (ANTREAN) ANTREAN (Queue) Suatu bentuk khusus dari linear list, dengan operasi penyisipan (insertion) hanya diperbolehkan pada salah satu sisi, yang disebut REAR, dan operasi penghapusan (deletion)

Lebih terperinci

Double Linked List. Brigida Arie Minartiningtyas, M.Kom

Double Linked List. Brigida Arie Minartiningtyas, M.Kom Double Linked List rigida rie Minartiningtyas, M.Kom Review Linked List Linked list yang kita pelajari sebelumnya hanya mempunyai sebuah pointer pada setiap simpulnya. Hal ini merupakan kelemahan bahwa

Lebih terperinci

Data structure :Metode LINK LIST. Kusnawi, S.Kom, M.Eng STMIK AMIKOM Yogyakarta

Data structure :Metode LINK LIST. Kusnawi, S.Kom, M.Eng STMIK AMIKOM Yogyakarta Data structure :Metode LINK LIST Kusnawi, S.Kom, M.Eng STMIK AMIKOM Yogyakarta Pengelolaan Memori : Konsep Dasar Secara Statis, sebagai Contoh penggunaan tipe array menempati lokasi memory yang tetap(

Lebih terperinci

PRAKTIKUM ALGORITMA & PEMROGRAMAN III MODUL_06 Stack (Tumpukan)

PRAKTIKUM ALGORITMA & PEMROGRAMAN III MODUL_06 Stack (Tumpukan) PRAKTIKUM ALGORITMA & PEMROGRAMAN III MODUL_06 Stack (Tumpukan) inslls_05@yahoo.co.id A. Pembahasan Stack Algoritma stack merupakan struktur data yang mengimplementasi dari aturan LIFO (Last In First Out).

Lebih terperinci

KONSEP POINTER DAN LINKED LIST

KONSEP POINTER DAN LINKED LIST Pertemuan 4 KONSEP POINTER DAN LINKED LIST Untuk mengolah data yang banyaknya tidak bisa ditentukan sebelumnya, maka disediakan satu fasilitas yang memungkinan untuk menggunakan suatu perubah yang disebut

Lebih terperinci

KONSEP POINTER DAN LINKED LIST

KONSEP POINTER DAN LINKED LIST Pertemuan 4 KONSEP POINTER DAN LINKED LIST Untuk mengolah data yang banyaknya tidak bisa ditentukan sebelumnya, maka disediakan satu fasilitas yang memungkinan untuk menggunakan suatu perubah yang disebut

Lebih terperinci

1. Inggriani Liem Catatan Kuliah Algoritma & Pemrograman, Jurusan Teknik Informatika ITB

1. Inggriani Liem Catatan Kuliah Algoritma & Pemrograman, Jurusan Teknik Informatika ITB Pertemuan Ke 5 : List Linier (Linked List) Referensi: 1. Inggriani Liem. 2003. Catatan Kuliah & Pemrograman, Jurusan Teknik Informatika ITB 2. Rinaldi Munir. 2003. dan Pemrograman II. Bandung : Penerbit

Lebih terperinci

KONSEP POINTER DAN LINKED LIST

KONSEP POINTER DAN LINKED LIST Pertemuan 4 KONSEP POINTER DAN LINKED LIST Untuk mengolah data yang banyaknya tidak bisa ditentukan sebelumnya, maka disediakan satu fasilitas yang memungkinan untuk menggunakan suatu perubah yang disebut

Lebih terperinci

ALGORITMA DAN STRUKTUR DATA

ALGORITMA DAN STRUKTUR DATA Modul ke: 03 Fitrianingsih, Fakultas FASILKOM ALGORITMA DAN STRUKTUR DATA OLEH : Skom., MMSI Program Studi Sistem Informasi Bagian Isi POINTER POINTER DAN ADDRESS POINTER DAN FUNCTION LINKED LIST ALGORITMA

Lebih terperinci

Algoritma dan Struktur Data. Queue

Algoritma dan Struktur Data. Queue Algoritma dan Struktur Data Queue Teknik Informatika Universitas Muhammadiyah Malang 2016 Tujuan Instruksional Mahasiswa mampu : Memahami struktur data queue Memahami cara pengoperasian struktur data queue

Lebih terperinci

Chapter 3.2 : Tipe, Nama dan Nilai

Chapter 3.2 : Tipe, Nama dan Nilai Mata Kuliah : Logika dan Algoritma / 4 SKS Chapter 3.2 : Tipe, Nama dan Nilai Dosen Pengasuh : Fatoni, M.M.,M.Kom. Mail : fatoni@binadarma.ac.id/toniubd@yahoo.com Materi Yang Dipelajari Tipe Data Dasar

Lebih terperinci

Algoritma Pemrograman & Struktur Data

Algoritma Pemrograman & Struktur Data MODUL PERKULIAHAN Algoritma Pemrograman & Struktur Data Stack Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh Fakultas Ilmu Informatika Komputer 04 87042 Abstract Penjelasan mengenai stack dan penggunaannya

Lebih terperinci