# 4 .
1 2 A P R I L 2 0 1 3
Kompetensi 5
1. // Latihan Kompetensi 5:: LIST 2. // File : Lat5_Listke1.cpp
3. #include <iostream.h> 4. #include <list.h>
5.
6. int main() 7. {
8. list<int> coll; // list container for integer elements
9. list<int>::iterator pos; //Menggunakan iterator sebagai penunjuk pointer element List<int> 10.
11. // append elements from 1 to 20
12. 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) << ' ';
18.
19. system("PAUSE"); 20. return 0;
21. }
Kompetensi 5 : Iterasi
Pointer pos
Kompetensi 5
1.
// Latihan Kompetensi 5:: LIST
2.// File : Lat5_Listke2.cpp
3.
#include <cstdlib>
4.#include <iostream>
5.#include <list>
6.
using namespace std;
7.
int main() {
8.
list<int> coll; // list container for integer elements
9.
list<int>::iterator pos; //Menggunakan iterator sebagai penunjuk pointer element
List<int>
10.
// append elements from 1 to 20
11.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.
}
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 " << ' '; }
LATIHAN 5.1
Gabungkan source code dalam
Lat5_Listke2.cpp dengan Potongan program
utama Searching by boolean.
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
Pembentukan Function Searching By Boolean
Return of Function
1. // Fungsi Pencarian dengan Metode Boolean 2. bool SearchingByBoolean(list<int> 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<int>::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. }
Pembentukan Function Searching By Boolean
Function Name
1. // Fungsi Pencarian dengan Metode Boolean 2. bool SearchingByBoolean(list<int> 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<int>::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 :
SearchingByBoole
Pembentukan Function Searching By Boolean
Parameter
1. // Fungsi Pencarian dengan Metode Boolean 2. bool SearchingByBoolean(list<int> 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<int>::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<int>,
dan
parameter cari
Pembentukan Function Searching By Boolean
CALL OF FUNCTION
1. bool SearchingByBoolean(list<int> cll, int
cari)
2. {
3. // Deklarasi variabel
4. list<int>::iterator ps; 5. bool found;
6. ps=cll.begin(); 7. found=false; 8. // Algoritma
9. ...
10.return found; 11.}
1. // PROGRAM UTAMA/ DRIVER 2. int main()
3. { char c;
4. list<int> coll; 5. list<int>::iterator pos;
6. // append elements from 1 to 20 7. ...
8. ...
9. // 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. }
foun
d
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
Pembentukan Function Searching By Boolean
PROSES PENYALINAN NILAI PARAMETER
1. bool SearchingByBoolean(list<int> cll, int
cari)
2. {
3. // Deklarasi variabel
4. list<int>::iterator ps; 5. bool found;
6. ps=cll.begin(); 7. found=false; 8. // Algoritma
9. ...
10.return found; 11.}
1. // PROGRAM UTAMA/ DRIVER 2. int main()
3. { char c;
4. list<int> coll; 5. list<int>::iterator pos;
6. // append elements from 1 to 20 7. ...
8. ...
9. // 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. }
Pembentukan Function Searching By Boolean
AFTER RETURN OF FUNCTION
1. bool SearchingByBoolean(list<int> cll, int
cari)
2. {
3. // Deklarasi variabel
4. list<int>::iterator ps; 5. bool found;
6. ps=cll.begin(); 7. found=false; 8. // Algoritma
9. ...
10.return found; 11.}
1. // PROGRAM UTAMA/ DRIVER 2. int main()
3. { char c;
4. list<int> coll; 5. list<int>::iterator pos;
6. // append elements from 1 to 20 7. ...
8. ...
9. // 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. }
foun
d
coll, 21 coll 21Misalkan nilai found adalah false, maka statement pada baris 10 akan dibaca oleh
compiler sebabagi berikut : if (false) {
PROGRAM LENGKAP YANG MEMUAT FUNCTION
SEARCHINGBYBOOLEAN
Pembentukan Function Searching By Address
Return of Function
1. // Fungsi Pencarian dengan Metode Address
2. list<int>::iterator SearchingByAddress(list<int> 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<int>::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. }
Pembentukan Function Searching By Address
1.
CALL OF FUNCTION
2.
RETURN VALUE
3.
PROSES PENYALINAN PARAMETER
Pembentukan Function Searching By Address
AFTER RETURN OF FUNCTION
1. list<int>::iterator SearchingByAddress(list<int> cll, int cari)
2. {
3. // Deklarasi variabel
4. list<int>::iterator ps;
5. bool found;
6. ps=cll.begin();
7. found=false;
8. // Algoritma
9. ...
10. return ps;
11. }
1. // PROGRAM UTAMA/ DRIVER 2. int main()
3. { char c;
4. list<int> coll; 5. list<int>::iterator pos;
6. // append elements from 1 to 20 7. ...
8. ...
9. // Untuk mengaktifkan Searching By Boolean
10. // Untuk mengaktifkan Searching By Address
11. cout << "Angka : " <<
(*SearchingByAddress(coll,19)) << ' '; }
ps
coll, 19
coll 19
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
Latihan 5.2
1.
Menyusun program yang memuat Fungsi
SearchingByAddress
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