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 iinfaramita3108, 2023-01-18 00:25:05

Laporan Praktikum Algoritma

Laporan Praktikum Algoritma dan Struktur Data

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 84 1. Kode programnya seperti dibawah ini: #include <iostream> #include <conio.h> using namespace std; int main(){ cout<<"Nama : Iin Faramita Ode Hama"<<endl; cout<<"NPM : 07352211051"<<endl; cout<<""<<endl; //inisialisasi array // int ujian[5]= {90,95,78,85}; int ujian[5]; //input data ke array for (int k=0;k<5;k++) { cout<<"masukkan data nilai ujian["<<k<<"] = "; cin>>ujian[k]; } //tampil data array for (int j=0;j<5;j++)


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 85 { cout<<"data nilai ujian["<<j<<"] = "<<ujian[j]<<endl; } getch(); } 2. Compile program hingga benar Gambar 4. 13 struktur kode array studi kasus 2 Gambar 4. 14 struktur kode array studi kasus 2 3. Setelah program diperbaiki dan di compile, maka tampilan hasil running akan tampak seperti gambar dibawah ini:


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 86 Gambar 4. 15 hasil running c. Buatlah flowchart beserta program untuk menemukan data yang terdapat dalam elemen. Program dibuat dengan cara File-New-Source File atau dengan menekan tombol CTRL-N pada keyboard kemudian ketik source programnya seperti di bawah ini: Berikut flowchart Array1 Dimensi


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 87 Flowchart 4. 3 array 1 dimensi studi kasus 3 Penjelasan Flowchart Diawali dengan simbol terminator, kemudaian mendeklarasikan variabelnya int data[10] = {4, 1, 0, -9, 8, 5, -1, 2, 3, -7};int elemen, ketemu, x; lalu tampilkan cout << "Data yang dicari : "; untuk sistem ketemu = 0;, lalu decision for(elemen=0; elemen<= 9; elemen++), apabila berniali true maka int elemen, ketemu, x;if (data[elemen] == x) untuk sistem ketemu = !ketemu;break; atau if (ketemu == 0) maka tampilkan cout << "Data tidak ditemukan "; jika bukan, else untuk mencetak cout << "Data ada di elemen : " << elemen;. Flowchart ditutup dengan simbol terminator ‘end’. 1. Kode programnya seperti dibawah ini: #include<iostream> #include<conio.h> using namespace std;


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 88 int main(){ cout<<"Nama: Iin Faramita Ode Hama, 07352211051"<<endl; cout<<""<<endl; 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(); } 2. Compile program hingga benar


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 89 Gambar 4. 16 struktur kode array studi kasus 3 3. Setelah program diperbaiki dan di compile, maka tampilan hasil running akan tampak seperti gambar dibawah ini: a. Hasil running jika data ditemukan dan menampikan elemen Gambar 4. 17 hasil running jika data ditemukan b. Hasil running jika data tidak di temukan (ketemu=0) Gambar 4. 18 hasil running jika data tidak ditemukan


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 90 d. Buatlah flowchart beserta program untuk menemukan data yang terdapat dalam elemen. Program dibuat dengan cara File-New-Source File atau dengan menekan tombol CTRL-N pada keyboard kemudian ketik source programnya seperti di bawah ini: Berikut flowchartnya Flowchart 4. 4 studi kasus 4 Penjelasan Flowchart Diawali dengan simbol terminator, lalu mendeklarasikan int matrix[3][4] = {{5,10,1,11},{4,7,67,-9},{9,0,45,3}}; menggunakan simbol preparation. Selanjutnya simbol decision untuk sistem for (int i = 0; i<3; i++) jika nilainya true makan akan dilanjutkan lagi dengan sistem for (int j=0;j<4; j++), apabila bernilai true pada bagian


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 91 ini selanjutnya akan ditampilkan cout<<matrix[i][j]<<" ";. Flowchart diakhiri dengan simbol terminal ‘end’. 1. Kode programnya seperti dibawah ini: #include <iostream> #include <conio.h> using namespace std; int main(){ cout<<"Nama: Iin Faramita Ode Hama, 07352211051"<<endl; cout<<""<<endl; 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; } getch(); }


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 92 2. Compile program hingga benar Gambar 4. 19 struktur kode array C++ studi kasus 4 3. Setelah program diperbaiki dan di compile, maka tampilan hasil running akan tampak seperti gambar dibawah ini: Gambar 4. 20 hasil running 4.6 Kesimpulan dan Saran 4.6.1 Kesimpulan Array merupakan suatu kumpulan variabel yang mempunyai tipe data yang sama serta dinyatakan dengan nama yang sama. Array adalah salah satu konsep yang sangat penting dalam pemograman, karena array dapat menyimpan data juga referensi objek pada jumlah yang banyak serta terindeks. Array menggunakan indeks integer


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 93 untuk menemukan urutan elemen-elemennya. Elemen pertamanya akan dimulai dari indeks 0 dan yang kedua mempunyai indeks 1, dan seterusnya. Array dideklarasikan dibagian deklarasi variabel dan dibedakan menjadi dua yaitu, Array Satu Dimensi dan Array Dua Dimensi. Setiap jenis array mempunyai kegunaannya masing-masing. 4.6.2 Saran Array yang akan digunakan harus dideklarasikan terlebih dahulu. Ketika akan mendeklarasikan array kita harus teliti terhadap hal-hal berikut : 1. Indeksnya selalu dimulai dari 0 2. Mengetahui besaran, karena array tidak bisa diperbesar ataupun diperkecil 3. Mengetahui tipe data yang ingin diinput kedalam array, karena jika inputan 4. Berbeda dengan inisial array maka akan terjadi error.


BAB V POINTER OLEH Iin Faramita Ode Hama 0735 2211 051 PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS KHAIRUN TERNATE 2022


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 94 BAB V POINTER 5.1 Pendahuluan 5.1.1 Pengertian Pointer Pointer adalah salah satu tipe data yang digunakan untuk menunjuk ke suatu data. Variabel yang bertipe pointer tidaklah berisi data, melainkan berisikan alamat dari suatu data. Pointer biasa digunakan jika berkaitan dengan pembentukan variabel dinamis. Variabel dinamis adalah variabel yang bisa dialokasikan di dalam memori atau dihapus dari memori ketika program dieksekusi. Hal itu banyak digunakan pada struktur data seperti senarai berantai dan pohon biner. Program-program tingkat lanjut, misalnya game yang mana seringkali menggunakan variabel dinamis (misalnya untuk menyimpan citra lawan yang bisa bertambah sewaktu-waktu). Ada dua operator pointer yang disediakan Borland C++, diantaranya yaitu; Operator Deference (&) Operator deference (&) merupakan operator yang berfungsi untuk mendeklarasikan suatu variabel dalam penggantian memori dan biasa disebut sebagai “Address Of”. Jadi, misalnya ketika ingin mengetahui (lokasi/alamat) dimana letak variabel akan disimpan, kita dapat meletakkan “&” atau biasa disebut AND (Ampersand Sign) di depan variabel yang berarti Address Of. Operator Reference (*)


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 95 OR (*) atau biasa disebut dengan “value pointed by”. Perbedaannya dengan OD (Operator Deference) yaitu pada OR akan menampilkan nilai yang terdapat dalam suatu alamat/lokasi memori, bukan menampilkan alamat memorinya. 5.1.2 Cara Mengakses Pointer Variabel yang terkandung dalam pointer mempunyai lokasi alamat memori sebagai nilai dari variabel pointer tersebut. Nilai pointer tersebut dapat diakses melalui pointer kita beserta dengan nilai dari lokasi alamat memori yang dipilih oleh pointer. Pointer dikenal dengan variabel sehingga cara pengaksesannya tak jauh beda. Untuk pengaksesan nilai dari pointer, hanya perlu dengan memanggil identitas dari pointer tersebut. plnt pemanggilan akan menunjukkan nilai (lokasi alamat memori) dari variabel yang dipilih oleh pointer. Untuk mengubah nilai/tujuan dari pointer, kita membutuhkan operator address-of (&) pada operan sumber. plnt = &myVar operand sumber akan menampilkan lokasi alamat memori dari myVar, hal itu adalah nilai/tujuan yang diperlukan variabel pointer. Kegunaan utama dari pointer adalah untuk menyimpan alamat memori dari sebuah variabel beserta alamatnya dari suatu fungsi. Pointer sendiri dapat meningkatkan kinerja dalam operasi berulang. 5.2 Tujuan Praktikum 1. Mempraktekkan cara Penggunaan Pointer Konstanta dan Pointer Variabel 2. Membuat file kerja dengan Bahasa C++


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 96 5.3 Langkah-Langkah Praktikum 1. Bukalah aplikasi Dev C++ melalui start menu: Gambar 5. 1 aplikasi Dev C++ 2. Tampilan awalnya seperti pada gambar dibawah ini: Gambar 5. 2 tampilan awal Dev C++ 3. Buatlah program baru dengan cara: File-New-Source atau gunakan CTRL-N atau seperti gambar dibawah ini:


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 97 Gambar 5. 3 membuat proyek baru 4. Ketik source kode program seperti pada gambar dibawah ini: Gambar 5. 4 struktur program pointer C++ 5. Setelah source kode ditulis, click compile and run seperti pada gambar dibawah ini: Gambar 5. 5 proses compile and run di Dev C++


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 98 6. Akan muncul dialog untuk menyimpan program. Beri nama sesuai keinginan user kemudian save dengan ekstensi “cpp” Gambar 5. 6 Proses penyimpanan 7. Setelah meng-klik save, akan muncul jendela yang menampilkan hasil running dari program yang sudah dibuat Gambar 5. 7 Hasil Running 8. Anda telah berhasil membuat program pointer dengan pemograman C++ dengan menggunakan Dev C++


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 99 5.4 Latihan Praktikum 5.4.1 Latihan 1 Poiner Konstanta Flowchart 5. 1 latihan 1 Penjelasan Flowchart Flowchart dimulai dengan terminator simbol ‘start’, selanjutnya simbol proses diinputkan char const *nama= Borland C++, kemudian dicetak. Selanjutnya diproses lagi dengan nama = Visual C++, lalu dicetak dan ditampilkan keduanya. Flowchart diakhiri dengan terminator simbol ‘end’. 1. Kode programnya seperti dibawah ini: #include<stdio.h> #include<conio.h> #include<iostream>


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 100 using namespace std; main(){ char const *nama = "Borland C++"; //clrscr(); cout<<"Nama Program = "<<nama<<endl; nama = "Visual C++"; cout<<"Nama Program = "<<nama<<endl; getch(); } 2. Compile dan perbaiki program hingga benar Gambar 5. 8 struktur kode pointer C++ 3. Tampilan setalah running Gambar 5. 9 Hasil running


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 101 5.4.2 Latihan 2 Pointer Variabel Flowchart 5. 2 latihan 2 Penjelasan Flowchart Flowchart dimulai dengan terminator simbol ‘start’, selanjutnya simbol proses diinputkan fungsi pointer Iin = 97;Fara = Iin;Mita = &Fara; kemudian ditampilkan keterangannya dan dicetak cout<<"Nilai Iin= "<<Iin<<endl;cout<<"Nilai fara= "<<Fara<<endl;cout<<"Nilai Mita= "<<Mita<<endl;. Flowchart diakhiri dengan terminator simbol ‘end’. 1. Kode programnya seperti dibawah ini: #include<stdio.h> #include<conio.h> #include<iostream> using namespace std; main(){ int Iin, Fara, *Mita;


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 102 //clrscr; Iin = 97; Fara = Iin; Mita = &Fara; cout<<"Nilai Iin= "<<Iin<<endl; cout<<"Nilai fara= "<<Fara<<endl; cout<<"Nilai Mita= "<<Mita<<endl; getch(); } 2. Compile dan perbaiki program hingga benar Gambar 5. 10 struktur kode pointer C++ 3. Tampilan setalah running


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 103 Gambar 5. 11 hasil running 5.5 Studi Kasus 5.5.1 Pointer dalam Array Flowchart 5. 3 studi kasus 1 pointer C++ Penjelasan Flowchart Flowchart dimulai dengan terminator simbol ‘start’, selajutnya mendeklarasikan char C[4],kemudian memasukkan kondisi for(i=0;i<4;++i) menggunakan simbol preparation, lalu cetak address dengan simbol I/O. Flowchart diakhiri dengan terminator simbol ‘end’. 1. Kode programnya seperti dibawah ini: #include <iostream> #include <conio.h> using namespace std;


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 104 int main(){ char c[4]; int i; for(i=0;i<4;++i){ printf("Address of c[%d]=%x\n",i,&c[i]); } getch(); } 2. Compile dan perbaiki program hingga benar Gambar 5. 12 struktur kode C++ studi kasus 1 3. Tampilan setalah running Gambar 5. 13 hasil running %3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22True%22%20style%3D%22text%3Bhtml%3D1%3Bresizable%3D0%3Bautosize%3D1%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bpoints%3D%5B%5D%3BfillColor%3Dnone%3BstrokeColor%3Dnone%3Brounded%3D0%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22310%22%20y%3D%22130%22%20width%3D%2250%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3Eflowflowflowflow


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 105 5.5.2 Operasi Aritmatika Menggunakan Pointer Flowchart 5. 4 studi kasus 2 pointer Penjelasan Flowchart Flowchart dimulai dengan terminator simbol ‘start’, selanjutnya simbol preparation diinputkan fungsi pointer int nilai[3], *penunjuk; kemudian dideklarasikan nilai[0] = 125; nilai[1] = 345; nilai[2] = 750; penunjuk = &nilai[0]; menggunakan simbol proses. Selanjutnya Nilai [0],Nilai[1],dan Nilai[2] dicetak dengan simbol I/O. Flowchart diakhiri dengan terminator simbol ‘end’. 1. Kode programnya seperti dibawah ini: //operasi aritmatika pada pointer #include<iostream> #include<conio.h>


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 106 using namespace std; int main(){ int nilai[3], *penunjuk; //clrscr(); 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 alamat memori "<<(penunjuk+1)<<endl; cout<<"Nilai "<<*(penunjuk+2)<<" ada di alamat memori "<<(penunjuk+2)<<endl; getch(); } 2. Compile dan perbaiki program hingga benar


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 107 Gambar 5. 14 struktur kode C++ 3. Tampilan setalah running Gambar 5. 15 Hasil running 5.6 Kesimpulan dan Saran a. Kesimpulan Suatu variabel yang bertipe pointer tidaklah berisi data melainkan alamat dari suatu data. Tipe variabel pointer sama dengan tipe yang dikenal oleh variabel biasa, misalnya int,float,char, dan sebagainya. Nama dari variabel pointer juga mengikuti ketentuan nama variabel biasa. Perbedaan variabel pointer dengan variabel biasa yaitu dari penggunaan tanda asterisk (*) ataupun tanda (&) didepan nama variabel pada waktu pendeklarasian. b. Saran


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 108 Penggunaan pointer pada proses program harus benar-benar diperhatikan. Sedikit saja kesalahan dalam menggunakan pointer akan berakibat fatal pada program, sama seperti tipe data lainnya. Karena pointer dapat secara langsung menunjukkan pada lokasi alamat memori sebuah data, apabila lokasi yang ditunjuk salah, berarti data yang diambil juga akan salah dan tentunya programnya juga salah.


BAB VI STACK OLEH Iin Faramita Ode Hama 0735 2211 051 PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS KHAIRUN TERNATE 2022


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 110 BAB VI STACK 6.1 Pendahuluan Stack (tumpukan) adalah kumpulan unsur-unsur data yang disimpan dalam satu jalur linier/garis. Unsur data tersebut hanya dapat diakses melalui satu lokasi saja yaitu pada bagian atas (TOP). Unsur stack sendiri letaknya berada diatas data yang lain,dengan kata lain stack adalah sturktur data yang menggunakan konsep LIFO (Last In First Out) yang mana data yang masuk paling akhir adalah yang keluar lebih dulu. Saat melakukan proses komputasi, untuk memasukkan elemen ke dalam stack, dilakukan operasi push, sedangkan untuk memindahkan/mengeluarkan dari stack, dilakukan operasi pop. Gambar 6. 1 contoh operasi stack Adapun operator yang digunakan dalam pemograman stack yakni 1) Push/Penyisipan (Memasukkan Elemen),2) Pop/Penghapusan (Mengeluarkan Elemen Top),3) IsEmpty (Operator Yang Memeriksa Keadaan Stack Kosong),4) IsFull (Operator Yang Memeriksa Keadaan Stack Penuh), dan 5) Clear (Operator Yang Menghapus Semua Elemen Didalam Stack).


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 111 Dalam stack ada beberapa manipulator yang mana fungsinya untuk mengontrol sejumlah tanda format yaitu setiosflag() dan setw()(mengatur lebar tampilan layar dari nilai sebuah variabel. Berikut tanda-tanda formatnya. Gambar 6. 2 tanda format manipulation stack C++ 6.2 Tujuan Praktikum a) 1) Memahami Konsep Stack b) 2) Mempraktekkan cara Penggunaan STACK dalam C++ 6.3 Langkah-Langkah Kegiatan Praktikum 1. Bukalah aplikasi Dev C++ melalui start menu:


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 112 Gambar 6. 3 aplikasi Dev C++ 2. Tampilan awalnya seperti pada gambar dibawah ini: Gambar 6. 4 tampilan awal Dev C++ 3. Buatlah program baru dengan cara: File-New-Source atau gunakan CTRL-N atau seperti gambar dibawah ini: Gambar 6. 5 membuat proyek baru 4. Ketik source kode program seperti pada gambar dibawah ini:


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 113 Gambar 6. 6 struktur kode stack C++ Gambar 6. 7 struktur kode stack C++


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 114 Gambar 6. 8 struktur kode stack C++ Gambar 6. 9 struktur kode stack C++ 5. Setelah source kode ditulis, click compile and run seperti pada gambar dibawah ini:


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 115 Gambar 6. 10 proses compile and run di Dev C++ 6. Akan muncul dialog untuk menyimpan program. Beri nama sesuai keinginan user kemudian save dengan ekstensi “cpp” Gambar 6. 11 Proses penyimpanan 7. Setelah meng-klik save, akan muncul jendela yang menampilkan hasil running dari program yang sudah dibuat a. Hasil running ketika menginput pilihan 1 Gambar 6. 12 Hasil running ketika menginput pilihan 1


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 116 b. Hasil running ketika menginput pilihan 2 Gambar 6. 13 hasil running ketika menginput pilihan 2 c. Hasil running ketika menginput pilihan 3 Gambar 6. 14 hasil running ketika menginput pilihan 3 8. Anda telah berhasil membuat program stack dengan pemograman C++ dengan menggunakan Dev C++ 6.4 Latihan Kegiatan Praktikum 1. Buatlah program baru dengan cara file-new-source atau gunakan CTRL+N kemudian ketik source code seperti dibawah ini: #include<iostream> #define MAX 10


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 117 //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{


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 118 Tumpukan.top++; cout<<"\nMasukkandata="; cin>>Tumpukan.data[Tumpukan.top]; 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";


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 119 }else{ cout<<"\nTumpukan : "; for (int i = Tumpukan.top; i >= 0; i--) cout<<Tumpukan.data[i] << ((i==0) ?"": ","); } } int main(){ int pilihan; int(); do{ PrintStack(); cout<<"\n1.input (push)\n"<<"2.hapus (Pop)\n"<<"3.keluar\n" <<"masukkan pilihan: "; cin>>pilihan; switch (pilihan){ case 1: push(); break;


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 120 case 2: Pop(); break; case 3: cout<<"bab 6 selesai"<<endl; cout<<"Iin Faramita Ode Hama, 07352211051"<<endl; return 0; break; default: cout<<"pilihan tidak tersedia"<<endl; break; } }while("hoose !=3"); } 2. Compile dan perbaiki program sampai benar


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 121 Gambar 6. 15 struktur kode stack C++ Gambar 6. 16 struktur kode stack C++


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 122 Gambar 6. 17 struktur kode stack C++ Gambar 6. 18 struktur kode stack C++ 3. Tampilkan hasil running Gambar 6. 19 hasil running


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 123 Gambar 6. 20 hasil running Gambar 6. 21 hasil running 6.5 Studi Kasus A. buatlah program stack 1. Flowchart program stack


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 124 Flowchart 6. 1 studi kasus 1 stack


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 125 Penjelasan Flowchart Dimulai dengan simbol terminator ‘start’, deklarasikan int data;struct node *link; dalam simbol preparation, kemudian masukkan fungsi NODE; NODE *top = NULL; dalam simbol ‘proses’. kemudian untuk variabel push,pop,display,quit, dan scanf. Masuk dalam sistem choice Selanjutnya masuk ke seleksi syarat, jika diinput pilihan 1 maka jalankan fungsi push(), jika diinput pilihan 2, maka jalankan fungsi pop(), jika diinput pilihan 3, maka jalankan fungsi display(). Apabila input yang dipilih adalah 4, maka program selesai. Jika pilihan yang diinputkan tidak termasuk dalam pilihan diatas maka cetak “PILIHAN TIDAK TERSEDIA” selanjutnya program akan melakukan proses perulangan secara terus dalam fungsi nilai choice kecuali nilai yang diinputkan adalah 4, karen prorgram akan selesai. 2. Kode programnya seperti dibawah ini : #include<stdio.h> #include<stdlib.h> #include <conio.h> typedef struct node{ int data; struct node *link; }NODE; NODE *top = NULL;


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 126 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"); printf("4.Quit\n\n"); printf("Enter your choice : "); scanf("%d",&choice); switch(choice){ case 1 : push(); break; case 2: pop();


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 127 break; case 3: display(); break; case 4: exit(0); default: 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));


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 128 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; if(top == NULL) printf("Stack is empty!!\n"); else { tmp = top; printf("Popped data : %d\n",tmp->data); top = top->link;


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 129 free(tmp); } } 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); temp = temp->link; } } }


PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 130 3. Compile dan perbaiki program Gambar 6. 22 struktur kode stack C++ studi kasus 1


Click to View FlipBook Version