PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 186 6.2 Latihan Kegiatan Praktikum Buatlah program baru pada aplikasi Dev C++ dengan cara File-New-Source File atau dengan menekan tombol Ctrl+N pada keyboard, kemudian ketik program seperti dibawah ini. #include <iostream> #define MAX 10 // latihan 1 using namespace std; struct stack { int top, data [MAX]; }Tumpukan; void init(){ Tumpukan.top = -1; } bool isempty(){ return Tumpukan.top == -1; } bool isfull(){ return Tumpukan.top == MAX -1; } void push(){
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 187 if (isfull()){ cout<<"\nTumpukan penuh" <<endl; } else { Tumpukan.top++; cout<<"\nMasukkan data ="; cin>> Tumpukan.data[Tumpukan.top]; cout<<"data"<< Tumpukan.data[Tumpukan.top] << "masuk ke stack"<<endl; } } void pop(){ if (isempty()){ cout<< "\ndata kosong\n"<<endl; } else{ cout<< "\ndata "<<Tumpukan.data [Tumpukan.top]<< "sudah terambil"<<endl; Tumpukan.top--; } } void PrintStack(){ if (isempty()){
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 188 cout<<"tTumpukan kosong"; } else{ cout<<"\nTumpukan : "; for (int i = Tumpukan.top; i >= 0; i--) cout<< Tumpukan.data[i] << ((i==0) ? "": ","); } } int main(){ int pilihan; int(); do{ PrintStack(); cout<< "\n1.input (push)\n" << "2.hapus (Pop)\n" << "3.keluar\n" << "masukan pilihan:"; cin>>pilihan; switch (pilihan){ case 1: push(); break;
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 189 case 2: pop(); break; case 3: cout << "bab 6 selesai" << endl; cout << "Nama :…………………." << endl; cout << "NPM : …………………. “<< endl; return 0; break; default: cout << "pilihan tidak tersedia"<< endl; break; } system("cls"); }while("hoose !=3"); }
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 190 Hasil eksekusi program diatas sebagai berikut. Gambar 6.1 Program latihan Gambar 6.2 Lanjutan program latihan
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 191 Gambar 6.3 Lanjutan program latihan Gambar 6.4 Lanjutan program latihan
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 192 Hasil eksekusi jika memilih pilihan pertama atau memasukan nilai ke dalam stack Gambar 6.5 Hasil program latihan Hasil eksekusi jika memilih pilih kedua atau menghapus data di dalam stack (tumpukan) Gambar 6.6 Hasil program latihan Hasil eksekusi jika memilih pilihan ke-3 atau keluar Gambar 6.7 Hasil program latihan
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 193 6.3 Studi Kasus 1. Studi Kasus 1 Flowchart: Gambar 6.8 flowchart program studi kasus 1
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 194 Penjelasan flowchart. Dimulai dengan terminator dan header flowchart, masukan fungsinya didalam simbol prepation. Lalu fungsi untuk variabel while(1), tampilkan pilihan push, pop, display, quit dan Enter your choice. Lalu masuk dalam system (choice) untuk case 1-4 ditambahkan default jika yang lain, untuk void push, tampilkan “Enter data to be pushed (0-999):”, jika nilai (temp == NULL) maka tampilkan “Memory Allocation Failed” jika tidak, maka top = temp dan tampilkan “Node has been inserted at Top(Front) Successfully !!”. Sedangkan untuk pilihan void pop(). jika nilai (top == NULL) maka tampilkan “Stack is empty!!” jika bukan itu maka tmp = top dan tampilkan ("Popped data : %d\n",tmp->data); lalu untuk void display(), jika top == NULL maka tampikan “Empty Stack !!” jika tidak, maka temp = top dan tampilkan ("_[Stack]_\n"); pada while(temp != NULL) tampilkan ("\n__\n"); ("|%4d|",temp- >data); kemudian akhiri dengan simbol terminator. Program dari flowchart diatas sebagai berikut #include<stdio.h> #include<stdlib.h> #include <conio.h> typedef struct node { int data; struct node *link; }NODE;
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 195 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"); printf("4.Quit\n\n"); printf("Enter your choice : "); scanf("%d",&choice) switch(choice) { case 1 : push(); break; case 2: pop(); break;
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 196 case 3: display(); break; case 4: exit(0); default: printf("\nPILIHAN TIDAK TERSEDIA\n"); } } getch(); } 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;
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 197 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"); else { tmp = top; printf("Popped data : %d\n",tmp->data); top = top->link; free(tmp); } } void display() { NODE *temp; if(top == NULL) { printf("Empty Stack !!!\n");
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 198 } else { temp = top; printf("____[Stack]____\n"); while(temp != NULL) { printf("\n__\n"); printf("|%4d|",temp->data); temp = temp->link; } } }
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 199 Hasil eksekusi program diatas sebagai berikut. Gambar 6.9 Program studi kasus 1 Gambar 6.10 lanjutan program studi kasus 1
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 200 Gambar 6.11 Hasil program studi kasus 1 Gambar 6.12 Hasil program studi kasus 1
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 201 2. Studi kasus 2 Flowchart: Gambar 6.13 flowchart program stack 2
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 202 Penjelasan : Dimulai dengan terminator dan header flowchart , masukan fungsi nya didalam simbol prepation . lalu fungsi untuk variabel while(1), tampilkan pilihan push, pop, display, quit dan scanf. Lalu masuk dalam system (choice) untuk case1-4 ditambahkan default jika yang lain, untuk void push, if (top == (MAX - 1) maka tampilkan “Stack Overflow” jika tidak , maka tampilkan nilai yang masuk dan masukan nilainya dengan nilai sudah di urutkan top = top + 1; stack_arr[top] = pushed_item; sedangkan untuk pilihan void pop(). jika nilai (top == -1) maka tampilkan “Stack Overflow” jika buka itu maka tampilkan nilai yang dihapuskan dan di urutkan top = top - 1; lalu sedangkan void display() , masukan variabel int I, jika if(top == -1) maka tampikan “Stack Overflow” jika tidak, maka else {printf("\nStack elements :\n"); untuk tampilan for(i = top; i >=0; i--) printf ("%d\n", stack_arr[i] ); kemudian diselesaikan dengan simbol terminator. Program dari flowchart diatas sebagai berikut. #include <stdio.h> #include <stdlib.h> #include <conio.h> #define MAX 5 int top = -1; int stack_arr[MAX]; void push(); void pop();
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 203 void display(); int main() { 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; case 3: display(); break;
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 204 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 { 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");
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 205 else { printf("Popped element is : %d\n",stack_arr[top]); top = top - 1; } } void display() { 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] ); }}
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 206 Hasil eksekusi program diatas sebagai berikut. Gambar 6.14 Program studi kasus 2 Gambar 6.15 Lanjutan program studi kasus 2
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 207 Gambar 6.16 Lanjutan program studi kasus 2 Gambar 6.17 Lanjutan program studi kasus 2
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 208 Gambar 6.18 Hasil program studi kasus 2 6.4 Kesimpulan dan Saran 6.4.1 Kesimpulan Stack adalah suatu koleksi atau kumpulan item data yang terorganisasi dalam bentuk urutan linier, yang operasi pemasukkan dan penghapusan datanya dilakukan pada salah satu sisinya. Keunikkan 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).
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 209 6.4.2 Saran Laporan ini masih terdapat banyak kesalahan karena terbatasnya pengetahuan dan kurangnya referensi materi pada laporannya ini. Diharapkan kepada pembaca dapat memberikan saran sebagai motivasi pembuatan laporan selanjutnya.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 210
211 BAB VII QUEUE OLEH Jiandzah Lukmannulhakim 07352211037 PROGRAM STUDI INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS KHAIRUN TERNATE 2022
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 212 BAB VII QUEUE 7.1 Definisi Queue (Antri) 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 ( Frist 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 depan di atur menjadi satu (depan =1 ) jika depan sama dengan maksimum elemen array.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 213 7.2 Operasi Dasar Queue Gambar 7.1 Operasi queue Operasi-operasi dasar dari sebuah queue adalah: 1. Enqueue: proses penambahan atau memasukkan satu elemen di belakang 2. Dequeue: proses pengambilan atau mengeluarkan satu elemen di posisi depan. 7.3 Latihan Kegiatan Praktikum Buka DevC++ dan ketik program dibawah ini: #include <stdio.h> #include <iostream> #include <conio.h>
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 214 #define MAX 8 using namespace std; typedef struct{ int data[MAX]; int head; int tail; }Queue; Queue antrian; void Create(){ antrian.head=antrian.tail=-1; } int IsEmpty(){ if(antrian.tail==-1) return 1; else
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 215 return 0; } int IsFull(){ if(antrian.tail==MAX-1) return 1; else return 0; } Enqueue(int data) { if(IsEmpty()==1) { antrian.head=antrian.tail=0; antrian.data[antrian.tail]=data; printf("%d sudah dimasukan",antrian.data[antrian.tail]); } else if(IsFull()==0)
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 216 { antrian.tail++; antrian.data[antrian.tail]=data; printf("%d sudah dimasukan",antrian.data[antrian.tail]); } } int Dequeue() { int i; int e = antrian.data[antrian.head]; for(i=antrian.head; i<=antrian.tail-1;i++) { antrian.data[i]=antrian.data[i+1]; } antrian.tail--; return e; } void Clear()
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 217 { antrian.head=antrian.tail=-1; printf("CLEAR"); } void Tampil() { if(IsEmpty()==0) { for(int i=antrian.head;i<=antrian.tail;i++) { printf(" %d",antrian.data[i]); } }else printf("data kosong!\n"); } main() { int pil; int data;
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 218 Create(); do{ cout<<endl<<endl; cout<<" =============================="<<endl; cout<<" =\t PROGRAM QUEUE ="<<endl; cout<<" =============================="<<endl; cout<<" = 1. ENQUEUE = "<<endl; cout<<" = 2. DEQUEUE = "<<endl; cout<<" = 3. TAMPIL = "<<endl; cout<<" = 4. CLEAR = "<<endl; cout<<" = 5. EXIT ="<<endl; cout<<" =============================="<<endl; cout<<" Masukan Pilihan : ";cin>>pil; switch(pil) { case 1: cout<<"Masukan Data : ";cin>>data; Enqueue(data);
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 219 break; case 2: Dequeue(); break; case 3: Tampil(); break; case 4: Clear(); break; case 5: break; }
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 220 getch(); } while(pil!=5); return 0; } Hasil eksekusi program diatas sebagai berikut. Gambar 7.2 Program latihan
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 221 Gambar 7.3 Program latihan lanjutan
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 222 Gambar 7.4 Program latihan lanjutan
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 223 Gambar 7.5 Program latihan lanjutan Gambar 7.6 Program latihan lanjutan
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 224 7.4 Studi Kasus 1. Kasus Queue dalam Array 1 Gambar 7.7 Flowchart studi kasus 1
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 225 Penjelasan flowchart di atas: Dimulai dengan terminator dan header lalu dimasukkan variabel yang diinginkan. Memasuki decision while untuk melanjutkan case yang diinginkan atau tidak sama sekali. Diberikan case berupa case 1 enqueue, memasuki decision if rear==MAX-1, Jika Yes print Queue Overflow, Jika No memasuki proses rear=rear+1 dan kembali ke decision while. Case 2 dequeue, memasuki decision if front==-1 II front > rear, Jika Yes Print Queue Underflow, Jika No memasuki proses front=front+1 dan kembali ke decision while. Case 3 display, memasuki decision if front==-1, Jika Yes print Queue is empty, Jika No memasuki ulangan for (i=front;i<=rear;i++), lalu print queue_arr[i], kemudian kembali ke decision while. Case 4 exit, proses exit lalu end dengan simbol terminator. Jika tidak dipilih maka pilihan tidak tersedia dan ditutup dengan simbol terminator sebagai penyelesaiannya. Program dari flowchart di atas adalah sebagai berikut: #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();
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 226 void display(); main() { int choice; while(1) { printf("1.Insert\n"); printf("2.Delete\n"); printf("3.Display\n"); printf("4.Quit\n"); printf("Enter your choice : "); scanf("%d",&choice); switch(choice) { case 1 : enqueue(); break; case 2 : dequeue(); break; case 3: display();
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 227 break; case 4: exit(1); default: printf("PILIHAN TIDAK TERSEDIA\n"); } } getch(); } void enqueue() { int added_item; if (rear == MAX- 1) printf("Queue Overflow\n"); else { if (front ==-1) front = 0; printf("Input the element for adding in queue : "); scanf("%d", &added_item); rear = rear + 1;
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 228 queue_arr[rear] = added_item ; } } void dequeue() { if (front ==-1 || front > rear) { printf("Queue Underflow\n"); return ; } else { printf("Element deleted from queue is : %d\n",queue_arr[front]); front = front + 1; } } void display() { int i; if (front ==-1) printf("Queue is empty\n"); else {
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 229 printf("Queue is :\n"); for(i = front; i <= rear; i++) printf("%d ",queue_arr[i]); printf("\n"); } } Hasil eksekusi program di atas adalah sebagai berikut:
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 230 Gambar 7.8 program studi kasus 1
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 231 Gambar 7.9 program studi kasus 1 lanjutan Gambar 7.10 program studi kasus 1 lanjutan
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 232 Gambar 7.11 hasil program studi kasus 1
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 233 2. Kasus Queue 2 Gambar 7.12 flowchart studi kasus 2
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 234 Penjelasan flowchart di atas: Dimulai dengan terminator dan header lalu dimasukkan variabel yang diinginkan. Proses berlanjut ke dalam sistem switch untuk masuk kedalam kasus atau pilihan yang diberikan yaitu case 1 enqueue, memasuki decision if temp==NULL, Jika Yes print Memory Allocation Failed, Jika No maka masuk decision if front==NULL, Jika Yes proses front=rear=temp lalu print Node has been inserted at End Succesfully. Jika No proses rear=temp lalu print Node has been inserted at End Succesfully. Kemudian end dengan simbol terminator. Case 2 dequeue, memasuki decision if front==NULL, Jika Yes print underflow!!!, Jika No proses rear=NULL lalu print Deleted Node(From Front) with the Data: %d\n, kemudian end dengan simbol terminator. Case 3 display, memasuki decision if front==NULL, Jika Yes print Empty Queue, Jika No proses while lalu print Rear, kemudian end dengan simbol terminator. Case 4 exit, lalu end dengan simbol terminator. default jika pesan tidak ditemukan. Print PILIHAN TIDAK TERSEDIA, Lalu tutup dengan simbol terminator untuk penyelesaiannya. Program dari flowchart di atas adalah sebagai berikut: #include <stdlib.h> #include <stdio.h> #include <conio.h> typedef struct node { int data;
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 235 struct node *link; } NODE; NODE *front, *rear = NULL; void enqueue(); 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(); break;