PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 87 6. Muncul kotak dialog untuk menyimpan file program. Ketik nama file sesuai keinginan masing-masing, kemudian pastikan ekstensi file-nya yaitu “.cpp”, lalu tekan tombol save untuk menyimpannya. Gambar 4.6 Proses Penyimpanan 7. Muncul tampilan hasil Running atau hasil dari kode yang diketikkan. Gambar 4.7 Tampilan Hasil Running 8. Program awal dengan menggunakan Bahasa C++ dan editor Dev C++ telah berhasil dibuat.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 88 4.4. LATIHAN KEGIATAN PRAKTIKUM a. Latihan 1 Buatlah program baru dengan menekan menu tab file, new, lalu source file atau dengan menekan shortcut Ctrl+N pada keyboard secara bersamaan. Ketikkan kode program seperti di bawah ini. #include <iostream> using namespace std; int main(){ //int ujian [5] = {90,95,78,85,80}; int ujian [5]; for (int k=0; k<5; k++){ cout<<"Masukkan data nilai ujian["<<k<<"] = "; cin>>ujian[k]; } cout<<""<<endl; for (int j=0; j<5; j++){ cout<<"Data nilai ujian["<<j<<"] = "<<ujian[j]<<endl; } cout<<""<<endl; cout<<"Data nilai ujian = "; for (int j=0; j<5; j++){ cout<<ujian[j]<<" "; }
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 89 cout<<"\n"<<endl; cout<<"Nama\t: Annisa Sabur"<<endl; cout<<"NPM\t: 07352211091"; } Tampilan baris kode seperti di bawah ini. Gambar 4.8 Tampilan Baris Kode
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 90 Tampilan hasil compile and run. Gambar 4.9 Tampilan Hasil Running b. Latihan 2 Buatlah program baru dengan menekan menu tab file, new, lalu source file atau dengan menekan shortcut Ctrl+N pada keyboard secara bersamaan. Ketikkan kode program seperti di bawah ini. #include <iostream> using namespace std; int main(){ float data [5]; float total, rata; float data_total = 0; //Menginput data ke array for (int k=0; k<5; k++){
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 91 cout<<"Masukkan data ["<<k<<"] = "; cin>> data [k]; } //Menghitung total nilai array for (int j=0; j<5; j++){ total = total + data [j]; } cout<<"\nTotal Nilai data pada array = "<<total<<endl; //Menghitung rata-rata rata = total / 5; cout<<"Rata-rata Nilai data pada array = "<<rata<<endl; cout<<""<<endl; cout<<"Nama\t: Annisa Sabur"<<endl; cout<<"NPM\t: 07352211091"; }
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 92 Tampilan baris kode seperti di bawah ini. Gambar 4.10 Tampilan Baris Kode
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 93 Tampilan hasil compile and run. Gambar 4.11 Tampilan Hasil Running
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 94 4.5. STUDY CASES a. Buatlah Program Menemukan Data yang Terdapat di Dalam Element Sebuah Array Flowchart array 1 dimensi Flowchart 4.1 Array 1 Dimensi START int data[10] = {4, 1, 0, -9, 8, 5, -1, 2, 3, -7} int elemen, ketemu, x ketemu = 0 Masukkan data elemen=0 ; elemen <= 9; ketem u = = 0 Data tidak ditemuka n END Data ada pada elemen data[eleme n] == x Y Y N N ketemu = !ketemu elemen++
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 95 Penjelasan: Flowchart di atas dimulai dengan menggunakan simbol terminal, lalu mendeklarasikan int data, int elemen, int ketemu dan int x. Kemudian memasukkan nilai pada variabel x menggunakan simbol input/output. Lalu membuat syarat pertama untuk perulangan menggunakan simbol pilihan (decision). Jika data[elemen] == x, maka ketemu = !ketemu, dan elemen mencacah ke atas. Jika syarat pertama tidak terpenuhi, maka selanjutnya ke syarat pemilihan ketemu==0. Jika benar, maka menampilkan “Data tidak ditemukan”. Jika tidak, maka menampilkan “Data ada pada elemen”<<elemen menggunakan simbol input/output. Selesai. Penulisan kodenya seperti di bawah ini. #include<iostream> using namespace std; 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++){
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 96 if (data [elemen] == x){ ketemu = !ketemu; break; } } if (ketemu == 0){ cout<<"Data tidak ditemukan"; } else{ cout<<"Data ada di elemen :"<<elemen; } cout<<" "<<endl; cout<<"\nNama\t: Annisa Sabur"<<endl; cout<<"NPM\t: 07352211091"; }
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 97 Tampilan baris kode seperti di bawah ini. Gambar 4.12 Tampilan Struktur Kode Tampilan hasil compile and run jika data yang dicari ditemukan. Gambar 4.13 Tampilan Hasil Running
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 98 Tampilan hasil compile and run jika data yang dicari tidak ditemukan. Gambar 4.14 Tampilan Hasil Running
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 99 b. Buatlah sebuah Program Matriks Array Dua Dimensi Flowchart Matriks Array 2 Dimensi Flowchart 4.2 Matriks Array Dua Dimensi Penjelasan: Flowchart di atas dimulai dengan menggunakan simbol terminal, lalu mendeklarasikan int matrix[3][4] yang terisi dengan nilai didalamnya. Lalu membuat syarat pertama (int i=0; i<3) untuk membuat baris dari matriks menggunakan simbol pilihan (decision). Jika syarat pertama terpenuhi, maka berlanjut ke syarat kedua (int j=0; j<4) untuk membuat kolom dari matriks. Jika benar, maka menampilkan nilai matriks untuk kolom pertama baris pertama. Lalu mencacah variabel j ke atas, dan kembali ke syarat kedua untuk menampilkan kolom kedua hingga kolom keempat. Jika syarat kedua sudah START int matrix[3][4] = {{5, 10, 1, 11}, {4, 7, 67, -9}, {9, 0, 45, 3}}; int i=0; i < 3; END Tampilkan matrix[i][j] int j=0; j < 4; Yes Yes No No j++ i++
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 100 tidak terpenuhi, maka program akan mencacah variabel i ke atas dan kembali ke syarat pertama untuk membuat baris kedua dan ketiga. Jika syarat pertama sudah tidak terpenuhi, maka selesai. Penulisan kodenya seperti di bawah ini. #include<iostream> 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; } cout<<””<<endl; cout<<”Nama/t: Annisa Sabur”<<endl; cout<<”NPM/t: 07352211091”; }
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 101 Tampilan baris kode seperti di bawah ini. Gambar 4.15 Struktur Kode Tampilan hasil compile and run jika data yang dicari tidak ditemukan. Gambar 4.16 Tampilan Hasil Running
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 102 4.6. KESIMPULAN DAN SARAN 1. Kesimpulan Array bisa dikatakan sebagai jenis variabel yang memiliki banyak nilai dengan jenis tipe data yang homogen, tetapi hanya memakai satu nama variabel untuk mendeskripsikannya. Masing-masing nilai diberi label urutan untuk mengetahui tempat atau posisi dari nilai tersebut. Urutan tersebut disebut dengan indeks yang dimulai dari angka 0. 2. Saran Mengetahui konsep perulangan, agar lebih mudah dalam memahami alur proses dari program array yang dibuat, teliti dalam pembuatan program, serta mencoba memahami pesan error yang disampaikan sebelum ditanyakan kepada orang lain atau mencari maksud dari error tersebut di internet.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 103
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 104 BAB V POINTER 5.1. PENDAHULUAN Pointer adalah sebuah variabel atau objek yang merujuk ke variabel atau objek lainnya. Pointer merupakan variabel yang menyimpan alamat memori dari suatu variabel atau objek lainnya. Terdapat dua jenis operator yang dapat digunakan untuk menunjukkan memori tersebut, yaitu operator deference, dan operator reference. Operator Deference (&), yaitu operator yang berfungsi sebagai penunjuk alamat dari suatu variabel. Sebutan lain untuk operator ini adalah Address of. Misalnya terdapat variabel dengan nama Annisa yang bertipe data string. Jika hendak mengetahui letak atau alamat dari variabel tersebut, maka dapat mengetikkan lambang operator deference (&) di depan variabel tersebut. Operator Reference (*), yaitu operator yang digunakan untuk menunjuk atau menampilkan nilai dari suatu variabel, bukan alamat atau letak suatu variabel ataupun objek lain. Operator reference biasanya disebut sebagai value pointed by. 5.2. TUJUAN PRAKTIKUM 1. Mempraktikkan cara penggunaan pointer konstanta dan pointer variabel 2. Membuat file kerja dengan Bahasa C++ 5.3. LANGKAH-LANGKAH KEGIATAN PRAKTIKUM 1. Bukalah aplikasi Dev C++ melalui start menu.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 105 Gambar 5.1 Aplikasi Dev C++
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 106 2. Tampilan awal dapat dilihat seperti gambar di bawah ini. Gambar 5.2 Tampilan Awal Dev C++ 3. Buatlah program baru dengan menekan menu tab file, new, lalu source file atau dengan menekan tombol Ctrl+N secara bersamaan seperti gambar di bawah ini. Gambar 5.3 Tampilan Membuat Projek Baru
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 107 4. Ketik baris kode seperti gambar di bawah ini. Gambar 5.4 Struktur Kode C++ 5. Tekan tombol compile and run atau dengan menekan shortcut fn+f11 secara bersamaan seperti pada gambar di bawah ini. Gambar 5.5 Proses Compile Sekaligus Run
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 108 6. Muncul kotak dialog untuk menyimpan file program. Ketik nama file sesuai keinginan masing-masing, kemudian pastikan ekstensi file-nya yaitu “.cpp” lalu tekan tombol save untuk menyimpannya. Gambar 5.6 Proses Penyimpanan 7. Muncul tampilan hasil running atau hasil dari kode yang diketikkan. Gambar 5.7 Tampilan Hasil Running 8. Program awal dengan menggunakan bahasa C++ dan editor Dev C++ telah berhasil dibuat.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 109 5.4. LATIHAN KEGIATAN PRAKTIKUM a. Latihan 1 (Pointer Konstanta dengan Operator Reference) Buatlah program baru dengan menekan menu tab file, new, lalu source file atau dengan menekan shortcut Ctrl+N pada keyboard secara bersamaan. Ketikkan kode program seperti di bawah ini. #include <iostream> using namespace std; int main(){ const char *Nama = "Annisa Sabur"; cout<<"Nama Mahasiswa : "<<Nama<<endl; Nama = "Nisa"; cout<<"Nama Panggilan : "<<Nama<<endl; cout<<"--------------------------------"<<endl; cout<<"Nama\t: Annisa Sabur"<<endl; cout<<"NPM\t: 07352211091"; }
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 110 Tampilan baris kode seperti di bawah ini. Gambar 5.8 Tampilan Baris Kode Tampilan hasil compile and run. Gambar 5.9 Tampilan Hasil Running
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 111 b. Latihan 1 (Pointer Variabel dengan Operator Deference) Buatlah program baru dengan menekan menu tab file, new, lalu source file atau dengan menekan shortcut Ctrl+N pada keyboard secara bersamaan. Ketikkan kode program seperti di bawah ini. #include<iostream> using namespace std; main(){ int ilham, amir, *raka; ilham = 75; amir = ilham; raka = &ilham; cout<<"NILAI ILHAM = "<<ilham<<endl; cout<<"NILAI AMIR = "<<amir<<endl; cout<<"NILAI RAKA = "<<raka<<endl; cout<<"\nNama\t: Annisa Sabur"<<endl; cout<<"NPM\t: 07352211091"; }
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 112 Tampilan baris kode seperti di bawah ini. Gambar 5.10 Tampilan Baris Kode Tampilan hasil compile and run. Gambar 5.11 Tampilan Hasil Running
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 113 5.5. STUDY CASES a. Program Pointer. Flowchart Menentukan Alamat Suatu Variabel Flowchart 5.1 Pointer Penjelasan : Flowchart di atas dimulai dengan menggunakan simbol terminal, lalu mendeklarasikan int nilai[3], dan *penunjuk. Kemudian menginisialisasi variabel berdasarkan urutannya dari 0 sampai tiga, serta menginisialisasi variabel penunjuk untuk menampilkan alamat dari variabel nilai nanti dengan menggunakan simbol input/output. Selanjutnya mencetak ketiga variabel tersebut beserta alamatnya. Selesai. Penulisan kodenya seperti di bawah ini. #include <iostream> Start int nilai[3], *penunjuk nilai[0] = 125; nilai[1] = 345; nilai[2] = 750; penunjuk = &nilai[0]; "Nilai "<<*penunjuk<<" berada pada alamat memori "<<penunjuk; "Nilai "<<*penunjuk+1<<" berada pada alamat memori "<<penunjuk+1; "Nilai "<<*penunjuk+2<<" berada pada alamat memori "<<penunjuk+2; End
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 114 using namespace std; int main(){ int nilai[3], *penunjuk; nilai[0] = 125; nilai[1] = 345; nilai[2] = 750; penunjuk = &nilai[0]; cout<<"Nilai "<<*penunjuk<<" berada pada alamat memori "<<penunjuk<<endl; cout<<"Nilai "<<*(penunjuk+1)<<" berada pada alamat memori "<<(penunjuk+1)<<endl; cout<<"Nilai "<<*(penunjuk+2)<<" berada pada alamat memori "<<(penunjuk+2)<<endl; cout<<"\nNama\t: Annisa Sabur"<<endl; cout<<"NPM\t: 07352211091"; }
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 115 Tampilan baris kode seperti di bawah ini. Gambar 5.12 Tampilan Baris Kode Tampilan hasil compile and run. Gambar 5.13 Tampilan Hasil Running
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 116 b. Program Membuat Pointer dalam Array. Flowchart Pointer dalam Array Flowchart 5.2 Pointer dalam Array Penjelasan: Flowchart di atas diawali dan diakhiri menggunakan simbol terminal –start dan end. Selanjutnya, mendeklarasikan char c[4] dan int i menggunakan simbol proses. Kemudian membuat syarat agar dapat menampilkan alamat dari masing-masing urutan sesuai indeks tersebut, yaitu dari 0 sampai 3 dengan simbol pilihan (decision). Jika benar, maka ditampilkan hasil “Alamat dari “<<c[i]<<” adalah “<<&c[i] dengan menggunakan simbol input/output. Jika sudah mencapai batas atau telah mencetak secara keseluruhan, maka proses berakhir. Selesai. Penulisan kodenya seperti di bawah ini. #include <iostream> using namespace std; int main(){ char c[4]; i++ Start char c[4]; int i “Alamat dari “<<c[i]<<” adalah “<<&c[i] End i=0; i<4; No Yes
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 117 int i; for(i=0;i<4;++i){ printf("Alamat dari c[%d] adalah %x\n",i,&c[i]); } cout<<"\nNama\t: Annisa Sabur"<<endl; cout<<"NPM\t: 07352211091"; } Tampilan baris kode seperti di bawah ini. Gambar 5.14 Tampilan Baris Kode
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 118 Tampilan hasil compile and run. Gambar 5.15 Tampilan Hasil Running 5.6. KESIMPULAN DAN SARAN 1. Kesimpulan Pointer merupakan variabel yang menyimpan alamat memori dari suatu variabel atau objek lainnya. Pointer berarti juga sebagai penunjuk nilai dari suatu variabel. Pada pointer, terdapat dua jenis operator, yaitu reference –yang menunjuk nilai dari variabeldan deference –yang menunjuk alamat dari suatu variabel-. 2. Saran Teliti dalam pembuatan program, serta mencoba memahami pesan error yang disampaikan sebelum ditanyakan kepada orang lain atau mencari maksud dari error tersebut di internet.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 119
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 120 BAB VI STACK 6.1. PENDAHULUAN Stack atau dalam bahasa Indonesia diartikan sebagai tumpukan, adalah salah satu jenis struktur data tipe abstrak dengan hanya memiliki satu jalan atau pintu untuk masuk begitu pula untuk keluar, yang dimana mengelompokkan data atau elemen-elemen di dalamnya secara terorganisir. Konsep stack ini direpresentasikan dari kegiatan nyata yaitu kegiatan menumpuk sebuah benda yang jika hendak diambil maka hanya bisa dari benda yang berada paling atas pada tumpukan tersebut. Dari hal tersebutlah istilah konsep untuk struktur data ini adalah Last In First Out (LIFO) atau First In Last Out (FILO). Keduanya memiliki makna yang sama, yaitu yang masuk terakhirlah yang akan keluar pertama kali. Fungsi utama dan umum dalam konsep stack ini adalah push() –memasukkan data ke dalam stack-, dan pop() –mengeluarkan data dari dalam stack. Kedua fungsi tersebut dilakukan melalui satu pintu yang sama, sesuai dengan konsep LIFO atau FILO. 6.2. TUJUAN PRAKTIKUM 1. Memahami konsep stack 2. Mempraktikkan cara penggunaan stack dalam C++ 6.3. LANGKAH-LANGKAH PRAKTIKUM 1. Bukalah aplikasi Dev C++ melalui start menu. Gambar 6.1 Aplikasi Dev C++
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 121 2. Tampilan awal dapat dilihat seperti gambar di bawah ini. Gambar 6.2 Tampilan Awal Dev C++ 3. Buatlah program baru dengan menekan menu file, new, source file atau dengan menekan Ctrl+N pada keyboard secara bersamaan seperti gambar di bawah ini. Gambar 6.3 Tampilan Membuat Projek Baru
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 122 4. Ketik baris kode seperti gambar di bawah ini. Gambar 6.4 Struktur Kode C++ 5. Tekan tombol compile and run atau dengan menekan shortcut fn+f11 secara bersamaan seperti pada gambar di bawah ini. Gambar 6.5 Proses Compile Sekaligus Run
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 123 6. Muncul kotak dialog untuk menyimpan file program. Ketikkan nama file sesuai keinginan masing-masing, kemudian pastikan ekstensi file-nya adalah “.cpp” lalu tekan tombol save untuk menyimpannya. Gambar 6.6 Proses Penyimpanan 7. Muncul tampilan hasil running atau hasil dari kode yang diketikkan. Gambar 6.7 Tampilan Hasil Running 8. Program awal dengan menggunakan bahasa C++ dan editor Dev C++ telah berhasil dibuat.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 124 6.4. STUDY CASES a. Program Stack Menggunakan Array Flowchart Program Stack Menggunakan Array Flowchart 6.1 Program Stack Menggunakan Array Penjelasan: Program dimulai dengan simbol terminator, lalu mendeklarasikan variabel MAX bernilai 5, variabel top = -1, dan stack_arr [MAX] dengan tipe data integer. Kemudian memanggil fungsi push(), pop(), dan display, lalu mendeklarasikan variabel choice dengan tipe data integer. Selanjutnya, memasukkan nilai ke dalam variabel choice yang akan
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 125 dipakai untuk acuan dalam pemilihan fungsi yang hendak dijalankan. Saat masuk pada tahap perulangan, terdapat tahap seleksi (pemilihan berdasarkan kasus) didalamnya yang terdiri dari lima (5) kasus. Inputan masuk dimulai dari kasus pertama. Jika inputan yang dimasukkan benar, memuat fungsi push. Jika salah, maka ke kasus dua. Jika pada kasus kedua inputannya benar atau sesuai, maka memuat fungsi pop. Jika salah, maka ke kasus tiga. Jika pada kasus tiga benar, maka memuat fungsi display. Jika salah, maka ke kasus empat, yaitu exit atau selesai. Jika inputan tidak termasuk ke dalam keempat kasus, maka kasus default akan berjalan dan kembali mengulangi proses perulangan. Penulisan kodenya seperti di bawah ini. /* Program stack dengan menggunakan array*/ #include <stdio.h> #include <stdlib.h> #include <conio.h> #define MAX 5 int top = -1; int stack_arr[MAX]; void push(); void pop(); void display(); int main(){
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 126 int choice; while(1){ printf("\n1.Masukkan elemen (Push)\n"); printf("2.Keluarkan elemen (Pop)\n"); printf("3.Tampilkan elemen\n"); printf("4.Keluar\n\n"); printf("Masukkan pilihan Anda : "); scanf("%d",&choice); switch(choice){ case 1 : push(); break; case 2: pop(); break; case 3: display();
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 127 break; case 4: exit(1); default: printf("\nPILIHAN TIDAK TERSEDIA\n"); } getch(); system("cls"); } } void push(){ int pushed_item; if(top == (MAX - 1)){ printf("[ Stack penuh ]\n"); } else{ printf("\nKetikkan angka untuk “
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 128 ”dimasukkan ke dalam stack : "); scanf("%d",&pushed_item); top = top + 1; stack_arr[top] = pushed_item; } } void pop(){ if(top == -1){ printf("[ Stack kosong ]\n"); } else{ printf("Elemen yang dikeluarkan : %d\n",stack_arr[top]); top = top - 1; } } void display(){ int i;
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 129 if(top == -1){ printf("[ Stack kosong ]\n"); } else { printf("\nElemen stack : \n\n"); for(i = top; i >=0; i--) printf("[ %d ]\n", stack_arr[i] ); } }
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 130 Tampilan baris kode seperti di bawah ini. Gambar 6.8 Tampilan Baris Kode
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 131 Lanjutan tampilan baris kode. Gambar 6.9 Lanjutan Tampilan Baris Kode
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 132 Lanjutan tampilan baris kode. Gambar 6.10 Lanjutan Tampilan Baris Kode Tampilan hasil compile and run ketika memasukkan data (pilihan 1). Gambar 6.11 Tampilan Hasil Running (Push) Gambar 6.12 Tampilan Hasil Running (Push)
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 133 Gambar 6.13 Tampilan Hasil Running (Push) Gambar 6.14 Tampilan Hasil Running (Push) Gambar 6.15 Tampilan Hasil Running (Push)
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 134 Tampilan hasil compile and run ketika stack penuh (pilihan 1). Gambar 6.16 Tampilan Hasil Running (Stack Overflow) Tampilan hasil compile and run untuk menampilkan elemen stack (pilihan 3). Gambar 6.17 Tampilan Hasil Running untuk Menampilkan Elemen Stack
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 135 Tampilan hasil compile and run ketika mengeluarkan data (pilihan 2). Gambar 6.18 Tampilan Hasil Running (Pop) Gambar 6.19 Tampilan Hasil Running (Pop)
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LABORATORIUM REKAYASA PERANGKAT LUNAK | 136 Tampilan lanjutan hasil compile and run ketika mengeluarkan data (pilihan 2). Gambar 6.20 Tampilan Hasil Running (Pop) Gambar 6.21 Tampilan Hasil Running (Pop)