NAMA : SITI HAJAR NIM : 1405020040 UNIT : B NO.HP : 0852 – 2000 – 3786.

Slides:



Advertisements
Presentasi serupa
Antrian (Queue) Desain dan Analisis Algoritma
Advertisements

STRUKTUR DATA Struktur Data - Gerlan A. Manu, ST.,MKom 1.
Queue (Antrian).
Dasar Komputer & Pemrog 2 A minggu 4
QUEUE II. IMPLEMENTASI QUEUE
MATERI 11. TAS Tanggal 30 Nopember 2011 (RABU). Jam 7-9 TUTUP BUKU Materi : 1-11.
STRUKTUR DATA PERTEMUAN 6
QUEUE.
Pertemuan 5 STACK atau TUMPUKAN IMAM SIBRO MALISI NIM :
Queue.
Pertemuan (6) QUEUE (ANTREAN) IMAM SIBRO MALISI NIM :
Algoritma dan Struktur Data
STACK (Tumpukan).
STACK.
Struktur Data (Data Structure) – IS 2313
Pointer dalam Stack.
STRUKTUR DATA (4) Array Stack(Tumpukkan) dan Queue (Antrian)
Queue.
Queue.
Procedure & Function Sub Program.
Pemprograman Terstruktur 1
Circular Queue.
STRUKTUR DATA (4) array stack dan queue
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
ANTRIAN ( QUEUE ) Fajrizal.
Apakah Stack itu ?. Apakah Stack itu ? Pengertian STACK Secara sederhana diartikan dengan : sebagai tumpukan dari benda sekumpulan data yang seolah-olah.
STRUKTUR DATA QUEUE.
STRUKTUR DATA Queue atau Antrian.
Pertemuan : Algoritma & Struktur Data
Stack.
NAMA : siti hajar NIM : UNIT : b NO.hp : 0852 –
QUEUE hms_sept.
Program Studi Teknik Informatika
Stack.
STRUKTUR DATA QUIZ.
Program Studi Teknik Informatika
Defri Kurniawan QUEUE Defri Kurniawan
Defri Kurniawan QUEUE DENGAN LIST Defri Kurniawan
Antrian (Queue).
Struktur Organisasi Data 2
STRUKTUR DATA QUEUE (Antrian)
STACK (Tumpukan).
Algoritma Pemrograman
QUEUE (ANTRIAN ) Disusun Oleh : Kelompok 2 Siti Hajar ( )
Program Studi Teknik Informatika
Program Studi Teknik Informatika
STRUKTUR DATA Chapt 5 : QUEUE Oleh : Yuli Praptomo PHS, S.Kom.
Algoritma dan Struktur Data
Struktur Data Khoiriya Latifa, M.Kom.
TEAM 1 Cut Hayatul Wardani ( ) Saputri Phonna ( ) Azhary (140502)
Program Studi Teknik Informatika
Antrian Dengan Array Ika Menarianti.
Nama : Siti Hajar Nim : Unit : B/III No.Hp : 0852 –
Tumpukan Dengan Array Ika Menarianti.
Program Studi Teknik Informatika
Menambah dan Menghapus Data Via Array
STACK (Tumpukan).
STACK / TUMPUKAN Struktur Data.
STRUKTUR DATA TUMPukAN (STACK).
Queue(Antrian).
QUEUE (Antrian) #Kulia 6 Algoritma dan Struktur Data.
Algoritma dan Struktur Data
Algoritma dan Struktur Data
STRUKTUR DATA PERTEMUAN 7
3.
Algoritma dan Struktur Data
STRUKTUR DATA Teknik Informatika S1
Queue Algoritma dan Struktur Data.
QUEUE (Antrian).
Defri Kurniawan QUEUE DENGAN LIST Defri Kurniawan
Transcript presentasi:

NAMA : SITI HAJAR NIM : 1405020040 UNIT : B NO.HP : 0852 – 2000 – 3786

SOAL Berikan contoh ilustrasi dari kasus antrian berikut : Diketahui suatu antrian / queue dengan max = 6 Lakukan Enqueue 4 elemen ke dalam antrian, dimanakah posisi Head dan Tail . Kemudian lakukan Dequeue 2 elemen dari antrian, maka dimanakah posisi Head dan Tail ? Dari keadaan diatas, bagaimanakah kondisi IsFull dan IsEmptynya ?

ILUSTRASI KONDISI KASUS PERTAMA Deklarasi Awal Queue Variabel yang akan digunakan adalah data (array sebagai tempat queue), head, tail.  Sama seperti Stack, Nilai dari head dan tail dimulai dari -1 yang menandakan queue kosong. sebagai contohnya kita akan membuat queue dengan data maksimal sebanyak 6 data. MAX = 6 HEAD = -1 TAIL = -1

ILUSTRASI KONDISI KASUS KEDUA TENTANG ENQUEUE Digunakan untuk menambahkan elemen ke dalam Antrian, penambahan elemen selalu ditambahkan di elemen paling belakang. Penambahan elemen selalu menggerakan variabel Tail dengan cara increment counter Tail terlebih dahulu. Contoh : Lakukan Enqueue 4 elemen ke dalam antrian, dimanakah posisi Head dan Tail .

GAMBAR ILUSTRASI ENQUEUE MAX = 6 1 2 3 4 HEAD = 0 TAIL = 3

ILUSTRASI KONDISI KASUS KETIGA TENTANG DEQUEUE Digunakan untuk menghapus elemen terdepan/pertama (head) dari Antrian. Dengan cara menggeser semua elemen antrian kedepan dan mengurangi Tail dengan 1. Contoh : Berdasarkan ilustrasi pertama, lakukan Dequeue 2 elemen dari antrian, maka dimanakah posisi Head dan Tail ?

GAMBAR ILUSTRASI DEQUEUE Kondisi ilustrasi sebelum di DEQUEUE 1 2 3 4 HEAD = 0 TAIL = 3

GAMBAR ILUSTRASI DEQUEUE Ilustrasi sesudah di DEQUEUE sebelum terjadi pergeseran 3 4 HEAD = 0 TAIL = 3

GAMBAR ILUSTRASI DEQUEUE Kondisi ilustrasi DEQUEUE setelah terjadi pergeseran posisi yang maju 1 posisi ke depan HEAD = 0 3 4 POSISI HEAD TAIL = 1 POSISI TAIL

ILUSTRASI KONDISI KASUS KEEMPAT TENTANG IsEMPTY Untuk memeriksa apakah Antrian sudah penuh atau belum. Dengan cara memeriksa nilai Tail, jika Tail = -1 maka empty. Kita tidak memeriksa Head, karena Head adalah tanda untuk kepala antrian (elemen pertama dalam antrian) yang tidak akan berubah-ubah. Pergerakan pada Antrian terjadi dengan penambahan elemen Antrian kebelakang, yaitu menggunakan nilai Tail.

GAMBAR ILUSTRASI IsEMPTY 3 4 Kondisi IsEmpty Masih Ada Yang Kosong karena nilai TAIL tidak bernilai -1

ILUSTRASI KONDISI KASUS TENTANG IsFull Untuk mengecek apakah Antrian sudah penuh atau belum. Dengan cara mengecek nilai Tail, jika Tail >= MAX-1 (karena MAX-1 adalah batas elemen array pada C) berarti sudah penuh.

GAMBAR ILUSTRASI IsFull 3 4 Kondisi IsFull = Belum Penuh Masih ada tempat yang belum terisi karena setelah dilakukan pengecekan, nilai TAIL belum mencapai max >= -1

CONTOH APABILA DI BUAT DALAM BENTUK PROGRAM Program antrian_array_statis; Uses wincrt; Const Max_queue = 6; Type Queue = array[1..Max_queue] of char; Var Antrian : queue; I : integer; Depan : integer; Belakang : integer; Pilih : char; Elemen : char;

{*************************************** * Procedure menampilkan antrian data. * ***************************************} Procedure tampilkan( x :integer); Var I : integer; Begin For i := 1 to x do Gotoxy(18 + 4 * i, 19); Write(antrian[i]); End; END; {*procedure TAMPILAKAN*}

Procedure clear; Var I : integer; Begin For i := 1 to 10 do Gotoxy(62 - 4 * i, 19);writeln(' '); end; END; {*procedure HUPUS*} {**************************************************************** * Fungsi untuk menge-cek keadaan antrian ( penuh atau kosong ) *****************************************************************}

Function kosong(belakang:integer):boolean; Begin Kosong := false; If (belakang = 0) then Kosong := true; End; Function penuh(belakang:integer):boolean; Penuh := false; If (belakang = max_queue) then Penuh := true;

{******************************************************************* * Procedure untuk menambah elemen baru selama antrian belum penuh.* * Jika antrian sudah penuh. Program akan menampilkan suatu pesan. * *******************************************************************} PROCEDURE TAMBAH_ELEMEN (VAR DEPAN, BELAKANG: INTEGER; ELEMEN: CHAR); BEGIN IF ( PENUH(BELAKANG)) THEN GOTOXY(32,16); WRITE('ANTRIAN SUDAH PENUH'); END

Else Begin Gotoxy(49,15);writeln(' '); gotoxy(31,15);write('isikan elemennya : '); readln(elemen); if (kosong(belakang)) then Depan := 1; Belakang := 1; Antrian[belakang] := elemen; End

Else Begin Belakang := belakang + 1; Antrian[belakang] := elemen; End; Tampilkan(belakang); Gotoxy(31,15);write(' '); end;

{******************************************************************* * Procedure untuk menghapus elemen dari antrian yang belum kosong.* * Jika antrian kosong, program akan menampilkan suatu pesan. * *******************************************************************} PROCEDURE HAPUS (VAR DEPAN, BELAKANG : INTEGER); VAR I : INTEGER; BEGIN IF (NOT KOSONG(BELAKANG)) THEN ELEMEN := ANTRIAN[DEPAN]; FOR I := DEPAN TO (BELAKANG - 1) DO

Begin Antrian[i] := antrian[i+1]; End; Belakang := belakang - 1; Clear; End Else Gotoxy(33,16); writeln('antrian kosong...!'); Tampilkan(belakang); END; {*procedure hapus*} {******************************************************************* * procedure pembukaan program, nama : TARKIMAN NIM : 10110738. * *******************************************************************}

Procedure tarkiman; Var S,t : string; I,x : integer; Begin S := 'tugas struktur data - program antrian ( queue )'; for i := 1 to length(s) do For x := 1 to 5 do Gotoxy(17+i,x+1);write(copy(s,i,1)); Gotoxy(17+i,x);write(' '); end; End; T := 'tarkiman ( 10110738 )'; for i := 1 to length(t) do

Gotoxy(30,10);write(copy(t,1,i)); End; {******************************************************************* * Procedure menu program, bingkai tampilan pilihan menu. * * Dan ilustrasi kotak-kotak antrian. * *******************************************************************} Procedure menuprogram; Begin Gotoxy(12,2); writeln('8*******************************************************8'); Gotoxy(16,3); writeln('menu program antrian data ( queue )BY SITI HAJAR'); gotoxy(12,4); writeln('=========================================================');

Gotoxy(12,3);writeln('|');gotoxy(68,3);writeln('|');

Gotoxy(24,12);writeln('ilustrasi tampilan antrian ( queue )'); gotoxy(12,13);writeln('|');gotoxy(68,13);writeln('|'); Gotoxy(13,13);writeln('======================================================='); Gotoxy(12,14);writeln('|');gotoxy(68,14);writeln('|'); Gotoxy(12,15);writeln('|');gotoxy(68,15);writeln('|'); Gotoxy(12,16);writeln('|');gotoxy(68,16);writeln('|'); Gotoxy(12,17);writeln('|');gotoxy(68,17);writeln('|'); Gotoxy(12,18);writeln('|');gotoxy(68,18);writeln('|'); Gotoxy(12,19);writeln('|');gotoxy(68,19);writeln('|'); Gotoxy(12,20);writeln('|');gotoxy(68,20);writeln('|'); Gotoxy(12,21);writeln('|');gotoxy(68,21);writeln('|'); Gotoxy(12,22);writeln('|');gotoxy(68,22);writeln('|');

Gotoxy(12,22);writeln('8*******************************************************8'); Gotoxy(20,21);writeln('f i f o ATAU f c f s'); Gotoxy(20,18);writeln('*************************'); Gotoxy(20,19);writeln('|');gotoxy(24,19);writeln('|');gotoxy(28,19);writeln('|'); Gotoxy(32,19);writeln('|');gotoxy(36,19);writeln('|');gotoxy(40,19);writeln('|'); Gotoxy(44,19);writeln('|'); Gotoxy(20,20);writeln('*************************'); Gotoxy(16,18);writeln('out');gotoxy(47,18);writeln('in'); Gotoxy(16,19);writeln('<==');gotoxy(47,19);writeln('<==');

Gotoxy(25,6);writeln('1. Menambah elemen baru (enqueue)'); Gotoxy(25,7);writeln('2. Menghapus elemen (dequeue)'); Gotoxy(25,9);writeln('0. Exit'); Gotoxy(7,24);writeln('silahkan tekan tombol 1 atau 2 pada keyboard anda dan 0 untuk exit'); Gotoxy(29,24);writeln('1');gotoxy(36,24);writeln('2');gotoxy(61,24);writeln('0'); End; {********************************************************************* * Procedure pilihan menu, sesuai tombol yang di tekan pada keyboard * * 1. Menambahkan elemen antrian ( proses enqueue ) *

* 2. Menghapus elemen antrian ( proses dequeue ) * * 0. Exit ( mengakhiri program ) * *********************************************************************} PROCEDURE MENU( PILIH:CHAR); Begin Case pilih of '1' : begin Gotoxy(30,16);writeln(' '); gotoxy(25,6);writeln('1. Menambah elemen baru (enqueue)'); Tambah_elemen(depan,belakang,elemen); End;

'2' : begin Gotoxy(30,16);writeln(' '); gotoxy(25,7);writeln('2. Menghapus elemen (dequeue)'); Hapus(depan,belakang); End; '0' : begin Gotoxy(25,9);writeln('0. Exit'); Clrscr; {******************************************************************* * Program utama...................................................* *******************************************************************}

Begin Clrscr; Tarkiman; depan := 0; Belakang := 0; Repeat Menuprogram; Pilih:=readkey; Menu(pilih); Until pilih='0' End.

TAMPILAN OUTPUT PROGRAM KONDISI KASUS PERTAMA HEAD = -1 POSISI HEAD MAX = 6 TAIL = -1 POSISI TAIL

TAMPILAN OUTPUT PROGRAM KONDISI KASUS KEDUA ( ENQUEUE ) HEAD = 0 POSISI HEAD TAIL = 3 POSISI TAIL

TAMPILAN OUTPUT PROGRAM KONDISI KASUS KETIGA ( DEQUEUE ) HEAD = 0 POSISI HEAD TAIL = 1 POSISI TAIL

TAMPILAN OUTPUT PROGRAM KONDISI KASUS UNTUK ISFULL & ISEMPTY Kondisi IsFull belum penuh terisi Kondisi IsEmpty masih ada yang kosong belum terisi

THANK YOU SEE YOU NEXT TIME ….