134 } } } Compile dan perbaiki progra hingga dapat dijalankan Gambar 6.25 Struktur code C++ Gambar 6.26 Lanjutan Struktur code C++
135 Gambar 6.27 Lanjutan Struktur code C++ Gambar 6.28 Lanjutan Struktur code C++ Gambar 6.29 Lanjutan Struktur Code C++
136 Setelah program diperbaiki dan dicompile, maka tampilan hasil running akan tampak seperti gambar dibawah ini: Jika pilihan tersebut adalah 1 maka; Gambar 6.30 Hasil running Jika pilihan tersebut adalah 2 maka; Gambar 6.31 Hasil running Jika pilihan tersebut adalah 3 maka: Gambar 6.32 Hasil running
137 Jika pilihan tersebut adalah 4 maka: Gambar 6.33 Hasil running Jika pilihan input tidak tersedia: Gambar 3.34 Hasil running 6.6 Kesimpulan dan Saran a. Kesimpulan Stack merupakan salah satu implementasi dari Linked List. Stack merupakan sekumpulan data yang menggunakan konsep LIFO Last In First Out atau FILO First In Last Out, yaitu data yang paling terakhir dimasukan ke dalam stack merupakan data yang pertama kali keluar dari stack, Konsep ini sering digunakan dalam pemrograman untuk membantu dalam mengatur data. Sepert layaknya sebuah antrian di bioskop
138 b. Saran Penulis menyadari bahwa banyak sekali kesalahan yang jauh dari kata kesempurnaan serta kurangnya pengetahuan. Penulis akan memperbaiki laporan praktikum ini dengan berpedoman pada sumber yang akan dipertanggungjawabkan. Maka dari itu penulis mengharapkan kritik dan saran mengenai isi dari laporan tersebut.
139
140 BAB VII QUEUE 7.1 Pendahuluan Queue/Queue adalah record dimana penambahan item hanya dapat dilakukan dari satu ujung (disebut sebagai back atau tail/back) dan pengeluaran atau pengambilan item dapat dilakukan dari ujung yang lain (disebut front atau head/depan) Queue didasarkan pada prinsip FIFO (First In First Out). Dengan kata lain order yang masuk sama dengan order yang keluar. Antrian sering dijumpai dalam kehidupan sehari-hari. Mobil berbaris di pintu tol untuk membeli tiket tol; Orang-orang yang mengantri di loket untuk membeli tiket bioskop jugamembentuk antrian. Itemyang masuk antrian terlebih dahulu akan dihapus terlebih dahulu. Equeue menghapus item dari antrean. Satu ujung memiliki input dan ujung lainnya memiliki output, sehingga dibutuhkan variabel head. Sementara contoh penerapan struktur data queue dalam kehidupan sehari-hari bisa ditemui ketika seseorang mengantri untuk membeli tiket melalui loket pembayaran tiket yang disediakan, itu disebut sebagai enqueue. Berikut adalah operasi operasi dasar dalam queue : a) Prosedur Create e) Prosedur DeQueue b) Fungsi IsEmpety d) Prosedur Clear c) Fungsi IsFull d) Prosedur EnQueue
141 7.2 Tujuan Praktikum a. Memahami konsep Queue b. Mempraktekkan cara penggunaan Queue dalam C++ 7.3 Study Kasus a. Study Kasus 1 1. Flowchart Queue 1 Gambar 7.1 Flowchart Queue1
142 Gambar 7.2 Lanjutan flowchart Queue 1
143 Gambar 7.3 Lanjutan flowchart Queue 1 Penyelesaian: Flowchart dimulai dengan simbol terminal, lalu dimasukan variabel yang di inginkan. Memasuki decision While untuk melanjutkan case yang di inginkan atau tidak sama sekali dan diberikan case berupa (enqueu, dequeue, display, dan exit) jika tidak maka pilihan tidak tersedia dan ditutup dengan getch(); sebagai
144 penyelesaiannya. kemudian dilanjutkan dengan operasi queue yaitu: void enqueue, void dequeue, void display, dan exit. Kemudian ditutup dengan terminal simbol terminal “Selesai”. 2. Program Buatlah program baru pada Dev C++ dengan cara klik file – new – source file atau tekan tombol Ctrl+N pada keyboard, kemudian ketik source code program dibawah ini //Program of queue using array #include <stdio.h> #include <stdlib.h> #include <conio.h> #define MAX 5 int rear = -1; int front = -1; int queue_arr[MAX]; void enqueue(); void dequeue(); void display(); main() { int choice; while(1)
145 { printf("1.Insert\n"); printf("2.Delete\n"); printf("3.Display\n"); printf("4.Quit\n"); printf("Masukkan pilihan : "); scanf("%d",&choice); switch(choice) { case 1 : enqueue(); break; case 2 : dequeue(); break; case 3: display(); break; case 4: printf("Nama : Adira Ramadani Anwar\n"); printf("NPM : 07352211060\n"); exit(1);
146 default: printf("PILIHAN TIDAK TERSEDIA\n"); } } getch(); } void enqueue() { int added_item; if (rear == MAX - 1) printf("Antrian penuh\n"); else { if (front == -1) front = 0; printf("Masukkan elemen untuk ditambahkan dalam antrian : "); scanf("%d", &added_item); rear = rear + 1; queue_arr[rear] = added_item ; } } void dequeue() {
147 if (front == -1 || front > rear) { printf("Antrian penuh\n"); return ;} else { printf("Elemen yang dihapus dari antrian adalah : %d\n"); queue_arr[front]; front = front + 1; } } void display() { int i; if (front == -1) printf("Antrian Kosong\n"); else { printf("Queue is : %d\n"); for(i = front; i <= rear; i++) printf("%d ",queue_arr[i]); printf("\n"); }
148 } Compile dan perbaiki program hingga dapat dijalankan Gambar 7.4 Struktur Code C++
149 Gambar 7.5 Lanjutan Struktur Code C++ Gambar 7.6 Lanjutan Struktur Code C++
150 Gambar 7.7 Lanjutan Struktur Code C++ Gambar 7.8 Lanjutan Struktur Code C++ Setelah program diperbaiki dan dicompile, maka tampilan hasil running akan tampak seperti gambar dibawah ini: Jika pilihan tersebut adalah 1 maka; Gambar 7.9 Hasil running Jika pilihan tersebut adalah 2 maka; Gambar 7.10 Hasil running
151 Jika pilihan tersebut adalah 3 maka; Gambar 7.11 Hasil running Jika pilihan tersebut adalah 4 maka; Gambar 7.12 Hasil running Jika pilihan input tidak tersedia, maka: Gambar 7.13 Hasil running
152 b. Study Kasus 2 1. Flowchart Gambar 7.14 flowchart Queue 2 Gambar 1.14 flowchart Queue 2
153 Gambar 7.15 Flowchart Lanjutan flowchart Queue 2
154 Gambar 7.16 Lanjutan flowchart Queue 2 Penyelesaian: Flowchart dimulai dengan simbol terminal, lalu dimasukan variabel yang di inginkan. Memasuki decision While untuk melanjutkan case yang di inginkan atau tidak sama sekali dan diberikan case berupa (enqueu, dequeue, display, dan exit) jika tidak maka pilihan tidak tersedia dan ditutup dengan getch(); sebagai
155 penyelesaiannya. kemudian dilanjutkan dengan if else void push, pop, display, exit. Selesai 2. Program Buatlah program baru pada Dev C++ dengan cara klik file – new – source file atau tekan tombol Ctrl+N pada keyboard, kemudian ketik source code program dibawah ini #include <stdlib.h> #include <stdio.h> #include <conio.h> typedef struct node { int data; struct node *link; } NODE; NODE *front, *rear = NULL; void enqueue(); void dequeue(); void display(); int main() { int choice = 0; while(1) {
156 printf("\n1.Push\n"); printf("2.Pop\n"); printf("3.Display\n"); printf("4.Quit\n\n"); printf("Enter your choice : "); scanf("%d",&choice); switch(choice) { case 1 : enqueue(); break; case 2: dequeue(); break; case 3: display(); break; case 4: printf("Nama : Adira Ramadani Anwar\n"); printf("NPM: 07352211060\n"); exit(0); default:
157 printf("\nPILIHAN TIDAK TERSEDIA\n");} } getch(); } void enqueue() { NODE *temp; int info = 0; printf("Enter data to be enqueued (0-9999) : "); scanf("%d",&info); temp = (NODE *) malloc(sizeof(NODE)); if (temp == NULL) printf("\nMemory Allocation Failed"); else { temp->data = info; temp->link = NULL; if (front == NULL) { front = rear = temp; } else { rear->link = temp; rear = temp; }
158 printf(" Node has been inserted at End Successfully !!"); }} void dequeue() { NODE *temp; int info; if (front == NULL) { printf(" Underflow!!!"); } else { temp = front; info = front->data; if (front == rear) { rear = NULL; } front = front->link; temp->link = NULL; printf(" Deleted Node(From Front)with the Data: %d\n", info); free(temp);} } void display() { NODE *temp; if (front == NULL)
159 printf("Empty Queue\n"); else { temp = front; printf("Front->"); while (temp) { printf("[%d]->", temp->data); temp = temp->link; } printf("Rear\n"); } } Compile dan perbaiki program hingga dapat dijalankan:
160 Gambar 7.17 Struktur Code C++ Gambar 7.18 Lanjutan Struktur Code C++
161 Gambar 7.19 Lanjutan Struktur Code C++ Gambar 7.20 Lanjutan Struktur Code C++
162 Gambar 7.21 Lanjutan Struktur Code C++ Setelah program diperbaiki dan dicompile, maka tampilan hasil running akan tampak seperti gambar dibawah ini: Jika pilihan tersebut adalah 1 maka: Gambar 7.22 Hasil running Jika pilihan tersebut adalah 2 maka:
163 Gambar 7.23 Lanjutan Hasil running Jika pilihan tersebut adalah 3 maka: Gambar 7.24 Lanjutan Hasil running Jika pilihan tersebut adalah 4 maka: Gambar 7.25 Lanjutan Hasil running Jika pilihan tersebut adalah define maka:
164 Gambar 7.26 Lanjutan Hasil running 7.4 Kesimpulan dan Saran a. Kesimpulan Queue/Queue adalah record dimana penambahan item hanya dapat dilakukan dari satu ujung (disebut sebagai back atau tail/back) dan pengeluaran atau pengambilan item dapat dilakukan dari ujung yang lain (disebut front atau head/depan) yang didasarkan pada prinsip FIFO (First In First Out). Dengan kata lain order yang masuk sama dengan order yang keluar.queue juga memiliki beberapa operasi yaitu, prosedur Create, Fungsi IsEmpety, Fungsi IsFull, Prosedur EnQueue, Prosedur DeQueue, dan Prosedur Clear. b. Saran Penulis menyadari bahwa laporan ini jauh dari kesempurnaan, Hal ini disebabkan karena keterbatasan kemampuan dan pengetahuan penulis. Untuk itu dengan segala kerendahan hati penulis mengharapkan kritik dan saran yang membangun dari pembaca demi kesempurnaan laporan ini. Akhir kata penulis berharap laporan ini bisa bermanfaat bagi pembaca.
165
166 DAFTAR PUASTAKA Simbol Flowchart Diagram alur - Panduan Lengkap | Zen Flowchart. (n.d.). Retrieved January 18, 2023, from https://www.zenflowchart.com/simbol-flowchart Ziaggi. (2022, Oktober 22). Algoritma: Pengertian, Sejarah, Jenis, Fungsi, Dan Contohnya. Retrieved January 18, 2023, from Gramedia Literasi: https://www.gramedia.com/literasi/pengertian-algoritma/ Annisa, S. (08, Desember 2022). Belajar Bahasa pemrograman C++ UNTUK PEMULA. Retrieved Januari 18, 2023, from Niagahoster Blog: https://www.niagahoster.co.id/blog/bahasa-pemrograman-cpp/ Gischa, S. (2021, April 22). Algoritma: Definisi, ciri, Jenis, Struktur Dan Contohnya. Retrieved Januari 18, 2023, from KOMPAS.com: https://www.kompas.com/skola/read/2021/04/22/100000469/algoritma--definisiciri-jenis-struktur-dan-contohnyaBunga. (2022, July 12). 3 jenis array dan implementasinya. Retrieved Januari 18, 2023, from Algoritma: https://algorit.ma/blog/jenis-array-2022 Trivusi. (n.d.). Struktur Data Queue: Pengertian, Jenis, Dan Kegunaannya. Retrieved Januari 18, 2023, from Trivusi: https://www.trivusi.web.id Hat, I. Z. (2019, Maret 04). Pointer. Retrieved Januari 18, 2023, from Belajar C++: https://www.belajarcpp.com/tutorial/cpp/pointer/ Adieb, M. (2021, Februari 04). MEMAHAMI stack, Struktur Data Yang Mudahkan programmer Jalankan Tugasnya. Retrieved Januari 18, 2023, from Glints Blog: https://glints.com/id/lowongan/stackadalah/#:~:text=Seperti%20yang%20sudah%20dijelaskan%20sebelumnya,dan%20m enghapus%20data%20(pop).
167 DOKUMENTASI
168 04/12/22
169 ~DONE~