141 f. Akan muncul dialog untuk menyimpan program. Beri nama sesuai keinginan. Kemudian save dengan eksistensi “cpp”. Gambar 6.8 Proses penyimpanan g. Setalah klik save, akan muncul jendela yang menampilkan hasil program stack yang telah dibuat. Gambar 6.9 Tampilan hasil running
142 h. Program “stack” berhasil dibuat menggunakan bahasa pemrograman C++ menggunakan aplikasi Dev C++. 6.4 LATIHAN KEGIATAN PRAKTIKUM Buatlah program baru dengan cara file-new-source atau Ctrl-N kemudian ketik source code seperti dibawah ini : /*Program of stack using array*/ #include<stdio.h> #include<stdlib.h> #include<conio.h> #define MAX 5 int top=-1; int stack_arr[MAX]; void push(); void pop(); void display(); int main() {
143 int choice; while(1) { 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: push(); break; case 2: pop(); break;
144 case 3: display(); break; case 4: exit(1); default: printf("\nPILIHAN TIDAK TERSEDIA\n"); } } getch(); } void push() { int pushed_item; if(top==(MAX-1)) printf("Stack Overflow\n"); else
145 { printf("\nEnter the item to be pushed in stack:"); scanf("%d",&pushed_item); top=top+1; stack_arr[top]=pushed_item; } } void pop() { if(top==-1) printf("Stack Underflow\n"); else{ printf("Popped element is: %d\n",stack_arr[top]); top=top-1; } } void display()
146 { int i; if(top==-1) printf("Stack is empty\n"); else{ printf("\nStack elements:\n"); for(i=top;i>0;i--) printf("%d\n",stack_arr[i]); } } Compile dan perbaiki program sampai benar.
147 Gambar 6.10 Struktur code latihan C++ Gambar 6.11 Lanjutan stuktur code latihan C++
148 Gambar 6.12 Lanjutan struktur code latihan C++ Hasil running jika memilih pilihan pertama atau memasukkan nilai dalam stack Gambar 6.13 Tampilan hasil running
149 6.5 STUDI KASUS Berikut Flowchart dari Program “Stack” Flowchart 6.1 stack Penjelasan: Flowchart diatas menjelaskan tentang stack atau tumpukan array yang dimana diawali dengan simbol terminator. Setelah itu mendeklarasikan NODE,TOP: NULL Void Push, Void Pop, void display, int choice=0, kemudian masuk ke kondisi while(1) dan print 1.Push, 2.Pop, 3.Display, 4.Quit. Masukkan pilihan 1,2,3 atau 4. Akhiri dengan simbol terminator.
150 Berikut Source Code “Stack”: #include<stdio.h> #include<stdlib.h> #include <conio.h> typedef struct node { int data; struct node *link; } NODE; NODE *top = NULL; Void push(); void pop(); void display(); int main() { int choice = 0; while(1) { printf("\n1.Push\n"); printf("2.Pop\n"); printf("3.Display\n");
151 printf("4.Quit\n\n"); printf("Enter your choice : "); scanf("%d",&choice); switch(choice) { case 1 : push(); break; case 2: pop(); break; case 3: display(); break; case 4: exit(0); default: printf("\nPILIHAN TIDAK TERSEDIA\n"); } } getch(); }
152 void push() { NODE *temp; int info = 0; printf("Enter data to be pushed (0-9999) : "); scanf("%d",&info); temp = (NODE *) malloc(sizeof(NODE)); if (temp == NULL) printf("\nMemory Allocation Failed"); else { temp->data = info; temp->link = top; top = temp; printf(" Node has been inserted at Top(Front) Successfully !!\n"); } } void pop() { NODE *tmp; if(top == NULL) printf("Stack is empty!!\n");
153 else { temp = top; printf("Popped data : %d\n",tmp->data); top = top->link; free(tmp); } } void display() { NODE *temp; if(top == NULL) { printf("Empty Stack !!!\n"); } else { temp = top; printf("Stack :- \n"); while(temp != NULL) { printf("\n ____\n");
154 printf("|%4d|",temp->data); temp = temp->link;} } } Compile dan perbaiki sampai benar Gambar 6.11 source code stack
155 Gambar 6.12 source code stack Gambar 6.13 source code stack
156 Gambar 6.13 tampilan hasil running stack Gambar 6.14 tampilan hasil running stack
157 6.6 KESIMPULAN DAN SARAN a. Kesimpulan Stack adalah suatu koleksi atau kumpulan item data yang terorganisasi dalam bentuk urutan linier, yang operasi pemasukan dan penghapusan datanya dilakukan pada salah satu sisinya. Keunikan pada stack adalah dimana node yang ditambahkan dalam list dan diambil dari list hanya pada kepala, dengan prinsip pengolahannya adalah Last in First Out (LIFO). b. Saran Laporan ini masih terdapat banyak kesalahan karena terbatasnya pengetahuan dan kurangnya referensi pada laporan ini. Diharapkan kepada pembaca dapat memberikan saran sebagai motivasi pembuatan laporan selanjutnya.
158 LEMBAR ASISTENSI BAB VI
159 BAB VII LAPORAN PRAKTIKUM QUEUE Disusun Oleh : Nama : Windaryati NPM : 07352211016 PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS KHAIRUN 2023
160 BAB VII QUEUE 7.1 Pengertian Queue Queue atau antrian merupakan kumpulan elemen yang pengisian dan penghapusan elemen yang dilakukan dari sisi atau gerbang yang berbeda beda. Pengisian dilakukan dari gerbang belakang dan penghapusan gerbang depan. Hal ini menunjukan bahwa untuk queue mempunyai dua gerbang yaitu gerbang depan dan belakang. Dengan demikian dapat dlihat bahwa queue mempunyai sifat FIFO ( First in, Frist out ), yaitu elemen yang pertama masuk akan keluar pertama juga. Represnatsi queue dapat deklarasi dengan menggunakan array atau linked list resresntasi queue dengan array atau linked list. Representasi queue dengan array ada penunjuk depan dan belakang yang digunakan untuk menunjuk elemen posisi depan dan elemen posisi belakang.sehingga dapat diketahui queue kosong atau tidak. Queue dapat ditambah selama belakang tidak sama dengan isi dan maksimum array. Operasi penyisipan elemen queue digunakan untuk mengambil atau menghapus elemen dan suatu queue. Operasi penghapusan elemen pada circular yang dihapus adalah selalu yang berada didepan sehingga penunjuk depan akan naik satu (depan + 1 ) jika depan lebih kecil dari maksimum elemen array . tetapi dpena di atur menjadi satu (depan =1 ) jika depan sama dengan maksimum elemen array. 7.2 Latihan Kegiatan Praktikum a. Studi Kasus (Berikut Flowchart Queue dalam array)
161 Mulai #include <stdlib.h> #include <stdio.h> #include <conio.h> Int data; Struct node *link; } NODE Int choice=0; While(1) Switch(choice) Printf(“\n1.push\n”);printf(“2.pop\n”); Printf(“3.Display\n”);printf(“4.Quit\n\n”); Printf(“Enter your choice:”);scanf(“%d”,&choice); Case1 Case2 Case3 Void enqueue0 Void dequeue0 Void Display0 Case4 Getch0; Exit(0); Printf(“\nPILIHAN TIDAK TERSEDIA\n”); Selesai
162 Flowchart 7.1 Penjelasan : Dimulai denga terminator dan header, lalu di lanjutkan dengan menginput variabel queue . setelah itu masuk kedalam sistem atau proses Switch untuk memasuki kasus atau pilihan yang di berikan (enqueue, dequeue, display, exit dan default jika pesan tidak di temukan) lalu di tutup dengan gethch untuk penyelesaiannya. Buatlah program baru dengan cara klik Ctrl – N kemudian ketik source code programnya seperti 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();
163 void dequeue(); void display(); int main() { int choice = 0; while(1) { 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();
164 break; case 2: dequeue(); break; case 3: display(); break; case 4: exit(0); default: printf("\nPILIHAN TIDAK TERSEDIA\n"); } } getch(); } void enqueue() {
165 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 {
166 rear->link = temp; rear = temp; } printf(" Node has been inserted at End Successfully !!"); } } void dequeue() { NODE *temp; int info; if (front == NULL) { printf(" Underflow!!!"); } else { temp = front;
167 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) printf("Empty Queue\n");
168 else { temp = front; printf("Front->"); while (temp) { printf("[%d]->", temp->data); temp = temp->link; } printf("Rear\n"); } } Compile dan perbaiki sampai benar.
169 Gambar 7.1 Sruktur code program
170 Gambar 7.2 Struktur code program
171 Gambar 7.3 Struktur code program Setelah program diperbaiki dan dicompile, maka tampilan hasil running akan tampak seperti gambar dibawah ini :
172 Gambar 7.4 Tampilan hasil running
173 Gambar 7.5 Tampilan hasil running
174 7.3 KESIMPULAN DAN SARAN a. Kesimpulan Queue (antrian) adalah salah satu list linear dari struktur data yang beroperasi dengan cara FIFO (First in, First Out) yaitu elemen pertama yang masuk merupakan elemen yang pertama keluar. Data-data di dalam antrian dapat bertipe integral, real, record, dalam bentuk sederhana atau terstruktur. b. Saran Di harapkan agar dapat memahami dengan betul mengenai materi queue ini. Serta dapat mempraktikkan sendiri dan juga menyelesaikan studi kasus lainnya.
175 LEMBAR ASISTENSI BAB VII