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

LAPORAN LENGKAP PRAKTIKUM ALGORITMA DAN STRUKTUR DATA

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by deaaayyy, 2023-01-19 17:27:40

LAPORAN LENGKAP PRAKTIKUM ALGORITMA DAN STRUKTUR DATA

LAPORAN LENGKAP PRAKTIKUM ALGORITMA DAN STRUKTUR DATA

87 | P R A K T I K U M A L G O R I T M A 2 0 2 2 b. Latihan 2 Buatlah program baru pada Dev C++ dengan cara file-new-source file atau bisa dengan menekan Ctrl+N kemudian ketik source code program seprti dibawah ini : #include<iostream> #include<conio.h> using namespace std; int main() { float data [5]; float data_total = 0; float total, rata; //input data ke array for (int k=0; k<5; k++) { cout<<"Masukan data ["<<k<<"] = "; cin>>data [k]; } //menghitung total nilai array for (int J=0; J<5; J++) { total = total + data [J]; } //menghitung rata-rata


88 | P R A K T I K U M A L G O R I T M A 2 0 2 2 rata = total / 5; cout<<"Nilai Rata-Rata data pada Array = "<<rata<<endl; cout<<"=================================\n"<<endl; cout<<"NAMA\t : Dea Safitri Salamate"<<endl; cout<<"NPM\t : 07352211078"<<endl; getch (); } 1. Compile dan perbaiki sampai benar Gambar 4.10 Source Code


89 | P R A K T I K U M A L G O R I T M A 2 0 2 2 2. Tampilan hasil setelah running Gambar 4.11 Tampilan hasil running


90 | P R A K T I K U M A L G O R I T M A 2 0 2 2 4.5 STUDI KASUS a. Buatlah sebuah program untuk menemukan data yang terdapat didalam element. Buatlah program baru dengan cara file-menu-source atau gunakan Ctrl+N kemudian ketik source programnya seperti dibawah ini : Flowchart array 1 dimensi Flowchart 4.1 studi kasus 1


91 | P R A K T I K U M A L G O R I T M A 2 0 2 2 Penjelasan : Dimulai dengan terminator, dan dilanjutkan untuk header dalam program untuk keterangan deklarasi int ulangan [5] sebaga fungsinya. Decision for (int k=0; k;<5;k++), jika true maka ditampilkan “masukan nilau ulangan” yang telah diinputkan fungsinya. Lalu decision for (int j=0;j<5;j++) jika true maka di tampilkan sebagai data nilai ulangan, jika false maka dikembalikan di decision 1. Dan ditutup dengan getch(); untuk penyelesaiannya. #include <iostream> #include <conio.h> #include <windows.h> using namespace std; main() { system("Color 0A"); //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


92 | P R A K T I K U M A L G O R I T M A 2 0 2 2 for (int j=0;j<5;j++) { cout<<"data nilai ujian["<<j<<"] = "<<ujian[j]<<endl; } getch();} 1. Compile dan perbaiki program sampai benar. Gambar 4.12 Tampilan source kode 2. Setelah program diperbaiki dan di-compile, maka tampilan hasil running akan tampak seperti gambar dibawah ini : Gambar 4.13 Tampilan hasil running


93 | P R A K T I K U M A L G O R I T M A 2 0 2 2 b. Buatlah sebuah program untuk menemukan data yang terdapat didalam elemen Buatlah program baru dengan cara file-new- source file atau gunakan ctrl+N kemudian ketik surce programnya seperti gambar dibawah ini : Flowchart array satu dimensi Flowchart 4.2 studi kasus 2


94 | P R A K T I K U M A L G O R I T M A 2 0 2 2 Penjelasan : Dimulai dengan terminator mulai dan header, lalu di dilanjutkan untuk memasang fungsi float data[5]; float rata, total = 0; atau deklarasi juga variaebel. Dan decision untuk for (int k=0;k<5;k++) sebagai syarat jika true maka tampilkan cout<<"masukkan data["<<k<<"] = "; cin>>data[k];. setelahnya decision untuk for (int j=0;j<5;j++). jika true maka masuk ke sistem total = total + data[j];dan rata = total / 5;. lalu tampilkan nilainya dengan cout<<"rata - rata data pada array = "<<rata<<endl; dan di tutup dengan getcch(); untuk penyelesaiannya. #include <iostream> #include <conio.h> #include <windows.h> using namespace std; main() { system("Color 01"); float data[5]; float rata, total = 0; //input data ke array for (int k=0;k<5;k++)


95 | P R A K T I K U M A L G O R I T M A 2 0 2 2 { cout<<"masukkan data["<<k<<"] = "; cin>>data[k]; } //menghitung total nilai pada array for (int j=0;j<5;j++) { total = total + data[j]; } //menghitung rata - rata rata = total / 5; cout<<"rata - rata data pada array = "<<rata<<endl; getch(); } 1. Compile dan perbaiki program sampai benar


96 | P R A K T I K U M A L G O R I T M A 2 0 2 2 Gambar 4.14 struktur code 2. Setelah diperbaiki dan di-compile, maka akan ditampilkan hasil running Gambar 4.15 tampilan hasil running


97 | P R A K T I K U M A L G O R I T M A 2 0 2 2 c. Buatlah sebuah program untuk menemukan data yang terdapat didalam element. Buatlah program baru dengan cara file-menu-source atau gunakan ctrl+N kemudian ketik source programnya seperti dibawah ini : Flowchart 4.3 studi kasus 3


98 | P R A K T I K U M A L G O R I T M A 2 0 2 2 Penjelasan : Dimulai dengan terminator dan header, lalu deklarasi variabelnya main (); int data[10] = {4, 1, 0, -9, 8, 5, -1, 2, 3, -7}; lalu tampikan cout << "Data yang dicari : "; cin >> x; untuk sistem ketemu = 0;, kemudian decision for(elemen=0; elemen<= 9; elemen++), jika 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 maka else untuk menampikan cout << "Data ada di elemen : " << elemen; dan di tutup dengan getch. #include<iostream> #include<conio.h> #include<windows.h> using namespace std; main() { system("Color 08"); 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;


99 | P R A K T I K U M A L G O R I T M A 2 0 2 2 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(); }


100 | P R A K T I K U M A L G O R I T M A 2 0 2 2 1. Compile dan perbaiki program sampai benar Gambar 4.16 struktur kode pemograman 2. Setelah diperbaiki dan dicompile akan ditampilkan hasil running. a. Hasil running jika data ditemukan dan menampilkan elemen Gambar 4.17 hasil running 1 b. Hasil running jika data di temukan Gambar 4.18 hasil running 2


101 | P R A K T I K U M A L G O R I T M A 2 0 2 2 c. Hasil running jika data di temukan sesuai urutannya Gambar 4.19 hasil running 3


102 | P R A K T I K U M A L G O R I T M A 2 0 2 2 d. Buatlah sebuah program untuk menemukan data yang terdapat didalam elemen. Buatlah program baru dengan cara file-new-source atau gunakan tombol ctrl+N kemudian ketik source programnya seperti dibawah ini : Flowchart 4.4 studi kasus 4


103 | P R A K T I K U M A L G O R I T M A 2 0 2 2 #include <iostream> #include <conio.h> #include <windows.h> using namespace std; main() { system("Color 06"); 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(); }


104 | P R A K T I K U M A L G O R I T M A 2 0 2 2 1. Compile dan perbaiki program sampai benar Gambar 4.20 Struktur pemograman 2. Setelah diperbaiki dan di-compile maka akan ditampilkan hasil running program Gambar 4.21 hasil running


105 | P R A K T I K U M A L G O R I T M A 2 0 2 2 4.5 KESIMPULAN DAN SARAN a. Kesimpulan Array ialah kumpulan variabel yang mempunyai tipe data yang sama serta dinyatakan menggunakan nama yang sama. Array salah satu konsep yang sangat penting pada sebuah pemograman, karena array dapat menyimpan data juga referensi objek pada jumlah yang banyak serta terindeks. 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. Dan setiap jenis array mempunyai kegunaannya masing-masing. b. Saran Array yang akan dipergunakan harus dideklarasikan terlebih dahulu. Ketika akan mendeklarasikan array kita harus memperhatika hal-hal berikut : a) Indeks array selalu dimulai dari 0 b) Mengetahui besaran, karena array tidak bisa diperbesar ataupun diperkecil c) Mengetahui tipe data yang ingin dimasukan kedalam array, karena jika inputan berbeda dengan initial array maka akan terjadi eror


106 | P R A K T I K U M A L G O R I T M A 2 0 2 2


107 | P R A K T I K U M A L G O R I T M A 2 0 2 2 BAB V POINTER 5.1 PENDAHULUAN A. Pengenalan Pointer Pointer merupakan sebuah variabel atau objek yang menunjuk ke variabel atau objek lainnya. Pointer hanyalah variabel yang menyimpan alamat memori, memori tersebut dapat bersala dari variabel, objek dan lain-lain. Dengan pointer dimungkinkan untuk menunjuk suatu memori yang ditunjuk. Suatu pointer dapat berisi alamat dari suatu variabel lain dan untuk dapat mengakses nilai yang ada di dalam variabel berpointer secara langsung dapat dilakukan dengan menggunakan operator. Ada dua operator yang disediakan oleh Borland C++ yaitu : a. Operator Deference (&) Operator Deference (&) adalah opartor yang berfungsi untuk mendeklarasikan suatu variabel dalam penggantian memori. Operator ini biasa disebut sebagai “Addres Of”. Jadi misalkan ketika ingin mengetahui dimana variabel akan disimpan (untuk mengetahui lokasi/alamat dimana variabel disimpan di memori). Bisa meletakkan “&” atau biasa disebut AND (Ampersand Sign) di depan yang berarti Addres Of. b. Operator Reference (*) Operator Reference atau biasa disebut dengan “value pointed by”. Bedanya dengan Operator Deference, operator ini akan menampilkan nilai yang terdapat dalam suatu alamat memori, bukan menampilkan alamat memorinya.


108 | P R A K T I K U M A L G O R I T M A 2 0 2 2 B. Cara Mengakses Pointer Variabel yang terkandung di dalam pointer memiliki alamat memori sebagai nilai dari variabel pointer tersebut. Nilai pointer tersebut dapat di akses melalui pointer kita beserta dengan nilai dari alamat memori yang ditunjuk oleh pointer. Pointer sendiri dikenal dengan variabel sehingga cara pengaksesnya tidak jauh berbeda. Untuk kita mengakses nilai dari pointer kita, hanya cukup dengan memanggil identitas dari pointer tersebut. 1. plnt Pemanggilan akan menunjukkan nilai (alamat memori) dari variabel yang ditunjuk oleh pointer tersebut. Untuk mengubah nilai (tujuan) dari pointer, kita memerlukan operator address-of(&) pada operand sumber 2. plnt = &myVar Operand sumber akan menampilkan alamat memori dari myVar, dan hal itu merupakan nilai yang dibutuhkan variabel pointer. Kegunaan utama dari pointer adalah untuk menyimpan alamat memori dari sebuah variabel dan alamatnya dari suatu fungsi. Pointer dapat meningkatkan kinerja untuk operasi berulang. 5.2 TUJUAN PRATIKUM POINTER C++ a. Mengetahui cara penggunaan operator pada pointer b. Mampu mempraktekkan struktur pointer pada program C++ c. Membuat file kerja dengan bahasa pemograman bahasa C++


109 | P R A K T I K U M A L G O R I T M A 2 0 2 2 5.3 LANGKAH-LANGKAH PRATIKUM POINTER C++ a. Buka aplikasi DevC++ Gmbar 5.1 Tampilan Apk DevC++ b. Tampilan awal DevC++ tampak seperti gambar dibawah ini : Gambar 5.2 Tampilan awal apk DevC++ c. Buatlah program baru dengan cara File-New-Source atau gunakan Ctrl+N seperti gambar dibawah ini : Gambar 5.3 Membuat file baru


110 | P R A K T I K U M A L G O R I T M A 2 0 2 2 d. Ketik source code programnya seperti gambar dibawah ini : Gambar 5.4 Strukturr code program e. Setelah mengetik source code programnya, compile dan run seperti gambar dibawah ini : Gambar 5.5 Prose compile f. Akan muncul dialog untuk menyimpan program, beri nama sesuai dengan keinginan masing- masing. Misalnya “Pointer Latihan 1” Gambar 5.6 Proses penyimpanan


111 | P R A K T I K U M A L G O R I T M A 2 0 2 2 g. Setelah klik save akan muncul jendela yang menampilkan hasil program “Pointer Latihan 1” yang telah dibuat. Gambar 5.7 Hasil running h. Anda telah berhasil membuat program “pointer latihan 1” dengan bahasa pemograman mengggunakan DevC++ 5.4 LATIHAN KEGIATAN PRATIKUM a Latihan 1 (Pointer Konstanta) #include<stdio.h> #include<conio.h> #include<iostream> #include<windows.h> using namespace std; main() { system ("color 0E"); char const *nama = " Borland C++ "; system("cls"); cout<<" Nama Program = "<<nama<<endl; nama = "Visual C++";


112 | P R A K T I K U M A L G O R I T M A 2 0 2 2 cout<<" Nama Program = "<<nama<<endl; cout<<"=====================" cout<<"DEA SAFITRI SALAMATE"<<endl; getch(); } 1. Compile dan perbaiki program hingga benar Gambar 5.8 Struktur Code Program Gambar 5.9 Hasil running


113 | P R A K T I K U M A L G O R I T M A 2 0 2 2 b Latihan 2 (Pointer Variabel) #include <stdio.h> #include<conio.h> #include<iostream> #include<windows.h> using namespace std; main() { system ("color 0E"); cout<<"Nama : Dea Safitri Salamate"<<endl; cout<<"NPM : 07352211078"<<endl; cout<<"================================="<<endl; 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; getch(); }


114 | P R A K T I K U M A L G O R I T M A 2 0 2 2 1. compile dan perbaiki program hingga benar Gambar 5.10 Struktur Code Program 2. Setelah itu akan ditampilkan hasil running program Gambar 5.11 Hasil running


115 | P R A K T I K U M A L G O R I T M A 2 0 2 2 5.5 STUDI KASUS a. Buatlah sebuah program Operasi aritmatika pada pointer Flowchart 5.1 Operasi Aritmatika pada pointer. Penjelasan: Dimulai dengan simbol terminal,mendeklarasi Int nilai [3], *penunjuk, nilai [0] = 125, nilai [1] = 345, nilai [2] = 750, 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.


116 | P R A K T I K U M A L G O R I T M A 2 0 2 2 1. compile dan perbaiki program hingga benar Gambar 5.12 Struktur Code Program 2. Setelah itu akan ditampilkan hasil running program Gambar 5.13 hasil running


117 | P R A K T I K U M A L G O R I T M A 2 0 2 2 b. Buatlah sebuah program pointer dalam array Flowchart 5.2 pointer dalam array 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. #include<iostream>


118 | P R A K T I K U M A L G O R I T M A 2 0 2 2 #include<conio.h> #include<windows.h> using namespace std; main() { system ("color 0E"); cout<<"Nama : Dea Safitri Salamate"<<endl; cout<<"Npm : 07352211078"<<endl; cout<<"======================"<<endl; char c[4]; int i; for(i=0; i<4; i++) { printf("Address of c[%d]=%x\n",i,&c[i]); } getch(); }


119 | P R A K T I K U M A L G O R I T M A 2 0 2 2 1. Compile dan perbaiki program hingga benar Gambar 5.14 struktur code program 2. Setelah itu akan ditampilkan hasil running program Gambar 5.15 Hasil running program


120 | P R A K T I K U M A L G O R I T M A 2 0 2 2 5.6 KESIMPULAN DAN SARAN a. Kesimpulan Suatu variabel yang bertipe pointer tidaklah berisi data melainkan alamat 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 variable biasa. Perbedaan variabel pointer dengan variable biasa yaitu penggunaan tanda asterisk (*) didepan nama varibel pada waktu deklarasi b. 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.


121 | P R A K T I K U M A L G O R I T M A 2 0 2 2


122 | P R A K T I K U M A L G O R I T M A 2 0 2 2 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 elemenya dapat diambil dan ditambah hanya pada posisi akhir (top) saja. Stack merupakan bentuk khusus dari suatu data, dimana ronde yang ditambahkan dalam list dan diambil dari list hanya pada kepalanya, atau dengan prinsip pengolahannya adalah last-in-first-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 akandapat dilakukan operasi penambahan (penyisipan) dan pengambilan (penghapusan) data melalui ujung yang sama, ujung ini merupakan ujung atas tumpukkan. Sebelum struktur data tumpukkan ini digunakan, dideklarasikan dahulu dalam kamus data. 6.2 TUJUAN PRATIKUM a. Memahami konsep stack b. Mempraktikan cara penggunaan stack dalam C++


123 | P R A K T I K U M A L G O R I T M A 2 0 2 2 6.3 LANGKAH-LANGKAH KEGIATAN PRATIKUM a. Bukalah aplikasi DevC++ melalui start menu : Gambar 6.1 Tampilan awal apk DevC++ b. Tampilan awal tampak seperti gambar dibawah ini: Gambar 6.2 Tampilan awal DevC++ c. Buatlah program baru dengan cara File-New-Source atau gunakana Ctrl+N atau seperti gambar dibawah ini : Gambar 6.3 Membuat File baru


124 | P R A K T I K U M A L G O R I T M A 2 0 2 2 d. Ketik source code program gambar dibawah ini : Gambar 6.4 struktur code program 1


125 | P R A K T I K U M A L G O R I T M A 2 0 2 2 Gambar 6.5 Struktur code program 2 e. Setelah menulis atau mengetik source code program, klik compile dan run atau F11 seperti pada gambar dibawah ini : Gambar 6.6 Proses compile f. Akan muncul dialog untuk menyimpan program. Berikan nama sesuai dengan keinginan masing-masing misalkan “Latihan Program menghitung volume kubus” Gambar 6.7 Penyimpanan file code program


126 | P R A K T I K U M A L G O R I T M A 2 0 2 2 g. Klik save, akan muncul jendela yang menampilkan hasil program menghitung volume kubus yang telah dibuat. Gambar 6.8 Hasil running program h. Anda telah berhasil membuat program “Stack” menggunakana bahasa pemograman C++ menggunakan aplikasi DevC++


127 | P R A K T I K U M A L G O R I T M A 2 0 2 2 6.4 LATIHAN KEGIATAN PRATIKUM Buatlah program baru dengan cara file-new-source atau gunakan Ctrl+N, kemudian ketik source code seperti dibawah ini : #include<iostream> #include<conio.h> #include<windows.h> using namespace std; struct stack { int data[5]; int atas; }; stack tumpuk; int main() { int pilihan, baru, i; tumpuk.atas=-1; do { cout<<"1. PUSH DATA"<<endl; cout<<"2. POP DATA"<<endl;


128 | P R A K T I K U M A L G O R I T M A 2 0 2 2 cout<<"3. PRINT DATA"<<endl<<endl; cout<<"MASUKKAN PILIHAN : "; cin>>pilihan; switch (pilihan) { case 1 : if(tumpuk.atas==5-1) { cout<<"TUMPUKAN PENUH"; cout<<endl; } else { cout<<"MASUKKAN DATA : "; cin>>baru; tumpuk.atas++; tumpuk.data[tumpuk.atas]=baru; } break; case 2 : if(tumpuk.atas==-1)


129 | P R A K T I K U M A L G O R I T M A 2 0 2 2 { cout<<"TUMPUKAN KOSONG"; cout<<endl; } else { cout<<"DATA YANG AKAN DI POP = "<<tumpuk.data[tumpuk.atas]<<endl; tumpuk.atas--; cout<<endl; } break; case 3 : if(tumpuk.atas==-1) { cout<<"TUMPUKAN KOSONG"; cout<<endl; } else { cout<<"DATA - "<<endl;


130 | P R A K T I K U M A L G O R I T M A 2 0 2 2 for(i=tumpuk.atas; i>=0; i--) { cout<<tumpuk.data[i]<<ends; cout<<endl; } cout<<endl; } break; default : cout<<"TIDAK ADA DALAM PILIHAN"; break; } } while((pilihan>=1) && (pilihan<=3)); }


131 | P R A K T I K U M A L G O R I T M A 2 0 2 2 a. compile dan perbaiki program hingga benar Gambar 6.9 Struktur code program


132 | P R A K T I K U M A L G O R I T M A 2 0 2 2


133 | P R A K T I K U M A L G O R I T M A 2 0 2 2 Gambar 6.10 Struktur Code program


134 | P R A K T I K U M A L G O R I T M A 2 0 2 2 b. Setelah itu akan ditampilkan hasil running program yang telah dibuat. Gambar 6.11 Hasil running program


135 | P R A K T I K U M A L G O R I T M A 2 0 2 2 6.5 STUDI KASUS a. Buatlah program baru dengan cara file-new-source atau gunakan Ctrl+N kemudian ketik source code programnya seperti dibawah ini Flowchart 6.1 studi kasus 1


136 | P R A K T I K U M A L G O R I T M A 2 0 2 2 #include<iostream> #include<conio.h> #include<stdio.h> #define max 10 // study kasus using namespace std; struct tumpukan { int atas; int data[max]; }T; void awal() { T.atas =- 1; } int kosong() { if (T.atas == -1) return 1; else return 0; } int penuh()


Click to View FlipBook Version