#4. 12 APRIL 2013 Kompetensi : LIST
Kompetensi 5
1. // Latihan Kompetensi 5:: LIST 2. // File : Lat5_Listke1.cpp 3. #include 4. #include int main() 7. { 8. list coll; // list container for integer elements 9. list ::iterator pos; //Menggunakan iterator sebagai penunjuk pointer element List // append elements from 1 to for (int c=1; c<=20; ++c) { 13. coll.push_front(c); 14. } 15. // Print info node yang ditunjuk oleh pos 16. pos = coll.begin(); 17. cout << (*pos) << ' '; system("PAUSE"); 20. return 0; 21. } Lat 5_Listke1
Kompetensi 5 : Iterasi Pointer pos pos=pos+1; atau pos++;
Kompetensi 5 1. // Latihan Kompetensi 5:: LIST 2. // File : Lat5_Listke2.cpp 3. #include 4. #include 5. #include 6. using namespace std; 7. int main() { 8. list coll; // list container for integer elements 9. list ::iterator pos; //Menggunakan iterator sebagai penunjuk pointer element List 10. // append elements from 1 to for (int c=1; c<=20; ++c) { 12. coll.push_front(c); 13. } 14. // Print info pada seluruh node dari struktur List coll 15. for (pos=coll.begin(); pos!=coll.end(); ++pos) 16. { 17. cout << (*pos) << ' '; 18. cout << endl ; 19. } 20. system("PAUSE"); 21. return 0; 22. } Lat 5_Listke2
Searching By Boolean // Searching by Boolean : mengembalikan nilai boolean true atau false // Cari nilai angka 17. pos=coll.begin(); bool found; found=false; while ((!found)&&(pos != coll.end())){ if ((*pos)== 17){ found = true; } else { pos++; } } if (found){ cout << "Angka : " << (*pos) << " Ditemukan " << ' '; } else { // Yang dicari tidak ketemu cout << "Angka : " << (*pos) << "Tidak Ditemukan " << ' '; } POTONGAN PROGRAM UTAMA
LATIHAN 5.1 Gabungkan source code dalam Lat5_Listke2.cpp dengan Potongan program utama Searching by boolean. Jawaban : lihat source code “Lat5_Listksearching.cpp”
Function Searching By Boolean Agar program lebih modular maka dibutuhkan penyusunan program dengan membagi task-task menjadi lebih elementer, tidak bagus jika semua task digabungkan dalam 1 urutan statement di dalam program utama. Oleh karena itu perlu menyusun program dalam bentuk Function dan atau Procedure. Untuk menyusun program secara modular maka makasiswa perlu memahami pembentukan Function & Procedure, pemanggilan Function & Procedure, pendefinisian parameter by value, parameter by reference, parameter aktual, return value dari Function.
Pembentukan Function Searching By Boolean Return of Function 1. // Fungsi Pencarian dengan Metode Boolean 2. bool SearchingByBoolean(list cll, int cari) 3. // Searching by Boolean : mengembalikan nilai boolean true atau false 4. // Cari nilai angka dalam parameter cari. 5. { 6. // Deklarasi variabel 7. list ::iterator ps; 8. bool found; 9. ps=cll.begin(); 10. found=false; 11. // Algoritma 12. while ((!found)&&(ps != cll.end())){ 13. if ((*ps)== cari){ 14. found = true; 15. } 16. else { 17. ps++; 18. } 19. } 20. return found; 21. } Type Return of Function Variabel ini harus bertipe bool
Pembentukan Function Searching By Boolean Function Name 1. // Fungsi Pencarian dengan Metode Boolean 2. bool SearchingByBoolean(list cll, int cari) 3. // Searching by Boolean : mengembalikan nilai boolean true atau false 4. // Cari nilai angka dalam parameter cari. 5. { 6. // Deklarasi variabel 7. list ::iterator ps; 8. bool found; 9. ps=cll.begin(); 10. found=false; 11. // Algoritma 12. while ((!found)&&(ps != cll.end())){ 13. if ((*ps)== cari){ 14. found = true; 15. } 16. else { 17. ps++; 18. } 19. } 20. return found; 21. } Fungsi bernama : SearchingByBoolean
Pembentukan Function Searching By Boolean Parameter 1. // Fungsi Pencarian dengan Metode Boolean 2. bool SearchingByBoolean(list cll, int cari) 3. // Searching by Boolean : mengembalikan nilai boolean true atau false 4. // Cari nilai angka dalam parameter cari. 5. { 6. // Deklarasi variabel 7. list ::iterator ps; 8. bool found; 9. ps=cll.begin(); 10. found=false; 11. // Algoritma 12. while ((!found)&&(ps != cll.end())){ 13. if ((*ps)== cari){ 14. found = true; 15. } 16. else { 17. ps++; 18. } 19. } 20. return found; 21. } Ada 2 parameter, yaitu parameter cll bertipe list, dan parameter cari bertipe int
Pembentukan Function Searching By Boolean CALL OF FUNCTION 1. bool SearchingByBoolean(list cll, int cari) 2. { 3. // Deklarasi variabel 4. list ::iterator ps; 5. bool found; 6. ps=cll.begin(); 7. found=false; 8. // Algoritma return found; 11. } 1.// PROGRAM UTAMA/ DRIVER 2.int main() 3.{ char c; 4. list coll; 5. list ::iterator pos; 6.// append elements from 1 to // Untuk mengaktifkan Searching By Boolean 10.if (SearchingByBoolean(coll,21)){ 11. cout << "Angka : " << (*pos) << " Ditemukan " << ' '; 12. } 13. else { // Yang dicari tidak ketemu 14. cout << "Angka : " << (*pos) << "Tidak Ditemukan " << ' '; 15. } 16.} found coll, 21 Panah kiri sebagai alur pemanggilan fungsi SearchingByBoolean, dengan membawa parameter coll dan 21 Panah kanan sebagai alur pengembalian nilai fungsi ke pemanggil di program utama, fungsi mengembalikan nilai yang tersimpan dalam variabel found bertipe boolean
Pembentukan Function Searching By Boolean PROSES PENYALINAN NILAI PARAMETER 1. bool SearchingByBoolean(list cll, int cari) 2. { 3. // Deklarasi variabel 4. list ::iterator ps; 5. bool found; 6. ps=cll.begin(); 7. found=false; 8. // Algoritma return found; 11. } 1.// PROGRAM UTAMA/ DRIVER 2.int main() 3.{ char c; 4. list coll; 5. list ::iterator pos; 6.// append elements from 1 to // Untuk mengaktifkan Searching By Boolean 10.if (SearchingByBoolean(coll,21)){ 11. cout << "Angka : " << (*pos) << " Ditemukan " << ' '; 12. } 13. else { // Yang dicari tidak ketemu 14. cout << "Angka : " << (*pos) << "Tidak Ditemukan " << ' '; 15. } 16.} found coll, 21 coll21
Pembentukan Function Searching By Boolean AFTER RETURN OF FUNCTION 1. bool SearchingByBoolean(list cll, int cari) 2. { 3. // Deklarasi variabel 4. list ::iterator ps; 5. bool found; 6. ps=cll.begin(); 7. found=false; 8. // Algoritma return found; 11. } 1.// PROGRAM UTAMA/ DRIVER 2.int main() 3.{ char c; 4. list coll; 5. list ::iterator pos; 6.// append elements from 1 to // Untuk mengaktifkan Searching By Boolean 10.if (SearchingByBoolean(coll,21)){ 11. cout << "Angka : " << (*pos) << " Ditemukan " << ' '; 12. } 13. else { // Yang dicari tidak ketemu 14. cout << "Angka : " << (*pos) << "Tidak Ditemukan " << ' '; 15. } 16.} found coll, 21 coll21 Misalkan nilai found adalah false, maka statement pada baris 10 akan dibaca oleh compiler sebabagi berikut : if (false) { }
PROGRAM LENGKAP YANG MEMUAT FUNCTION SEARCHINGBYBOOLEAN File : Lat5_ListksearchingPFbool.cpp
Pembentukan Function Searching By Address Return of Function 1. // Fungsi Pencarian dengan Metode Address 2. list ::iterator SearchingByAddress(list cll, int cari) 3. // Searching by Address : mengembalikan nilai alamat dari elemen yang dicari 4. // Cari nilai angka dalam parameter cari. 5. { 6. // Deklarasi variabel 7. list ::iterator ps; 8. bool found; 9. ps=cll.begin(); 10. found=false; 11. // Algoritma 12. while ((!found)&&(ps != cll.end())){ 13. if ((*ps)== cari){ 14. found = true; 15. } 16. else { 17. ps++; 18. } 19. } 20. return ps; 21. } Type Return of Function Variabel ini harus bertipe iterator dari list
Pembentukan Function Searching By Address 1. CALL OF FUNCTION 2. RETURN VALUE 3. PROSES PENYALINAN PARAMETER ILUSTRASINYA SAMA DENGAN SearchingByBoolean
Pembentukan Function Searching By Address AFTER RETURN OF FUNCTION 1. list ::iterator SearchingByAddress(list cll, int cari) 2. { 3. // Deklarasi variabel 4. list ::iterator ps; 5. bool found; 6. ps=cll.begin(); 7. found=false; 8. // Algoritma return ps; 11. } 1.// PROGRAM UTAMA/ DRIVER 2.int main() 3.{ char c; 4. list coll; 5. list ::iterator pos; 6.// append elements from 1 to // Untuk mengaktifkan Searching By Boolean 10.// Untuk mengaktifkan Searching By Address 11. cout << "Angka : " << (*SearchingByAddress(coll,19)) << ' '; } ps coll, 19 coll19 Misalkan nilai ps adalah sebuah alamat tertentu, maka statement pada baris 11 akan dibaca oleh compiler sebabagi berikut : *(suatu alamat) artinya isi node yang ditunjuk oleh alamat tersebut
Latihan Menyusun program yang memuat Fungsi SearchingByAddress Jawaban File : Lat5_ListksearchingPFaddress.cpp
Tugas Kelompok Menyusun Program Yang memuat Fungsi SearchByBoolean dan SearchingByAddress pada Struktur Data Array. ( Append Elemen from 1 to 20 diubah menjadi sebuah blok Function atau Procedure bernama InsertElement) Dikumpulkan Hari Selasa, 16 April 2013, dimeja di ruang dosen.