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

Laporan Praktikum Algoritma Dan Struktur Data

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by Fitri Angriyani A., 2023-01-17 05:58:40

Laporan Praktikum Algoritma Dan Struktur Data

Laporan Praktikum Algoritma Dan Struktur Data

| ALGORITMA DAN STRUKTUR DATA 138 6.5 STUDI KASUS a. Buatlah program Flowchart 6.1 study kasus


| ALGORITMA DAN STRUKTUR DATA 139 Contoh code program #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) {


| ALGORITMA DAN STRUKTUR DATA 140 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; case 4:


| ALGORITMA DAN STRUKTUR DATA 141 exit(0); default: printf("\n PILIHAN 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("\n memory allocation failled"); else {


| ALGORITMA DAN STRUKTUR DATA 142 temp->data =info; temp->link =top; top = temp; printf("node has been inserted at top(front) successfully !!\n"); } } void pop() { NODE *temp; if(top == NULL) printf("empty stack !!!\n"); else{ temp = top; printf("popped data :%d\n",temp->data); top = top->link; free(temp); } }


| ALGORITMA DAN STRUKTUR DATA 143 void display() { NODE *temp; if(top == NULL) { printf("empty stack !!!\n"); } else{ temp = top; printf("\n stack \n"); while(temp != NULL) { printf("\n__\n"); printf("|%4d|",temp->data); temp = temp->link; } } }


| ALGORITMA DAN STRUKTUR DATA 144 Gambar 6.20 Source Code Studi Kasus 1 Compile dan perbaiki program sampai benar


| ALGORITMA DAN STRUKTUR DATA 145 Gambar 6.21 Source Code 1 Studi Kasus Gambar 6. 22 Source Code 1 Studi Kasus


| ALGORITMA DAN STRUKTUR DATA 146 Gambar 6. 23 Source Code 1 Studi Kasus Setelah program diperbaiki serta dicompile maka tampilan hasil running akan seperti gambar di bawah ini:


| ALGORITMA DAN STRUKTUR DATA 147 Gambar 6.24 Hasil Running Studi Kasus 1


| ALGORITMA DAN STRUKTUR DATA 148 6.6 KESIMPULAN DAN SARAN A. Kesimpulan Stack merupakan suatu tumpukan dari benda. Konsep utamanya adalah LIFO (Last In First Out), benda yang terakhir masuk dalam stack akan menjadi benda pertama yang dikeluarkan dari stack. Tumpukan dianggap juga “Push Down Stack” yaitu penambahan elemen baru (PUSH) dan penghapusan elemen dari tumpukan (POP). B. Saran Pada laporan ini masih banyak keslahan dan kekurangan dalam penulisan karena terbatasnya pengetahuan dan reverensi materi pada laporan ini, tetapi yang harus tetap di ingat bahwa dalam pengunaan stack dimana suatu urutan elemen yang elemennya dapat diambil dan ditambah hanya pada posisi akhir (top) saja.s


| ALGORITMA DAN STRUKTUR DATA 149


| ALGORITMA DAN STRUKTUR DATA 150 LAPORAN PRAKTIKUM BAB VII QUEUE NAMA : FITRI ANGRIYANI ALAMSYAH NPM : 07352211073 PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS KHAIRUN TERNATE 2022


| ALGORITMA DAN STRUKTUR DATA 151 Gambar 7.1 Queue BAB VII QUEUE 7.1 PENDAHULUAN Queue merupakan struktur data linier yang menerapkan prinsip operasi dimana elemen data yang masuk pertama akan keluar lebih dulu. Prinsip ini dikenal dengan istilah FIFO (First In, First Out). truktur data queue disusun secara horizontal serta terbuka di kedua ujungnya. Ujung pertama (head) digunakan buat menghapus data sedangkan ujung lainnya (tail) dipergunakan buat menyisipkan data. Persamaan antara stack serta queue adalah keduanya dapat diimplementasikan menggunakan struktur data linked list atau array. Pada gambar di atas, karena elemen 1 ditambahkan ke antrian lebih dulu daripada 2, maka 1 merupakan elemen yang pertama dihapus dari antrian. Hal ini mengikuti aturan operasi FIFO. Pada istilah pemrograman, menempatkan item dalam struktur data queue disebut enqueue, sedangkan operasi menghapus item dari queue disebut dequeue. Operasi-operasi Dasar pada Queue, merupakan struktur data abstrak (ADT) yang memungkinkan operasi berikut: 1.`Enqueue: Menambahkan elemen ke akhir antrian 2. Dequeue: Menghapus elemen dari depan antrian 3. IsEmpty: memeriksa apakah antrian kosong 4. IsFull: memeriksa apakah antrian telah penuh


| ALGORITMA DAN STRUKTUR DATA 152 5. Peek: mendapatkan nilai bagian depan antrian tanpa menghapusnya 6. Initialize: membuat antrian baru tanpa elemen data (kosong) namun, secara umum antrian memiliki 2 operasi utama, yaitu enqueue serta dequeue. 7.2 TUJUAN PRAKTIKUM a. Memahami Konsep Queue. b. Mempraktikan Cara Penggunaan Queue Dalam C++. 7.3 LANGKAH-LANGKAH KEGIATAN PRAKTIKUM a. Bukalah aplikasi Dev C++ melalui start menu Gambar 7.2 Tampilan Aplikasi Dev C++


| ALGORITMA DAN STRUKTUR DATA 153 Gambar 7.3 Tampilan Awal Dev C++ Gambar 7.4 Membuat Projek Baru b. Tampilan awal Dev C++ seperti gambar dibawah ini : c. Membuat program baru dengan cara File-New-Source File atau bisa klik Ctrl-N pada kayboard, seperti pada gambar di bawah:


| ALGORITMA DAN STRUKTUR DATA 154 d. Ketik source code pemograman, seperti tampilan gambar dibawah ini: Gambar 7.5 Struktur Code C++


| ALGORITMA DAN STRUKTUR DATA 155 Gambar 7.6 Struktur Code C++ Gambar 7.7 Struktur Code C++


| ALGORITMA DAN STRUKTUR DATA 156 Gambar 7.8 Struktur Code C++ Gambar 7.9 Proses Penyimpanan e. Setelah membuat Source Code, simpan projek dengan File-Save atau Ctrl-S pada kayboardn dan tulis nam projek sesuai ke ingin kamu, seperti gambar di bawah ini


| ALGORITMA DAN STRUKTUR DATA 157 Gambar 7.10 Proses Compile f. Setelah File disimpan, langkah selanjutnya tekan Compile and Run atau Ctrl-11 pada kayboard, seprti gambar di bawah ini: g. Setelah itu akan muncul jendela yang menampilkan hasil program ynag telah dibuat Gambar 7.11 Tampilan Hasil Running Gambar 7.12 Tampilan Hasil Running


| ALGORITMA DAN STRUKTUR DATA 158 Gambar 7.13 Tampilan Hasil Running


| ALGORITMA DAN STRUKTUR DATA 159 Flowchart 7.1 latihan 1 7.4 LATIHAN KEGIATAN PRAKTIKUM a. Latihan 1 Buatlah program latihan 1 Berikut flowchart


| ALGORITMA DAN STRUKTUR DATA 160 Membuat program baru dengan cara File – New – Source File atau gunakan Ctrl-N pada kayboard. Kemudian ketik Source Code program seperti berikut ini: #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() { 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();


| ALGORITMA DAN STRUKTUR DATA 161 break; case 2 : dequeue(); break; case 3: display(); 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; queue_arr[rear] = added_item ;


| ALGORITMA DAN STRUKTUR DATA 162 } } 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++) printf("%d ",queue_arr[i]); printf("\n"); }


| ALGORITMA DAN STRUKTUR DATA 163 } Compile dan run, lalu perbaiki program hingga benar Gambar 7.14 source code Latihan 1


| ALGORITMA DAN STRUKTUR DATA 164 Gambar 7.15 source code Latihan 1


| ALGORITMA DAN STRUKTUR DATA 165 Gambar 7.16 source code Latihan 1 Setelah program diperbaiki serta dicompile maka tampilan hasil running akan seperti gambar di bawah ini:


| ALGORITMA DAN STRUKTUR DATA 166 Gambar 7.17 Hasil Running Pointer Konstanta


| ALGORITMA DAN STRUKTUR DATA 167 Flowchart 7.2 study kasus 7.5 STUDI KASUS Buatlah program studi kasus 1 Berikut flowchart


| ALGORITMA DAN STRUKTUR DATA 168 Penjelasan : Flowchart di atas dimulai memakai simbol terminal, kemudian dilanjutkan dengan mengimput variabel queue. Setelahnya masukan kedalam sistem atau proses switch untuk mmemasuki kasus atau pilhan yang di berikan [enqueue, dequeue, display, exit, dan default jika PILIHAN TIDAK TERSEDIA] ,Dan diakhiri dengan simbol terminal, selesai. Membuat program baru dengan cara File – New – Source File atau gunakan Ctrl-N pada kayboard. Kemudian ketik Source Code program seperti berikut 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(); void dequeue(); void display(); int main()


| ALGORITMA DAN STRUKTUR DATA 169 { 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(); break;


| ALGORITMA DAN STRUKTUR DATA 170 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));


| ALGORITMA DAN STRUKTUR DATA 171 if (temp == NULL) printf("\nMemory Allocation Failed"); else { 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()


| ALGORITMA DAN STRUKTUR DATA 172 { 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);


| ALGORITMA DAN STRUKTUR DATA 173 free(temp); } } void display() { NODE *temp; if (front == NULL) printf("Empty Queue\n"); else { temp = front; printf("Front->"); while (temp) { printf("[%d]->", temp->data); temp = temp->link; } printf("Rear\n"); }


| ALGORITMA DAN STRUKTUR DATA 174 } Compile dan perbaiki program sampai benar Gambar 7.18 Source Code study kasus 1


| ALGORITMA DAN STRUKTUR DATA 175 Gambar 7.19 Source Code study kasus 1 Gambar 7.20 Source Code study kasus 1


| ALGORITMA DAN STRUKTUR DATA 176 Gambar 7.21 Source Code study kasus 1 Setelah program diperbaiki serta dicompile maka tampilan hasil running akan seperti gambar di bawah ini Gambar 7.22 Hasil Running study kasus 1


| ALGORITMA DAN STRUKTUR DATA 177 Gambar 7.23 Hasil Running study kasus 1


| ALGORITMA DAN STRUKTUR DATA 178 7.6 KEAIMPULAN DAN SARAN A. Kesimpulan Dapat diartikan bahwa Queue (antrian) merupakan barisan elemen yang apabila elemen ditambah maka penambahannya berada pada posisi belakang (rear) dan Bila dilakukan pengambilan elemen dilakukan pada elemen paling depan (front). oleh sebab itu, queue bersifat FIFO (first in first out). B. Saran Di harapkan bisa dapat memahami dengan betul tentang materi queue ini. Serta dapat mempraktikan sendiri dan dapat menyelesaikan studi kasus lainya.


| ALGORITMA DAN STRUKTUR DATA 179


Click to View FlipBook Version