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

ebook ini adalah ebook laporan algoritma dan struktur data semester 1.

nama ; ardi salman
npm ; 07352211021
kelas ; 1 if1

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by ardi.salman2005, 2023-01-18 22:28:59

ebook laporan praktikum algoritma dan struktur data

ebook ini adalah ebook laporan algoritma dan struktur data semester 1.

nama ; ardi salman
npm ; 07352211021
kelas ; 1 if1

Keywords: laporan praktikum algoritma dan struktur data,algoritma semester 1

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 194 #include <conio.h> #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;


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


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 196 if(IsFull()==0) { 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; }


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 197 void Clear() { 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;


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


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 199 Enqueue(data); 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 I TEKNIK INFORMATIKA UNKHAIR 200 } getch(); } while(pil!=5); return 0; } Tampilan diDevC++ akan seperti dibawah ini: Gambar 7. 1 Tampilan source code diatas diDevC++ 1 (bagian 1)


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 201 Gambar 7. 3 Tampilan source code diatas diDevC++ 1 (bagian 2) Gambar 7. 2 Tampilan source code diatas diDevC++ 1 (bagian 3)


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 202 Gambar 7. 5 Tampilan source code diatas diDevC++ 1 (bagian 4) Gambar 7. 4 Tampilan source code diatas diDevC++ 1 (bagian 5)


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 203 7.4 Latihan Queue 7.4.1 Kasus Queue dalam Array 1 Gambar 7. 6 flowchart contoh soal queue 1


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 204 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(); void display(); main()


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 205 { 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(); break; case 4:


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 206 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; queue_arr[rear] = added_item ; }


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 207 } 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 { printf("Queue is :\n"); for(i = front; i <= rear; i++)


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 208 printf("%d ",queue_arr[i]); printf("\n"); } } Hasil eksekusi program di atas adalah sebagai berikut: Gambar 7. 7 program queue 1 (1)


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 209 Gambar 7. 8 program queue 1 (2) Gambar 7. 9 program queue 1 (3)


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 210 Gambar 7. 10 hasil running program queue 1 (1)


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 211 7.4.2 Kasus Queue 2 Gambar 7. 11 flowchart contoh soal queue 2


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 212 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; struct node *link; }


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 213 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; case 2: dequeue();


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 214 break; case 3: display(); break; case 4: exit(0); default: 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 {


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 215 temp->data = info; temp->link = NULL; if (front == NULL) { front = rear = temp; } else { 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


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 216 { 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) printf("Empty Queue\n"); else { temp = front; printf("Front->"); while (temp)


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 217 { printf("[%d]->", temp->data); temp = temp->link; } printf("Rear\n"); } } Hasil eksekusi program di atas adalah sebagai berikut: Gambar 7. 12 program queue 2 (1)


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 218 Gambar 7. 13 program queue 2 (2)


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 219 Gambar 7. 14 program queue 2 (3)


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 220 Gambar 7. 15 hasil running program queue 2 (1) Gambar 7. 16 hasil running program queue 2 (2)


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 221 7.5 Kesimpulan dan Saran 7.5.1 Kesimpulan 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. 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. Dan memahami strukturt data yang digunakan dalam antrian (queue).


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 222


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 223 DAFTAR PUSTAKA YOKYAKARTA, U. A. (2018). Algoritma Struktur Data. Algoritma Struktur Data , 2026. Ahmad muhardian. (2019, may 26). Belajar Pemrograman C #15: Apa itu Pointer? Retrieved 12 20, 2022, from Belajar Pemrograman C#15: apa itu pointer?-Petani Kode: https://www.petanikode.com/c-pointer/ Fajar . (2019, maret 4). Pointer. Retrieved 12 20, 2022, from Ponter-Belajar C++: https://www.belajarcpp.com/tutorial/cpp/pointer/ Muhammad Sholeh, Rochmat Haryanto, A. P. (2013). Panduan Belajar Pemograman Terstruktur. Universitas Amikom Yogyakarta. (2018). Algoritma Struktur Data. Diakses pada 28 November 2022, dari http://materi.amikom.ac.id/2020/10/25102020_Modul%20Teori%20Algoritma%20Struktur% 20Data.pdf Delima.Konsep Dasar Algoritma Pemrograman dan Bahasa Pemrograman. Diakses pada 28 November 2022, dari Fakultas Ilmu Tarbiyah dan Keguruan UINSU. https://osf.io/cp5zr/download/?format=pdf Nur Hidayati, M.Kom. (2016). Modul Struktur Data. Jakarta: Bina SaranaInformatika. Tersedia dari. https://repository.bsi.ac.id/index.php/unduh/item/283413/Modul_strukturData.pdf. diakses pada 29 November 2022


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 224 Budiman, Edy. (2020). Algoritma dan Pemograman. Samarinda:Fakultas Teknologi Informasi dan Komputer (FTIK) Universitas Mulawarnman. Tersedia dari https://repository.unmul.ac.id/bitstream/handle/123456789/4927/Buku%20Algoritma %20dan%20Pemrograman.pdf


Click to View FlipBook Version