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

E-Book ini adalah ebook laporan praktikum algoritma dan struktur data semester 1

Nama : Ardi Salman
Kelas : 1 IF1
NPM : 07352211021

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

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA

E-Book ini adalah ebook laporan praktikum algoritma dan struktur data semester 1

Nama : Ardi Salman
Kelas : 1 IF1
NPM : 07352211021

Keywords: laporan praktikum algoritma dan struktur data,Algoritma,Laporan Algoritma Dan struktur data,algoritma semester 1

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 127 { total = total + data[j]; } //menghitung rata - rata rata = total / 5; cout<<"rata - rata data pada array = "<<rata<<endl; getch(); } Hasil eksekusi program diatas sebagai berikut. Gambar 4. 24 Program studi kasus 2


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 128 Gambar 4. 25 Hasil program studi kasus 2 4.5.3 Contoh program array 1 dimensi 3 Berikut Flowchart : Gambar 4. 26 Flowchart program studi kasus 3


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 129 Penjelasan: Flowchart dimulai dengan simbol terminator untuk memulai program. Kemudian deklarasi variabel int data[10] = {4, 1, 0, -9, 8, 5, -1, 2, 3, -7}, int elemen, ketemu, x menggunakan simbol preparation. Selanjutnya tampilkan “Data yang dicari : “ menggunakan simbol input/outputlalu input nilai x menggunakan simbol input/output pula. Nyatakan variabel ketemu pada pernyataan ketemu=0 menggunakan simbol process. kemudian deklarasikan elemen=0 dan nyatakan variabel elemenpada penyataan elemen<=9 menggunakan simbol decision. Jika NO maka lanjut pada tahap berikut yakni pernyataan ketemu==0. Jika YES nyatakan varabel elemen pada pernyataan data[elemen]==x, jika YES maka masuk syarat ketemu=!ketemu;break; kemudian lanjut pada tahap berikut yakni pernyataan ketemu==0. Jika NO maka nyatakan variabel elemen pada pernyataan elemen=elemen+1, kemudian nyatakan kembalivariabel elemen pada pernyataan elemen<=9 sehingga terjadi proses perulangan. Jika NO maka lanjut pada tahap berikut yakni pernyataan ketemu==0. Pada pernyaaan ketemu==0, nyatakan variabel ketemu pada pernyataan ketemu==0 menggunakan simbol decision. Jika YES maka tampilkan “Data ada di elemen : “ elemen lalu gunakan simbol terminator untuk menandakan program telah selesai. Jika NO maka tampilkan “Data tidak ditemukan “lalu gunakan simbol terminator untuk menandakan program telah selesai. Program dari flowchart diatas sebagai berikut. #include<iostream> #include<conio.h> using namespace std;


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 130 int main() { int data[10] = {4, 1, 0, -9, 8, 5, -1, 2, 3, -7}; int elemen, ketemu, x; cout << "Data yang dicari : "; cin >> x; ketemu = 0; for(elemen=0; elemen<= 9; elemen++) { if (data[elemen] == x) { ketemu = !ketemu; break; } } if (ketemu == 0) cout << "Data tidak ditemukan "; else cout << "Data ada di elemen : " << elemen; getch(); } Hasil eksekusi program diatas sebagai berikut.


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 131 Gambar 4. 27 Program studi kasus 3 Hasil eksekusi program jika data ditemukan sesuai urutannya dan menampikan elemen. Gambar 4. 28 Hasil program studi kasus 3 Hasil eksekusi jika data tidak ditemukan Gambar 4. 29 Hasil program studi kasus 3


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 132 4.5.4 Contoh program Array dua dimensi Berikut Flowchart : Gambar 4. 30 Flowchart program studi kasus 4


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 133 Penjelasan: Flowchart dimulai dengan simbol terminator untuk memulai program. Deklarasi variabel. Deklarasi int matrix [3][4]={{5,10,1,11}},{{4,7,67,-9}},{9,0,45,3}}. Masukan syarat pemilihan int i=0;i<3. Jika tidak memenuhi maka proses selesai. Jika memenuhi masukan syarat pemilihan kedua int j=0;j<4 jika tidak memenuhi kembali ke proses i=i+1 lalu ke pemilihan int i=0;i<3 dan seleksi kembali. Jika sudah tidak memenuhi maka selesai. Jika seleksi kedua memenuhi tampilkan mattix [i][j] lalu proses j=j+1 dan ke seleksi j=0;j<4 jika tidak maka proses i=i+1 lalu seleksi syarat i=0;i<3 seleksi tidak memenuhi maka proses selesai. Terakhir gunakan simbol terminator untuk menandakan program telah selesai. Program dari flowchart diatas sebagai berikut. #include <iostream> #include <conio.h> using namespace std; int main() { int matrix[3][4] = {{5,10,1,11},{4,7,67,-9},{9,0,45,3}}; for (int i = 0; i<3; i++) { for (int j=0;j<4; j++) { cout<<matrix[i][j]<<" "; } cout<<endl;


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 134 } getch(); } Hasil eksekusi program diatas sebagai berikut. Gambar 4. 31 Program studi kasus 4 Gambar 4. 32 Hasil program studi kasus 4


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 135 4.6 Kesimpulan dan Saran 4.6.1 Kesimpulan Array adalah suatu struktur data berupa sejumlah data sejenis (bertipe data sama) yang jumlahnya tetap dan diberi suatu nama tertentu, elemen-elemen array tersusun secara berderet dan dapat diakses secara random di dalam memori.Array menggunakan indeks integer untuk menemukan urutan elemen-elemennya, dan juga elemen pertamanya akan dimulai dari indeks 0, dan yang kedua mempunyai indeks 1, serta seterusnya. Array dideklarasikan dibagian deklarasi variabel dibedakan menjadi dua yaitu, Array Satu Dimensi dan Array Dua Dimensi. 4.6.2 Saran Array yang akan dipergunakan harus dideklarasikan terlebih dahulu. Ketika akan mendeklarasikan array kita harus memperhatika hal-hal berikut : 1. Indeks array selalu dimulai dari 0 2. Mengetahui besaran, karena array tidak bisa diperbesar ataupun diperkecil 3. Mengetahui tipe data yang ingin dimasukan kedalam array, karena jika inputan berbeda dengan initial array maka akan terjadi error.


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


BAB V POINTER OLEH Ardi Salman 07352211021 PROGRAM STUDI INFORMATIKA FAKULTAS TEKNIK UNIVERSITASKHAIRUN TERNATE 2023


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 139 BAB V POINTER 5.1 Pengertian Pointer Pointer adalah variabel atau objek yang menunjuk ke variabel atau objek lain. Sebelumnya dijelaskan tentang variabel, “variabel adalah representasi dari alamat memori di komputer.” Dan pointer hanyalah variabel yang menyimpan alamat memori, memori bisa berasal dari variabel, objek dan lain-lain. Dengan petunjuk pointer, dimungkinkan untuk menampilkan memori, mendapatkan isi memori, dan memodifikasi konten memori yang ditentukan. Sebelum kita masuk ke tips, ada dua hal yang harus Anda ketahui. Ada dua jenis pointer yang kita gunakan, yaitu address-of (&) dan dereference operator (*). 5.2 Macam-macam Operator pada Pointer 5.2.1 Addres-of Operator (&) adalah operator yang memungkinkan kita untuk mendapatkan/melihat alamat memori yang dimiliki oleh variabel ini. Cara menggunakannya adalah dengan meletakkan tanda di depan identitas ketika variabel dipanggil. Ini menyebabkan kompiler memberikan alamat memori alih-alih konten/nilai memori. 5.2.2 Dereference operator (*) Dereference operator (*) adalah operator yang memungkinkan Anda mengambil isi/nilai memori berdasarkan alamat memori. Pointer adalah variabel yang menyimpan


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 140 alamat memori dari variabel lain. Dimungkinkan untuk mengubah nilai variabel yang ditunjukkan oleh penunjuk dan menyalinnya. Saat program sedang berjalan, kita dapat mengubah tujuan penunjuk dengan mengubahnya ke alamat memori variabel lain atau ke alamat memori yang bukan variabel. 5.3 Cara Membuat Pointer Sebuah pointer dibuat dengan awalan namanya dengan simbol * (asterik), kemudian diisi dengan alamat memori untuk digunakan sebagai referensi. Contohnya: int *pointer1 = 000001; maka *pointer1 dapat mengakses data pada alamat memori 00001. Dengan kata lain, *pointer1 menggunakan alamat 00001 sebagai referensi. Contoh: Bentuk penulisan: tipeData *identitas; //atau tipeData *identitas = &var;


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 141 Contoh penulisan: int *plnt; doble *pDouble = &myVar; Secara umum pointer sebenarnya adalah variabel, aturan untuk variabel juga berlaku untuk pointer, jadi tidak jauh berbeda dengan variabel. Pointer hanya mendapatkan sedikit perbedaan, yaitu penambahan dua operator, menjadikan variabel tersebut sebagai variabel pointer. Untuk mendefinisikan variabel pointer, kita cukup menambahkan operator dereferencing di depan identitas. Operator referensi tidak harus ditambahkan ke identitas, bisa juga setelah tipe data atau antara tipe data dan identitas. notasi yang berbeda memiliki arti yang sama, yaitu operator referensi hanya berlaku untuk satu variabel. Pointer tidak hanya berlaku pada variabel, pointer dapat di gunakan pada function, dan objek lain.caranya masih sama seperti melakukan pada variabel. 5.4 Cara mengakses Pointer Pointer adalah variabel, menggunakan pointer tidak jauh berbeda dengan menggunakan variabel. Untuk mendapatkan nilai pointer kita hanya perlu memanggil identitas pointer. Plnt Panggilan mengembalikan nilai pointer, yang merupakan alamat memori dari variabel yang ditunjuk oleh pointer. Karena pointer hanya dapat memiliki nilai berupa alamat memori, untuk mengubah nilai pointer atau mengubah tujuan pointer, kita memerlukan operator address-of (&) pada operan sumber.


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 142 plnt = &myVar operan sumber mengembalikan alamat memori myVar dan merupakan nilai yang diperlukan oleh variabel penunjuk. 5.5 Latihan praktikum Gambar 5. 1 tampilan dev C++ dan cara mulai buat program


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 143 5.5.1 Latihan 1 (pointer konstanta) Buatlah program pointer konstanta dengan cara file – new – source atau gunakan CTRL – N kemudian ketik source code program seperti dibawah ini : Berikut Flowchart pointer konstanta. Gambar 5. 2 Flowchart pointer konstanta


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 144 Penjelasan: Dimulai dengan terminator “mulai” dan header sebagai bentuk fungsinya . setelahnya di proses char const *nama= "Borland c++"; sehingga menampilkan cout<<"Nama Program ="<<nama<<endl; yang telah di clear , lalu sistem proses nama = "Visual C++";. lalu tampilkan cout<<"Nama Program ="<<nama<<endl dan di selesaikan dengan getch(); #include<conio.h> #include<iostream> using namespace std; main() { char const *nama="Borland C++"; system("cls"); cout<<"Nama Program="<<nama<<endl; nama=" Visual++"; cout<<"Nama Program"<<nama<<endl; getch(); }


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 145 Gambar 5. 3 contoh program pointer konstanta Gambar 5. 4 hasil compile program pointer konstanta


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 146 5.5.2 Latihan 2 (Pointer Variabel) Buatlah program pointer variabel dengan cara file – new – source atau gunakan CTRL – N kemudian ketik source code program seperti dibawah ini : Berikut Flowchart pointer variabel Gambar 5. 5 Flowchart pointer variabel


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 147 Penjelasan : Dimulai dengan Terminator “mulai”dan header pada umummnya. Masukan fungsi pointer int ilham, amir, *raka; dan di proses alex = 50 ;jack = alex; danu = &alex; lalu tampilkan keterangannya cout<<"Nilai Alex = "<<alex<<endl; cout<<"Nilai Jack = "<<jack<<endl; dan cout<<"Nilai Danu = "<<danu<<endl; dan di tutup dengan getch();. #include<conio.h> #include<iostream> using namespace std; main() { int Alex, Jack, *Danu; Alex= 50; Jack= Alex; Danu= &Alex; cout<<"Nilai alex="<<Alex<<endl; cout<<"Nilai jack="<<Jack<<endl; cout<<"Nilai danu="<<Danu<<endl; getch(); }


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 148 Gambar 5. 6 program pointer variabel Gambar 5. 7 hasil compile pointer variable


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 149 5.6 Studi kasus 5.6.1 Operasi aritmatika pada pointer Berikut flowchart program aritmatika : Gambar 5. 8 Flowchart program aritmatika


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 150 Penjelasan Flowchart : Dimulai dengan simbol terminal,mendeklarasi Int nilai [3], *penunjuk, nilai [0] = 100, nilai [1] = 200, nilai [2] = 300, penunjuk = &nilai [0] menggunakan simbol proses, lalu tampilkan nilai [1] ada di dalam memori penunjuk +1, dan nilai [2] ada di dalam penunjuk +2 menggunakan simbol input/output. Diakhiri dengan symbol terminal. Contoh code program program aritmatika seperti dibawah ini : #include<conio.h> #include<iostream> using namespace std; main() { int nilai[3], *penunjuk; nilai[0]=100; nilai[1]=200; nilai[2]=300; penunjuk=&nilai[0]; cout<<"Nilai"<<*penunjuk<<"ada di alamat memori"<<penunjuk<<endl; cout<<"Nilai"<<*(penunjuk+1)<<"ada di alamat memori"<<(penunjuk+1)<<endl; cout<<"Nilai"<<*(penunjuk+2)<<"ada di alamat memori"<<(penunjuk+2)<<endl;


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 151 getch(); } Compile dan perbaiki program sampai benar Gambar 5. 9 program operasi pointer aritmatika Gambar 5. 10 hasil compile pointer aritmatika


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 152 5.6.2 Pointer dalam array Berikut flowchart pointer dalam array: Gambar 5. 11 flowchart pointer dalam array


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 153 Penjelasan Flowchart : Dimulai dengan menggunakan simbol terminal, kemudian mendeklarasi Char C[4], lalu memasukkan kondisi for (int i=0; i<4; ++i) mengunakan simbol preparation, lalu print address menggunakan simbol input/output, dan akhiri menggunakan simbol terminal. Contoh code program program aritmatika seperti dibawah ini : #include<conio.h> #include<iostream> using namespace std; main() { char c[4]; int i; for(i=0;i<4;++i) { printf("Adress of c[%d]=%x\n",i,&c[i]); } getch(); }


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 154 Compile dan perbaiki program sampai benar Gambar 5. 12 program pointer dalam array Gambar 5. 13 hasil compile pointer dalam array


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 155 5.7 Kesimpulan dan Saran 5.7.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.7.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.


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


BAB VI STACK OLEH Ardi Salman 07352211021 PROGRAM STUDI INFORMATIKA FAKULTAS TEKNIK UNIVERSITASKHAIRUN TERNATE 2023


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 159 BAB VI STACK 6.1 Pendahuluan Stack adalah suatu koleksi atau kumpulan item data yang terorganisasi dalam bentuk linear, yang operasi pemasukan dan penghapusan datanya dilakukan pada salah satu sisinya. Sedangkan pengertian stack pada struktur data adalah sebagai tumpukan dari benda, sekumpulan data yang seolah-olah diletakkan di atas data yang lain, koleksi dari objek-objek homogen, atau suatu urutan elemen yang elemennya dapat diambil dan ditambah hanya pada posisi akhir (top) saja. Stack merupakan bentuk khusus dari suatu data, dimana node yang ditambahkan dalam list dan diambil dari list hanya pada kepalanya, atau dengan prinsip pengolahannya adalah last-in fisrt-out (LIFO). Pada struktur ini hanya ada dua fungsi utama, yaitu push (memasukkan node ke dalam stack), dan pop (mengambil node dari stack). Secara sederhana tumpukan bisa diartikan sebagai kumpulan data yang seolaholah diletakkan di atas yang lain. Dalam suatu tumpukan akan dapat dilakukan operasi penambahan (penyisipan) dan pengambilan (penghapusan) data melalui ujung yang sama, ujung ini merupakan ujung atas tumpukkan. Sebelum struktur data tumpukkan ini digunakkan, dideklarasikan dahulu dalam kamus data. 6.2 Latihan Kegiatan Praktikum Buatlah program baru dengan cara file – new – source atau gunakan CTRL – N kemudian ketik source code program seperti dibawah ini : #include <iostream>


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 160 #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(){ if (isfull()){ cout<<"\nTumpukan penuh" <<endl; } else { Tumpukan.top++; cout<<"\nMasukkan data ="; cin>> Tumpukan.data[Tumpukan.top];


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 161 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()){ cout<<"tTumpukan kosong"; } else{ cout<<"\nTumpukan : "; for (int i = Tumpukan.top; i >= 0; i--) cout<< Tumpukan.data[i] << ((i==0) ? "": ","); } }


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 162 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; case 2: pop(); break; case 3: cout << "bab 6 selesai" << endl; cout << "Nama :…………………." << endl; cout << "NPM : ………………….“<< endl; return 0; break;


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 163 default: cout << "pilihan tidak tersedia"<< endl; break; } system("cls"); }while("hoose !=3"); } Compile dan perbaiki program sampai benar : Gambar 6. 1 Struktur code latihan C++


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 164 Gambar 6. 2 Lanjutan struktur code latihan C++ Gambar 6. 3 Lanjutan struktur code latihan C++


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 165 Gambar 6. 4 Lanjutan struktur code latihan C++ Hasil running jika memilih pilihan pertama atau memasukan nilai ke dalam stack Gambar 6. 5 Hasil running


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 166 Hasil running jika memilih pilih kedua atau menghapus data di dalam stack (tumpukan) Gambar 6. 6 Hasil running Hasil running jika memilih pilihan ke-3 atau keluar Gambar 6. 7 Hasil running


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 167 6.3. Studi kasus 6.3.1 Studi kasus 1 Buatlah program baru dengan cara file-new-source atau gunakan CTRL+N kemudian ketik source code programnya seperti di bawah ini Gambar 6. 8 flowchart program stack


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 168 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 diurutkan top-top-1; lalu sedangkan void display(), masukan variabel int 1, jika if(top-1) maka tampikan "Stack Overflow jika tidak, maka else (printf("InStack elements in"); untuk tampilan for top; i >0; i--) printf ("%din", stack_arr[i]); kemudian diselesaikan dengan simbol terminator. Berikut code program stack seperti dibawah ini: #include <stdio.h> #include <stdlib.h> #include <conio.h> #define MAX 5 int top = -1; int stack_arr[MAX]; void push();


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 169 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"); printf("Enter your choice : "); scanf("%d",&choice); switch(choice) { case 1 : push();


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 170 break; case 2: pop(); break; case 3: display(); break; case 4: exit(1); default: printf("\nPILIHAN TIDAK TERSEDIA\n"); } } getch(); } void push() {


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 171 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"); else { printf("Popped element is : %d\n",stack_arr[top]); top = top - 1; } } void display() { int i;


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 172 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] ); }} Compile sampai benar : Gambar 6. 9 Struktur pemograman


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 173 Gambar 6. 10 Lanjutan Struktur pemograman Gambar 6. 11 Lanjutan Struktur pemograman


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 174 Gambar 6. 12 Lanjutan Struktur pemograman


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 175 Gambar 6. 13 Hasil running


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK I TEKNIK INFORMATIKA UNKHAIR 176 6.3.3 Studi kasus 2 Buatlah program baru dengan cara file-new-source atau gunakan CTRL+N kemudian ketik source code programnnya seperti dibawah : Gambar 6. 14 flowchart program stack


Click to View FlipBook Version