PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 124 q. Anda telah berhasil membuat program pointer 5.4 LATIHAN KEGIATAN PRAKTIKUM b. Latihan 1 pointer konstanta Buatlah program baru dengan cara file – new – source atau gunakan CTRL – N kemudian ketik source code program seperti dibawah ini : //---------------------------------------------// //Pendeklarasian Pointer Konstanta// //---------------------------------------------// #include <iostream> #include <conio.h> using namespace std; main () { cout<<"Nama : RINI"<<endl; cout<<"NPM : 07352211020"<<endl; char const *nama= "Borland c++"; cout<<"Nama Program ="<<nama<<endl; nama = "Visual C++"; cout<<"Nama Program ="<<nama<<endl; getch();
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 125 gambar 5 8 pointer konstanta Setelah program diperbaiki dan dicompile, maka tampilan hasil running akan tampak seperti gambar dibawah ini :
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 126 gambar 5 9 hasil running pointer konstanta c. Latihan 2 pointer variabel Flowchart pointer variabel gambar 5 10 Flowchart pointer variabel Buatlah program baru dengan cara file – new – source atau gunakan CTRL – N kemudian ketik source code program seperti dibawah ini : //--------------------------------------------// //Penggunaan Pointer Dereference// //-------------------------------------------// Start int ilham, amir, *raka Ilham = 35 Amir = ilham Raka = & ilham Print nilai ilham, amir, raka = end
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 127 #include <iostream> #include <conio.h> #include <windows.h> using namespace std; main () { cout<<"Nama : RINI" <<endl; cout<<"NPM : 07352211020"<<endl; int ilham, amir, *raka; ilham = 75; amir = ilham; raka = &ilham; cout<<"Nilai ILHAM = "<<ilham<<endl; cout<<"Nilai AMIR = "<<amir<<endl; cout<<"Nilai RAKA = "<<raka<<endl; getch(); }
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 128 gambar 5 11 pointer variabel Setelah program diperbaiki dan dicompile, maka tampilan hasil running akan tampak seperti gambar dibawah ini :
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 129 gambar 5 12 Gambar hasil running pointer variabel 5.5 Studi Kasus a. Operasi Aritmatika Pada Pointer Flowchart Operasi Aritmatika Pada Pointer gambar 5 13 Flowchart Operasi Aritmatika Pada Pointer int nilai[3], penunjuk nilai[0]=125; nilai[1]=345; nilai[2]=750; penunjuk = &nilai[0] Print nilai petunjuk, nilai petunjuk + 1, nilai petunjuk +2 end start
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 130 Buatlah program baru dengan cara file – new – source atau gunakan CTRL – N kemudian ketik source code program seperti dibawah ini : #include <iostream> #include <conio.h> using namespace std; main() { cout<< "Nama : RINIe"<<endl; cout<< "NPM : 07352211020"<<endl; int nilai[3], *penunjuk; nilai[0]=125; nilai[1]=345; nilai[2]=750; penunjuk = &nilai[0]; cout<<"Nilai"<<*penunjuk<<"ada di alamat memori"<<penunjuk<<endl; cout<<"Nilai"<<*(penunjuk+1)<<"ada di memori"<<(penunjuk+1)<<endl; cout<<"Nilai"<<*(penunjuk+2)<<"ada di alamat memori"<<(penunjuk+2)<<endl; getch(); }
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 131 gambar 5 14 Operasi Aritmatika Pada Pointer Setelah program diperbaiki dan dicompile, maka tampilan hasil running akan tampak seperti gambar dibawah ini :
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 132 gambar 5 15 hasil running Operasi Aritmatika Pada Pointer a. Pointer dalam array flowchart Pointer dalam array false True gambar 5 16 flowchart Pointer dalam array Buatlah program baru dengan cara file – new – source atau gunakan CTRL – N kemudian ketik source code program seperti dibawah ini : #include <iostream> #include <conio.h> using namespace std; main() int i Print address end start For (i=0;i<4;++i)
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 133 { cout<<"Nama : RINI"<<endl; cout<<"NPM : 07352211020"<<endl; char c[4]; int i; for(i=0;i<4;++i) { printf("Address of c[%d]=%x\n",i,&c[i]); } getch(); }
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 134 gambar 5 17 Pointer dalam array Setelah program diperbaiki dan dicompile, maka tampilan hasil running akan tampak seperti gambar dibawah ini : gambar 5 18 hasil running Pointer dalam array
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 135 5.6 Kesimpulan dan Saran 5.6.1 KESIMPULAN Suatu variabel yang bertipe pointer tidaklah berisi data melainkan alamat suatu data. Tipe variable pointer sama dengan tipe yang dikenal oleh variable biasa, misalnya int, float, char dan sebagainya. nama dari variabel pointer juga mengikuti ketentuan nama variable biasa. perbedaan variabel pointer dengan variable biasa yaitu penggunaan tanda asterisk (*) didepan nama varibel pada waktu deklarasi. 5.6.2 SARAN Penggunaan pointer pada proses program harus benar-benar diperhatikan. Sedikit saja kesalahan dalam menggunakan pointer akan mengakibatkan kesalahan fatal pada program. Karena pointer bisa langsung menunjukan pada lokasi memori, apabila lokasi yang ditunjuk salah, berarti data yang diambil juga akan salah, dan sudah tentu program anda akan menjadi salah juga. BAB VI
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA STACK (TUMPUKAN) Oleh Nama: RINI IDRIS NPM: 07352211020 PROGRAM STUDI INFORMATIKA FAKULITAS TEKNIK UNIVERSITAS KHAIRUN TERNATE 2023
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 137 BAB VI STACK (TUMPUKAN) 6.1 PENDAHULUAN Penggunaan stack atau tumpukan merupakan salah satu komponen penting untuk menjalankan proses penanganan suatu data di samping hal lain seperti Queue (antrian) linked list dan tree. stack adalah suatu koleksi atau kumpulan item data yang terorganisasi dalam bentuk urutan unsur, di mana saat operasi penambahan dan penghapusan datanya selalu dilakukan pada bagian akhir data, yang disebut dengan top of stack. stack merupakan suatu koleksi data dalam komputasi, untuk meletakkan sebuah elemen pada bagian atas dari stack, maka kita melakukan push,dan untuk memindahkan dari tempat yang di atas dari stack. maka kita lakukan push, dan untuk memindahkan dari tempat yang di atas tersebut,kita lakukan pop. Karakteristik penting stack adalah bersifat (ifo clast in firs out) artinya data yang terakhir masuk merupakan data yang keluar terlebih dahulu. kita asumsikan saja misalnya memasukkan data alfabet secara urut dari a sampai e (a-b-c-d-e). kemudian ingin mengeluarkan alfabet b, maka yang harus dilakukan adalah mengeluarkan alfabet C, d, dan C secara berurut sehingga akhirnya dapat mengakses b.stack juga bisa digunakan dalam mengontrol operasi dalam sebuah operasi. selain itu stack juga merupakan algoritma yang baik yang dapat digunakan untuk membuat phaser (membaca urutan operasi dari sebuah persamaan matematika). pada penghitungan aritmatika, notasi intinya adalah notasi yang menampilkan operator di tengah operand. sedangkan notasi positiuc'x adalah operasi yang
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 138 menempatkan operator setelah dua operand. Stack juga merupakan tipe data abstrak yang umum digunakan pada sebuah pemograman komputer. Program stack, untuk mengimplementasikan stack di C++ kita membutuhkan tiga method atau fungsi push (): untuk menambahkan data ke tumpukan,pop (): untuk mengeluarkan data dari tumpukan dan print stack () untuk menampilkan data yang ada di tumpukan. selain untuk tiga fungsi tersebut, kita akan membuat dua fungsi opsional untuk mengecek apakah tumpukan kosong Empty () dan tumpukan penuh is pull(). untuk untuk menyimpan data kita bisa menggunakan empty array dengan maksimum array yang akan yang nanti akan kita definisikan sebagai maksimum tumpukan. Agar data tumpukannya terstruktur kita bisa menggunakan struch sehingga lebih mudah mengakses data top dan array datanya sendiri seperti sebuah object, karena ini adalah program konsole maka tentu kita akan membuat fungsi main (). 6.2 TUJUAN PRAKTIKUM a. Memahami Konsep Stack b. Mempraktekkan cara Penggunaan STACK dalam C++ 6.3 LANGKAH-LANGKAH PRAKTIKUM a. Bukalah aplikasi Dev C++ melalui start menu
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 139 gambar 6 1 Tampilan aplikasi Dev C++ b. Tampilan awal tampak seperti gambar dibawah ini : gambar 6 2 Tampilan awal Dev C++ c. Buatlah program baru dengan cara file-new-source atau gunakan Ctrl – N atau seperti pada gambar dibawah ini :
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 140 gambar 6 3 Membuat projek baru d. Ketik source code programnya seperti gambar dibawah ini : gambar 6 4 Struktur code C++
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 141 gambar 6 5 Struktur code C++ e. Setelah menulis sourcenya, tekan compile and run seperti gambar di bawah ini : gambar 6 6 Proses compile f. Akan muncul dialog untuk menyimpan program. Berikan nama sesuai dengan keinginan kalian. Missal “Variabel dan Konstanta” kemudian save dengan ekstensi “Cpp”. gambar 6 7 Proses Penyimpanan g. Setelah klik save, akan muncul jendela yang menampakkan hasil program menghitung luas, keliling, dan jari – jari lingkaran yang telah dibuat.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 142 gambar 6 8 Hasil running h. Anda telah berhasil membuat program menghitung luas, keliling, dan jari – jari lingkaran dengan bahasa pemrograman C++ menggunakan Dev C++. 6.4 LATIHAN KEGIATAN PRAKTIKUM Buatlah program baru dengan cara file-new-source atau gunakan CTRL+N kemudian ketik source atau gunakan CTRL+N , kemudian ketik source code seperti dibawah ini : /*Program of stack using array*/ #include<stdio.h> #include<stdlib.h>
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 143 #include<conio.h> #define MAX 5 int top=-1; int stack_arr[MAX]; void push(); void pop(); 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");
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 144 printf("Enter your choice:"); scanf("%d",&choice); switch(choice) { case 1: push(); break; case 2: pop(); break; case 3: display(); break; case 4: exit(1); default:
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 145 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;
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 146 } } void pop() { if(top==-1) printf("Stack Underflow\n"); 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");
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 147 else{ printf("\nStack elements:\n"); for(i=top;i>0;i--) printf("%d\n",stack_arr[i]); } } Compile dan perbaiki sampai benar.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 148 gambar 6 9 Source code latihan 1 gambar 6 10 source code latihan 1
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 149 gambar 6 11 tampilan hasil running latihan 1
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 150 6.5 STUDI KASUS Berikut Flowchart “Stack” gambar 6 12 Flowchart 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. Berikut Source Code “Stack”:
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 151 #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");
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 152 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();
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 153 } 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;
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 154 if(top == NULL) printf("Stack is empty!!\n"); 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");
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 155 while(temp != NULL) { printf("\n ____\n"); printf("|%4d|",temp->data); temp = temp->link;} } } Compile dan perbaiki sampai benar gambar 6 13 source code stack
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 156 gambar 6 14 source code stack gambar 6 15 source code stack
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 157 gambar 6 16 tampilan hasil running stack gambar 6 17 tampilan hasil running stack
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 158 6.6 KESIMPULAN DAN SARAN 6.6.1. Kesimpulan Penggunaan stack atau tumpukan merupakan salah satu komponen penting untuk menjamin proses pemograman suatu data. Di samping hal lain seperti Queue (antrian),Linked lise dan tree. stuck adalah suatu koleksi atau tumpukan item data yang terorganisasi dalam bentuk urutan linear. karakteristik penting stack adalah bersifat lifo (last in first our ) artinya data yang terakhir masuk merupakan data yang keluar terlebih dahulu. start juga merupakan tipe data abstrak yang umum digunakan pada seluruh pemograman komputer. 6.6.2. Saran Dalam sebuah program untuk neng implementasikan program stack kita membutuhkan tiga method atau fungsi yaitu push (), pop (), dan print stack (). Selain tiga fungsi tersebut kita akan membuat dua fungsi optimal untuk mengecek apakah tumpukan kosong (is empty () ) dan tumpukan penuh (is full ()).
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA BAB VII QUEUE (ANTRIAN) Oleh Nama: RINI IDRIS NPM: 07352211020 PROGRAM STUDI INFORMATIKA FAKULITAS TEKNIK UNIVERSITAS KHAIRUN TERNATE 2023
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 159 BAB VII QUEUE (ANTRIAN) 7.1 PENDAHULUAN Queue atau antrian merupakan suatu kumpulan data yang memiliki head/front, dimana data yang memiliki head/front dikeluarkan (dequeue) dan trail /rear dimana data dimasukkan (engqeueu) ke antrian. Proses queue, seperti halaya pada antrian yang biasa kita lakukan sehari-hari,dimanapun Antria dimulai dari depan ke belakang, Jika didepan pergimeninggalkan antrian maka antrian terus bertambah dari belakang dan antrian paling belakang disini dinamakan rear/fail. Jadi selama antrian terus bertambah (enqueue) maka antrian yang paling akhir adalah tail/rear. Jika ada yang keluar dari antrian (dequeue) maka data tersebut adalah yang paling depan (head/front), dan data berikutnya setelah data yang keluar berubah menjadi yang paling depan (head/front). Queue juga munggunakan metode FIFO, dimana yang masuk pertama kali akan keluar pertama kali juga. Program Queue, untuk mengimplementasikan program queue di C++ kita membutuhkan tiga metode atau fungsi enqueue (); Lintuk menambahkan data ke antrian, dequeue(); untuk mengeluarkan data dari antrian dan Print Queue ( untuk menampilkan queue. Selain tiga fungsi tersebut, kita akan membuat dua fungsi opsional untuk mengecek apakah antrian kosong is Empty() dan antrian penuh is Full (). Untuk menyimpan data kita bisa menggunakan Struct Sahingga lebih mudah mengakses data front rear dan array datanya sendiri seperti sebuah object, ini merupakan data antrian yang terstruktur. Menggunakan Empty array
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 160 dengan maksimun array yang nanti akan kita definisikan sebagai maksimun antrian, jadi kita bisa mengetahui indeks pertama adalah front dan data indeks yang kosong untuk menambahkan data sebagai rearnya, penjelasan tersebut merupakan untuk menyimpan data Queue. Kode program Queue terdiri dari : preprocessor dan header file, struct data, memeriksa antrian, menampilkan antrian, input data ke antrian, mengambil data antrian, dan menampilkan menu, yang pertama pada preprocessor dan header file disini hanya menggunakan dua baris preprocessor untuk mendefinisikan header file iostream untuk Standard input/output Stream dan MAX untuk maksimum data array pada queue/ antrian. Yang ke dua ada Struct data, pada Struct data kita mendaklarasikan Front, rear, dan array data [] dengan jumlah array dari data maksimum yang telah di definisikan sebelumnya yaitu yang talah di definisikan sebelumnya yakni MAX. Deklarasi variabel pada Struct sama halaya dengan pendeklarasian variaber pada umumnya, karena disini kita hanya memiliki tipe data yang sama, jadi kita bisa menghemat baris dengan mengebariskan tiga variabel bertipe integer. Memeriksa antrian, Fungsi ini akan digunakan untuk memeriksa apakah antrian penuh is full () (Fungsi pertama) dan antrian kosong is Empty (), keduanya mengembalikan nilai Boolean, jadi kita cukup mengembalikan nilai perbandingan pada fungsi masing-masing. 7.2 TUJUAN PRAKTIKUM a) Memahami konsep Queue b) Mempraktekkan cara penggunaan Queue dalam C++
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 161 7.3 LATIHAN KEGIATAN PRAKTIKUM a. Latihan 1 Queue dalam Array Buatlah program baru dengan cara klik Ctrl – N kemudian ketik source code programnya seperti 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() {
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 162 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 :
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 163 dequeue(); break; case 3: display(); break; case 4: exit(1); default: printf("PILIHAN TIDAK TERSEDIA\n"); } } getch(); }
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 164 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; queue_arr[rear] = added_item ; } }
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 165 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()
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 166 { int i; if (front == -1) printf("Queue is empty\n"); else { printf("Queue is :\n"); for(i = front; i <= rear; i++) printf("%d ",queue_arr[i]); printf("\n"); } } Compile dan perbaiki sampai benar
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 167 gambar 7 1 Source code latihan 1 queue dalam arr
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 168 gambar 7 2 Source code latihan 1 queue dalam array gambar 7 3 Source code latihan 1 queue dalam array
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 169 Setelah program diperbaiki dan dicompile, maka tampilan hasil running akan tampak seperti gambar dibawah ini : gambar 7 4 Tampilan hasil running latihan 1 queue dalam array gambar 7 5 Tampilan hasil running latihan 1 queue dalam array
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA REKAYASA PERANGKAT LAB LUNAK | TEKNIK INFORMATIKA UNKHAIR 170 7.4 STUDI KASUS Berikut Algoritma “Queue”: 1. Mulai 2. Input menu 3. Masukkan kondisi switch choice() 4. Masukkan data yang akan digunakan sebagai tempat pengolahan di dalam stroge 5. Masukkan data pada kondisi swtich choice () (Case 1, Case 2, display) 6. Cetak data dari setiap kondisi 7. Selesai Berikut Flowchart “Queue”: