STACK DAN QUEUE (Muhammad Fachrie, STMIK Amikom Yogyakarta)

dokumen-dokumen yang mirip
Algoritma dan Struktur Data. Ramos Somya

STACK atau TUMPUKAN. Pertemuan 5 STACK (TUMPUKAN)

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

STRUKTUR DATA POKOK BAHASAN - 8 QUEUE ( ANTRIAN)

Seharusnya. if (antrian.tail==max-1) return 0;

ALGORITMA DAN STRUKTUR DATA ARRAY STACK DAN QUEUE

Materi 8 : STACK (TUMPUKAN) Dosen:

Tumpukan (Stack) Stack bersifat LIFO (Last In First Out) LIFO Data yang terakhir masuk ke dalam stack menjadi data yang pertama keluar dari stack

# NINE Queue dengan Array

Implementasi Queue menggunakan Array. Imam Fahrur Rozi

Algoritma Dan Struktur Data II

STRUKTUR DATA POKOK BAHASAN - 7 STACK ( TUMPUKAN )

QUEUE (ANTREAN) Pertemuan 6 PENGERTIAN QUEUE (ANTREAN)

Struktur Data Array. Rijal Fadilah S.Si

Algoritma Dan Struktur Data II. Queue

LAPORAN PRAKTIKUM RESMI QUEUE

STACK dan QUEUE MODUL PRAKTIKUM STRUKTUR DATA 09 UNIVERSITAS KRISTEN DUTA WACANA. Daftar Isi: Stack dan Queue. Latihan soal. Guided.

LAPORAN PRAKTIKUM IV. Oleh:

PRAKTIKUM STRUKTUR DATA QUEUE. SULIDAR FITRI, M.Sc

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

Algoritma Pemrograman & Struktur Data

STACK DAN QUEUE. Pengertian Stack Dan Queue. stack & queue. Last saved by KENKEINA Created by KENKEINA

POINTER STACK DAN QUEUE. Institut Teknologi Sumatera

E STRUKTUR DATA & E PRAKTIK STRUKTUR DATA. Stack using Array. Alfa Faridh Suni, S.T., M.T. PTIK

Antrian (Queue) Susunan koleksi data dimana proses penambahan data (add) dilakukan dari belakang dan penghapusan data (delete) dilakukan dari depan.

S TA C K Sunu Wibirama

STACK (Tumpukan) Tumpukan Koin. Tumpukan Kotak

MODUL IV STACK A. TUJUAN

Modul Praktikum Algoritma dan Struktur Data

PRAKTIKUM ALGORITMA & PEMROGRAMAN III MODUL_06 Stack (Tumpukan)

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

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

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

Pertemuan 7. REVIEW dan QUIS

MODUL PEMROGRAMAN 2. Queue (Antrian)

IF PEMROGRAMAN LANJUT TUGAS 1. Oleh : Andri Heryandi, M.T.

ARNA FARIZA YULIANA SETIOWATI

Struktur Data. Stack STMIK AMIKOM YOGYAKARTA. Bayu Setiaji, S.Kom

STRUKTUR DATA Pertemuan 1 s.d 8

MODUL 4. COLLECTIONS ARRAYS, QUEUE, dan STACK

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

Praktikum 4. Tumpukan (Stack)

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

A. TUJUAN PEMBELAJARAN

BAB III. Stack. ( Tumpukan )

Tumpukan(Stack)!! " # $ %&' $ %& ( ) ( * +, / ( (

Algoritma dan Struktur Data STACK

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA STACK

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

Pencarian (Searching)

MODUL IV Analisis Kasus/Pemilihan

BAB VIII QUEUE (ANTRIAN)

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

BAB IV Antrian(Queue)

Struct Lanjutan: Studi Kasus

TIF 4201 Algoritma Dan Struktur Data

LAPORAN PRAKTIKUM IV. Oleh :

A. TUJUAN PEMBELAJARAN

QUEUE Antrian 1. DEFINISI

IX. Implementasi ADT : Stacks & Queues. Operasi dasar Contoh kegunaan Implementasi Array-based dan linked list-based

A. TUJUAN PEMBELAJARAN

Algoritma dan Struktur Data. Ramos Somya

# EIGHT ADT (Abstract Data Type) dan Stack Array

Algoritma Dan Struktur Data II

Array dan Matriks. IF2121 / Algoritma dan Struktur Data Sem / /7/2017 IF2121/sem /2018 1

Implementasi Struktur Data Stack (Tumpukan) dalam Tower of Hanoi Game

Stack. Gambar 1.1 Stack

SATUAN ACARA PENGAJARAN

04. Single Linked List

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

Materi 9 : QUEUE (ANTREAN) Dosen:

KUM 5 IMPLEMENTASI QUEUE

SILABUS STRUKTUR DATA ( TIF-104 ) PROGRAM STUDI TEKNIK INFORMATIKA UNIVERSITAS PEMBANGUNAN JAYA TANGERANG SELATAN

Jika Anda ingin bisa/sukses dalam kuliah SDA ini, rajinlah mengimplementasikan ADT dan mengerjakan soal-soal yang diberikan.

STACK/TUMPUKAN. R. Denny Ari Wibowo, S.Kom STMIK BINA NUSANTARA JAYA LUBUKLINGGAU

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan

Algoritma dan Struktur Data. Queue

PENGENALAN BAHASA C. A. Struktur Kode Program dalam Bahasa C Secara garis besar, suatu kode program dalam bahasa C memiliki struktur umum seperti ini:

Integer (Bilangan Bulat) Yang dimaksud bilangan bulat adalah, -1, -2, -3, 0, 1, 2, 3, 4 dan lain lain yang bukan merupakan bilangan pecahan.

OPERASI PERNYATAAN KONDISI

Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C

BAB IV PENGULANGAN PROSES

Praktikum 9. Pengurutan (Sorting) Quick Sort, Merge Sort

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA QUEUE

BAB III QUEUE (ANTRIAN)

Praktikum 5. Antrian (Queue)

TUGAS PENDAHULUAN MODUL 12 PENGENALAN DAN IMPLEMENTASI STRUKTUR DATA STACK

BAB II STACK (TUMPUKAN)

BAB 3 STACK (TUMPUKAN)

S T A C K ( T U M P U K A N )

MODUL PRAKTIKUM TI014 STRUKTUR DATA Season 1

Kode : IF2121 NIM :... Matakuliah : Algoritma dan Struktur Data Nama :... Hari, Tanggal : Senin, 13 November 2017 Waktu : 150 Menit

Praktikum 7. Pengurutan (Sorting) Insertion Sort, Selection Sort POKOK BAHASAN: TUJUAN BELAJAR: DASAR TEORI:

Algoritma dan Struktur Data. Linked List

Praktikum 8. Pengurutan (Sorting) Bubble Sort, Shell Sort

Pencarian. 1. Memahami konsep pencarian 2. Mengenal beberapa algoritma pencarian 3. Menerapkan algoritma pencarian dalam program

Pernyataan FOR Pernyataan WHILE Pernyataan REPEAT. Dewi Sartika,M.Kom

Struktur Data dan Algoritma

ARNA FARIZA YULIANA SETIOWATI

Pengenalan Array. Array Satu Dimensi

Transkripsi:

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 seseorang yang menyimpan buku-bukunya, ada yang disusun dengan cara ditumpuk, ada juga yang dijejerkan di dalam lemari. Kaidah utama dalam konsep stack adalah LIFO yang merupakan singkatan dari Last In First Out, artinya adalah data yang terakhir kali dimasukkan atau disimpan, maka data tersebut adalah yang pertama kali akan diakses atau dikeluarkan. Gambar di bawah ini mengilustrasikan kerja sebuah stack. 2. Deklarasi stack dalam program Sebuah stack di dalam program komputer dideklarasikan sebagai sebuah tipe bentukan baru, di dalam Bahasa C, biasa disebut struct. Sebuah struktur data dari sebuah stack setidaknya harus mengandung dua buah variabel, yakni variabel TOP yang akan berguna sebagai penanda bagian atas tumpukan dan ARRAY DATA dari yang akan menyimpan data-data yang dimasukkan ke dalam stack tersebut. Berikut adalah syntax untuk mendeklarasikan struktur data dari sebuah stack menggunakan Bahasa C: typedef struct int TOP; int data[max+1]; Stack; dimana, nilai MAX didefinisikan sebagai jumlah tumpukan maksimum yang dapat disimpan dalam stack. Setelah strukutr data dari stack didefinisikan dengan syntax di atas, maka setelah itu dapat dibuat variabel-variabel baru yang mengacu pada tipe data Stack di atas, misalkan membuat sebuah variabel bernama tumpukan yang bertipe Stack: Stack tumpukan; 1

Dalam tulisan ini, sebuah stack didefinisikan dengan array berukuran MAX + 1, maksudnya adalah agar elemen array ke-0 tidak digunakan untuk menyimpan data, melainkan hanya sebagai tempat singgah sementara untuk variabel TOP. Sehingga, jika TOP berada pada elemen array ke-0, berarti stack tersebut dalam kondisi kosong (tidak ada data yang disimpan). Berikut adalah ilustrasi dari sebuah stack kosong dengan ukuran nilai MAX = 6: 6 5 4 3 2 1 TOP 0 3. Operasi-operasi dasar dalam stack Sebuah stack setidaknya memiliki lima buah operasi-operasi dasar, yakni: a. Prosedur createempty Prosedur ini berfungsi untuk mengosongkan stack dengan cara meletakkan TOP ke posisi ke-0. Berikut adalah deklarasi prosedur createempty dalam Bahasa C: void createempty() tumpukan.top = 0; b. Prosedur push Prosedur ini berfungsi untuk memasukkan sebuah nilai/ data ke dalam stack. Sebelum sebuah nilai/ data dimasukkan ke dalam stack, prosedur ini terlebih dahulu akan menaikkan posisi TOP satu level ke atas. Misalkan kondisi stack masih kosong (TOP = 0), lalu prosedur push akan menaikkan posisi TOP satu level ke atas, yakni ke posisi 1 (TOP = 1), baru setelah itu data dimasukkan ke dalam array pada indeks ke-1 (yakni indeks dimana TOP berada). Berikut adalah deklarasi prosedur push dalam Bahasa C: void push(int x) tumpukan.top = tumpukan.top + 1; tumpukan.data[tumpukan.top] = x; Pada deklarasi prosedur push di atas, prosedur memiliki sebuah parameter formal yang bernama x yang bertipe integer. Parameter formal x ini berguna untuk menerima 2

kiriman nilai dari program utama (void main()) yakni berupa sebuah bilangan integer yang akan dimasukkan ke dalam stack. Sebelum nilai pada variabel x dimasukkan ke dalam stack, terlebih dahulu posisi TOP dinaikkan satu level, baru setelah itu nilai pada variabel x dimasukkan ke dalam array data pada indeks dimana TOP itu berada. 7 7 TOP 6 5 4 3 2 1 0 TOP 6 5 4 3 2 1 0 TOP 6 5 4 3 2 7 1 0 c. Prosedur pop Prosedur ini berfungsi untuk mengeluarkan/ menghapus nilai terakhir (yang berada pada posisi paling atas) dari stack, dengan cara menurunkan nilai TOP satu level ke bawah. Misalkan TOP berada pada indeks ke-5, maka ketika akan mengeluarkan/ menghapus data pada posisi paling atas (pada posisi TOP), prosedur ini akan menurunkan posisi TOP ke indeks array ke-4. Berikut deklarasi prosedur pop dalam Bahasa C: void pop() tumpukan.top = tumpukan.top - 1; 3 6 6 TOP 3 5 5 9 4 TOP 9 4 5 3 5 3 2 2 2 2 7 1 7 1 0 0 3

d. Fungsi IsEmpty Fungsi ini berfungsi untuk melakukan pengecekan terhadap stack, apakah stack tersebut kosong atau tidak. Jika stack tersebut kosong (artinya, TOP berada pada posisi 0), maka fungsi akan mengembalikan nilai 1 (true), tetapi jika stack tersebut tidak kosong/ berisi (artinya, TOP tidak berada pada posisi 0), maka fungsi akan mengembalikan nilai 0 (false). Berikut deklarasi fungsi IsEmpty dalam Bahasa C: int IsEmpty() if (tumpukan.top == 0) e. Fungsi IsFull Fungsi ini berfungsi untuk melakukan pengecekan terhadap stack, apakah stack tersebut penuh atau tidak. Jika stack tersebut penuh (artinya, TOP berada pada posisi MAX), maka fungsi akan mengembalikan nilai 1 (true), tetapi jika stack tersebut tidak penuh (artinya, TOP tidak berada pada posisi MAX), maka fungsi akan mengembalikan nilai 0 (false). Berikut deklarasi fungsi IsFull dalam Bahasa C: int IsFull() if (tumpukan.top == MAX) 4. Contoh program implementasi stack Berikut adalah contoh kode program dalam Bahasa C yang mengimplementasikan konsep stack. Pada program ini, user disuguhi beberapa menu utama yang akan dipilih oleh user. Menu pertama, Cek kondisi stack akan melakukan pengecekan terhadap kondisi stack. Menu kedua, Tambah data akan melakukan pengisian sebuah nilai ke dalam stack. Menu ketiga, Keluarkan isi stack, akan menampilkan semua isi stack dan akan mengosongkan stack. Menu keempat, Kosongkan stack, akan melakukan pengosongan stack, dan menu kelima, Keluar, akan menghentikan eksekusi program (selesai menggunakan program). 4

//program implementasi stack #include <stdio.h> #include <conio.h> #define max 5 typedef struct int top; //untuk mencacah indeks dari stack int data[max+1]; stack; stack tumpukan; void createempty(); int IsEmpty(); int IsFull(); void push(int x); void pop(); void main() int lagi; int input; int pilih; createempty(); pilih = 0; while (pilih!= 5) //Menu utama system("cls"); puts("====================================="); puts(" MENU UTAMA"); puts("====================================="); puts("1. Cek kondisi Stack"); puts("2. Tambah data"); puts("3. Keluarkan isi stack"); puts("4. Kosongkan stack"); puts("5. Keluar"); printf("pilihan: "); scanf("%d",&pilih); switch(pilih) case 1: if (IsEmpty() == 1) puts("stack masih kosong"); if ((IsEmpty() == 0) && (IsFull() == 0)) puts("stack sudah terisi, tapi belum penuh"); puts("stack sudah penuh"); getch(); break; case 2: if (IsFull() == 1) puts("stack sudah penuh."); printf("masukkan data: "); scanf("%d",&input); push(input); printf("%d",tumpukan.top); printf("%d",isfull()); printf("%d",isempty()); 5 break;

case 3: while (IsEmpty() == 0) printf("%d \n",tumpukan.data[tumpukan.top]); pop(); getch(); break; case 4: createempty(); puts("stack sudah kosong. Top = 0"); getch(); break; case 5: puts( Byeee ); getch(); break; //DEKLARASI OPERASI-OPERASI DASAR STACK void createempty() tumpukan.top = 0; int IsEmpty() if (tumpukan.top == 0) int IsFull() if (tumpukan.top == max) void push(int x) tumpukan.top = tumpukan.top + 1; tumpukan.data[tumpukan.top] = x; void pop() tumpukan.top = tumpukan.top - 1; 6

B. Queue 1. Pendahuluan Kaidah utama dalam konsep queue adalah FIFO yang merupakan singkatan dari First In First Out, artinya adalah data yang pertama kali dimasukkan atau disimpan, maka data tersebut adalah yang pertama kali akan diakses atau dikeluarkan. Analoginya sama dengan antrian di sebuah loket pembelian tiket kereta, orang yang datang lebih dahulu, maka akan dilayani terlbih dahulu, dan akan selesai lebih dulu dari orang-orang yang datang setelahnya. Gambar di bawah ini mengilustrasikan kerja sebuah queue: 2. Deklarasi queue dalam program Sebuah queue di dalam program komputer dideklarasikan sebagai sebuah tipe bentukan baru, di dalam Bahasa C, biasa disebut struct. Sebuah struktur data dari sebuah queue setidaknya harus mengandung dua tiga variabel, yakni variabel yang akan berguna sebagai penanda bagian depan antrian, variabel yang akan berguna sebagai penanda bagian belakang antrian dan ARRAY DATA dari yang akan menyimpan data-data yang dimasukkan ke dalam queue tersebut. Berikut adalah syntax untuk mendeklarasikan struktur data dari sebuah queue menggunakan Bahasa C: typedef struct int, ; int data[max+1]; Queue; dimana, nilai MAX didefinisikan sebagai jumlah tumpukan maksimum yang dapat disimpan dalam queue. Setelah strukutr data dari queue didefinisikan dengan syntax di atas, maka setelah itu dapat dibuat variabel-variabel baru yang mengacu pada tipe data Queue di atas, misalkan membuat sebuah variabel bernama antrian yang bertipe Queue: Queue antrian; 7

Dalam tulisan ini, sebuah queue didefinisikan dengan array berukuran MAX + 1, maksudnya adalah agar elemen array ke-0 tidak digunakan untuk menyimpan data, melainkan hanya sebagai tempat singgah sementara untuk variabel dan. Sehingga, jika dan berada pada elemen array ke-0, berarti queue tersebut dalam kondisi kosong (tidak ada data yang disimpan). Berikut adalah ilustrasi dari sebuah queue kosong dengan ukuran nilai MAX = 6: 3. Operasi-operasi dasar dalam queue Pada dasarnya, operasi-operasi dasar pada queue mirip dengan operasi-operasi dasar pada stack. Perbedaannya hanya pada prosedur push dan pop saja. Pada queue, prosedur yang berfungsi untuk memasukkan data/ nilai ke dalam antrian adalah enqueue, sedangkan prosedur untuk mengeluarkan data/ nilai dari antrian adalah dequeue. a. Prosedur createempty Sama pada stack, prosedur ini berfungsi untuk mengosongkan queue dengan cara meletakkan dan pada indeks array ke-0. Berikut deklarasi prosedur createempty pada queue dalam Bahasa C: void createempty() antrian. = 0; antrian. = 0; b. Prosedur enqueue Prosedur ini digunakan untuk memasukkan sebuah data/ nilai ke dalam queue. Sebelum sebuah data/ nilai dimasukkan ke dalam queue, maka prosedur ini terlebih dahulu melakukan pengecekan terhadap posisi dan. Jika posisi dan masih berada pada indeks ke-0 (artinya queue masih kosong), maka prosedur ini akan menempatkan dan pada indeks ke-1 terlebih dahulu, baru setelah itu memasukkan data/ nilai ke dalam array data queue. Namun, jika posisi dan tidak berada pada posisi ke-0, maka posisi yang akan dinaikkan satu level. Jadi, pada proses enqueue, -lah yang berjalan seiring masuknya data baru ke dalam antrian, sedangkan akan tetap pada posisi ke-1. Berikut deklarasi prosedur enqueue dalam Bahasa C: 8

void enqueue(int x) if ((antrian. == 0) && (antrian. == 0)) antrian. = 1; antrian. = 1; antrian. = antrian. + 1; antrian.data[antrian.] = x; Pada deklarasi prosedur enqueue di atas, prosedur memiliki sebuah parameter formal yang bernama x yang bertipe integer. Parameter formal x ini berguna untuk menerima kiriman nilai dari program utama (void main()) yakni berupa sebuah bilangan integer yang akan dimasukkan ke dalam queue. Gambar di bawah ini mengilustrasikan proses enqueue ke dalam sebuah queue yang masih kosong. 7 7 7 9

Berikutnya, gambar di bawah ini akan mengilustrasikan proses enqueue ke dalam sebuah queue yang telah berisi data (queue tidak kosong). 7 2 7 2 2 7 c. Prosedur dequeue Prosedur ini digunakan untuk mengeluarkan atau membuang sebuah data/ nilai yang paling awal masuk (yang berada pada posisi, yakni yang paling depan dari antrian) ke dalam queue. Pekerjaan yang dilakukan oleh prosedur ini adalah menaikkan nilai satu level. Jadi, setiap satu kali data dikeluarkan, maka posisi naik bertambah satu level. Misalkan berada pada indeks ke-1, maka ketika akan mengeluarkan/ menghapus data pada posisi paling depan (pada posisi ), prosedur ini akan menaikkan posisi ke indeks array ke-2. Berikut deklarasi prosedur pop dalam Bahasa C: void Dequeue() if (q.head > q.tail) q.head = 0; q.tail = 0; q.head = q.head + 1; 10

Ketika posisi sudah melewati posisi ( > ), berarti sudah tidak ada lagi data/ nilai di dalam queue tersebut, maka saat itu terjadi, dan dikembalikan ke posisi ke-0. Gambar di bawah ini mengilustrasikan cara kerja prosedur dequeue: 3 9 5 2 7 3 9 5 2 7 Ketika nilai terakhir (yakni nilai 3) dikeluarkan, maka posisi dan akan menjadi seperti ini: Maka, ketika kondisi > terjadi seperti ilustrasi di atas, maka dan dikembalikan ke indeks array ke-0. 11

d. Fungsi IsEmpty Sama seperti fungsinya pada stack, fungsi ini berfungsi untuk melakukan pengecekan terhadap queue, apakah queue tersebut kosong atau tidak. Jika queue tersebut kosong (artinya, dan berada pada posisi 0, atau bisa juga ketika > ), maka fungsi akan mengembalikan nilai 1 (true), tetapi jika queue tersebut tidak kosong/ berisi (artinya, dan tidak berada pada posisi 0), maka fungsi akan mengembalikan nilai 0 (false). Berikut deklarasi fungsi IsEmpty dalam Bahasa C: int IsEmpty() if ((antrian.> antrian.) (antrian. == 0) && (antrian. == 0)) e. Fungsi IsFull Fungsi ini berfungsi untuk melakukan pengecekan terhadap queue, apakah queue tersebut penuh atau tidak. Jika queue tersebut penuh (artinya, berada pada posisi MAX), maka fungsi akan mengembalikan nilai 1 (true), tetapi jika queue tersebut tidak penuh (artinya, tidak berada pada posisi MAX), maka fungsi akan mengembalikan nilai 0 (false). Berikut deklarasi fungsi IsFull dalam Bahasa C: int IsFull() if (antrian. == max) 4. Contoh program implementasi queue Berikut adalah contoh kode program dalam Bahasa C yang mengimplementasikan konsep queue. Pada program ini, user akan menginputkan data satu per satu, kemudian setelah selesai menginputkan data ke dalam queue, maka program akan menampilkan semua isi queue. 12

//program implementasi queue #include <stdio.h> #define max 5 typedef struct int, ; int data[max+1]; Queue; //untuk mencacah indeks dari stack Queue antrian; void createempty(); int IsEmpty(); int IsFull(); void Enqueue(int x); void Dequeue(); void main() int lagi; int input; createempty(); //mengisi queue lagi = 1; while (lagi == 1) if ((IsEmpty() == 1) (IsFull() == 0)) system("cls"); printf("antrian masih tersedia.\n"); printf("masukkan nilai: "); scanf("%d",&input); Enqueue(input); printf("tambah data (1/0)?"); scanf("%d",&lagi); if (IsFull() == 1) printf("antrian sudah penuh.\n"); lagi = 0; //menampilkan isi stack while (IsEmpty() == 0) printf("%d ",antrian.data[antrian.]); Dequeue(); 13

void createempty() antrian.= 0; antrian. = 0; int IsEmpty() if ((antrian.> antrian.) (antrian. == 0) && (antrian. == 0)) int IsFull() if (antrian. == max) void Enqueue(int x) if ((antrian. == 0) && (antrian. == 0)) antrian. = 1; antrian. = 1; antrian. = antrian. + 1; antrian.data[antrian.] = x; void Dequeue() if (antrian. > antrian.) antrian. = 0; antrian. = 0; antrian. = antrian. + 1; 14