The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

ALGORITMA BAB I,II,III,IV,V,VI,VII-DEA REVANANDA

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by Dea Revananda, 2023-01-20 22:51:14

ALGORITMA BAB I,II,III,IV,V,VI,VII-DEA REVANANDA

ALGORITMA BAB I,II,III,IV,V,VI,VII-DEA REVANANDA

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 133 b. ketik source kode pada programnya #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; int temp; while(1) { printf("| Nama : Dea Revananda |\n"); printf("| NPM : 07352211027 |\n"); printf("| Judul: Stack |\n"); printf(" ----------------------------- \n"); printf("\n1.Push\n"); printf("2.Pop\n");


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 134 printf("3.Display\n"); printf("4.Quit\n\n"); printf("Enter your choice : "); scanf("%d",&choice); switch(choice){ case 1 : push(); getch(); system("cls"); break; case 2: pop(); getch(); system("cls"); break; case 3: display(); break; 30; case 4: exit(0); default:


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 135 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; temp->link = top; top = temp; printf(" Node has been inserted at Top(Front) Successfully !!\n"); } } void pop(){


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 136 NODE *temp; if(top == NULL){ printf("Stack is empty!!\n"); } else { temp = top; printf("Popped data : %d\n", temp->data); top = top->link; free(temp); } } void display(){ NODE *temp; if(top == NULL){ printf("Empty Stack !!!\n"); } else{ temp = top; printf("Stack : \n"); while(temp != NULL){ printf("\n ____\n"); printf("|%4d|",temp->data);


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 137 temp = temp->link; } } getch(); system("cls"); } c. compile programnya dengan menekan F9 Gambar 6.11 Compile


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 138 Gambar 6.12 Lanjutan Compile Gambar 6.13 Lanjutan Compile


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 139 Gambar 6.14 Lanjutan Compile d. jalankan proframnya dengan menekan F10 Gambar 6.15 Hasil Running


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 140 Gambar 6.16 Lanjutan Hasil Running Gambar 6.17 Lanjutan Hasil Running Gambar 6.18 Lanjutan Hasil Running e. Simpan file dengan nama praktikum


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 141 6.5 Kesimpulan Dan Saran 6.5.1 Kesimpulan Stack adalah sebuah kumpulan data dimana data yang diletakkan di atas data yang lain. Dengan demikian stack adalah struktur data yang menggunakan konsep LIFO (Last In First Out). Dengan demikian, elemen terakhir yang disimpan dalam stack menjadi elemen pertama yang diambil. 6.5.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 143 BAB VII QUEUE 7.1 Pendahuluan 7.1.1 Queue Queue (Antrian) adalah suatu bentuk khusus dari List Linier dengan operasipenyisipan (insertion) hanya diperbolehkan pada salah satu sisi, yang disebut sisibelakang (REAR), dan operasi penghapusan (deletion) hanya diperbolehkan pada sisiyang lainnya. Queue merupakan kumpulan data dengan penambahan data hanyamelalui satu sisi, yaitu belakang (tail) dan penghapusan data hanya melalui sisi depan(head). Berbeda dengan stack yang bersifat LIFO maka queue bersifat FIFO (First InFirst Out), yaitu data yang pertama masuk akan keluar terlebih dahulu dan data yang terakhir masuk akan keluar terakhir. Hal yang perlu diingat : 1. Queue disebut juga antrian dimana data masuk di satu sisi dan keluar di sisi yang lain. 2. Queue bersifat FIFO (First In First Out). Elemen yang pertama kali masuk ke dalam queue disebut elemen depan (front/head of queue), sedangkan elemen yang terakhir kali masuk ke queue disebut elemen belakang(rear/tail of queue). Perbedaan antara stack dan queue terdapat pada aturanpenambahan dan penghapusan elemen. Pada stack, operasi penambahan danpenghapusan elemen dilakukan di satu ujung. Elemen yang terakhir kali dimasukkanakan berada paling dekat dengan ujung atau dianggap paling atas sehingga padaoperasi penghapusan, elemen teratas tersebut akan dihapus paling awal, sifat demikiandikenal dengan LIFO. Pada queue, operasi tersebut dilakukan di tempat yang


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 144 berbeda.Penambahan elemen selalu dilakukan melalui salah satu ujung, menempati posisi dibelakang elemen‐elemen yang sudah masuk sebelumnya atau menjadi elemen paling belakang. Sedangkan penghapusan elemen dilakukan di ujung yang berbeda, yaitu pada posisi elemen yang masuk paling awal atau elemen terdepan. Sifat yang demikiandikenal dengan FIFO. 7.2 Tujuan Praktikum a. Memahami konsep Queue b. Mempraktikan cara penggunaan Queue dalam C++ 7.3 Latihan Kerja Praktikum 7.3.1 Buatlah Program Queue Dalam Array 1. Buatlah program baru dengan cara File – menu – source atau gunakan CTRL + N 2. Selanjutnya ketik source 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;


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 145 int queue_arr[MAX]; void enqueue(); void dequeue(); void display(); main(){ int choice; while(1){ printf("| Nama : Dea Revananda |\n"); printf("| NPM : 07352211027 |\n"); printf("| Judul: Queue |\n"); printf(" ----------------------------- \n"); if (rear == MAX - 1 & front == 0){ printf("\n QUEUE IS FULL\n"); } else if (front == -1){ printf("\n QUEUE IS EMPTY\n"); } else { printf("\n PLEASE INSERT/DELETE DATA\n"); } printf("\n 1. Insert\n"); printf(" 2. Delete\n");


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 146 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(); break; case 4: exit(1); default: printf(" PILIHAN TIDAK TERSEDIA\n"); } getch(); system("cls"); }


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 147 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; queue_arr[rear] = added_item ; } } void dequeue(){ if (front == -1){ printf(" Queue Underflow\n"); } else{


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 148 printf(" Element deleted from queue is : %d\n", queue_arr[front]); front = front + 1; if (front > rear){ front = rear= -1; } } } void display(){ int i; if (front == -1){ printf(" Queue is empty\n"); } else{ printf(" Queue is :\n\n"); printf("front ->"); for(i = front; i <= rear; i++){ printf(" [%d",queue_arr[i]); printf("] "); } printf("-> rear"); } }


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 149 3. Compile program dengan menekan F9 Gambar 7.1 Compile


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 150 Gambar 7.2 Lanjutan Compile Gambar 7.3 Lanjutan Compile


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 151 Gambar 7.4 Lanjutan Compile 4. Running programnya dengan menekan F11 Gambar 7.5 Running menambahkan data antrian


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 152 Gambar 7.6 Running menambahkan data antrian sampai max Gambar 7.7 Running data antrian Gambar 7.8 Running setelah satu data dikeluarkan


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 153 7.4 Study Kasus 7.4.1 Latihan Hasil Kerja Praktikum 1. Tools yang digunakan Dev C++ 2. Buatlah program Queue 3. Flowchart Gambar 7.9 flowchart Penjelasan:


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 154 Program dimulai dengan mendeklarasikan variabel data dengan tipedata integer. Dan mendeklarasikan *link dengan struct node. Dan mendeklarasikan NODE *front, *rear = NULL. Lalu program memanggil fungsi enqueue(), dequeue(), dan display(). Kemudian mendeklarasikan variabel choice = 1 dengan tipedata integer. Kemudian masuk proses penginputan nilai ke variabel choice. Kemudian masuk ke seleksi syarat jika inputan yang diterima adalah 1 maka jalankan fungsi enqueue(). Jika inputan yang diterima adalah 2 maka jalankan fungsi dequeue(). Jika inputan yang diterima adalah 3 maka jalankan fungsi display(). Jika inputan yang diterima adalah 4 maka program selesai. Jika inputan yang diterima selain dari syarat di atas maka tampilkan “pilihan tidak tersedia” lalu program akan melakukan perulangan secara terus menerus ke proses inputan nilai choice 4. Langkah-langkah praktikum a. Bukalah software Dev C++ Gambar 7.10 jendela kerja Dev C++ b. Ketik source kode programnya #include <stdlib.h>


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 155 #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) { printf("| Nama : Dea Revananda |\n"); printf("| NPM : 07352211027 |\n"); printf("| Judul: Queue |\n"); printf(" ----------------------------- \n"); printf("\n 1.Push\n"); printf(" 2.Pop\n"); printf(" 3.Display\n"); printf(" 4.Quit\n\n"); printf(" Enter your choice : ");


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 156 scanf("%d",&choice); switch(choice){ case 1 : enqueue(); break; case 2: dequeue(); break; case 3: display(); break; case 4: printf(" === PROGRAM QUEUE SELESAI ==="); exit(0); default: printf("\n PILIHAN TIDAK TERSEDIA\n"); } getch(); system("cls"); } getch(); }


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 157 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("\n Memory Allocation Failed"); } else{ temp ->data = info; temp ->link = NULL; if (front == NULL){ front = rear = temp; } else{ rear ->link = temp; rear = temp; }


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 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);


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 159 } } void display() { NODE *temp; if (front == NULL){ printf("\n Empty Queue\n"); } else { temp = front; printf("\n Front->"); while (temp) { printf("[%d]->", temp->data); temp = temp->link; } printf("Rear\n"); } } c. Compile program dengan menekan F9


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 160 Gambar 7.11 Compile


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 161 Gambar 7.12 Lanjutan Compile Gambar 7.13 Lanjutan Compile


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 162 Gambar 7.14 lanjutan compile d. Jalankan programnya dengan menekan F10 Gambar7.15 Hasil Running


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 163 Gambar 7.16 Hasil Running Gambar 7.17 Hasil Running


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 164 Gambar 7.18 Hasil Running Gambar 7.19 Hasil Running e. Simpan file dengan nama praktikum


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 165 7.5 Kesimpulan Dan Saran 7.5.1 Kesimpulan Queue (Antrian) adalah suatu bentuk khusus dari List Linier dengan operasipenyisipan (insertion) hanya diperbolehkan pada salah satu sisi, yang disebut sisibelakang (REAR), dan operasi penghapusan (deletion) hanya diperbolehkan pada sisiyang lainnya. Queue merupakan kumpulan data dengan penambahan data hanyamelalui satu sisi, yaitu belakang (tail) dan penghapusan data hanya melalui sisi depan(head). Berbeda dengan stack yang bersifat LIFO maka queue bersifat FIFO (First InFirst Out), yaitu data yang pertama masuk akan keluar terlebih dahulu dan data yang terakhir masuk akan keluar terakhir. 7.5.2 Saran Di harapkan agar dapat memahami dengan betul mengenai materi queue ini. Serta dapat mempraktikan sendiri dan juga menyelesaikan studi kasus lainnya.


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 167 DAFTAR PUSTAKA Uce, I dan Yunianita, R. 2020. “Algoritma Dan Pemrograman Dalam Bahasa C++”. https://press.umsida.ac.id/index.php/umsidapress/article/view/978-623-6833-67- 4/759 (Diakses pada 29 November 2022). Aditya. 2021. “Struktur Dasar C++”.https://www.academia.edu/18830434/Struktur_dasar_c_ (Diakses pada 29 November 2022). Andy, N. 2020. “Mengenal 6 Tipe Struktur Data Dalam Pemrograman” https://qwords.com/blog/apa-itu-struktur-data/ (Diakses pada 4 Desember 2022). Tedy, S. 2020. “Struktur Dasar C++”. http://gdpengetahuan.blogspot.com/2017/04/strukturdasar-c.html?m=1 (Diakses pada 4 Desember 2020). Mukti, W. 2019. “Pemrograman Dasar Variabel, Konstanta dan Tipe Data”. https://www.academia.edu/44211786/Pemrograman_Dasar_Variabel_Konstanta_da n_Tipe_Data (Diakse pada 6 Desember 2022). Masirwin, A. 2016. “Struktur Dasar Algoritma”. https://masirwin.com/struktur-dasaralgoritma/ (Diakse pada 12 Desember 2022). Uchta. 2022. “Pemrograman C++ Bab 12 Array”. https://www.academia.edu/35362129/Pemograman_C_Bab_12_Array_pdf (Diakses pada 20 Desember 2022). Fajar. 2019. “Pointer”. https://www.belajarcpp.com/tutorial/cpp/pointer/ (Diakses pada 20 Desember 2022). Bundet. 2020. “Pengertian Pointer Dalam C++”. https://bundet.com/d/995-pengertianpointer-dalam-c (Diakses pada 20 Desember 2022).


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 168 Dwi, Y. 2021. “Program Stack Dengan Menggunakan Bahasa Pemrograman C++”. https://www.academia.edu/30019746/C_Stack_pdf (Diakses pada 22 Desember 2022). Ripaldi, K. 2020. “Struktur Data Queue”. https://www.academia.edu/43671713/Struktur_Data_Queue_C_ (Diakses pada 23 Desember 2022).


Click to View FlipBook Version