kompetensi : list

22
#4. 12 APRIL 2013 Kompetensi : LIST

Upload: cameron-mckay

Post on 30-Dec-2015

43 views

Category:

Documents


0 download

DESCRIPTION

Kompetensi : LIST. # 4 . 12 April 201 3. Kompetensi 5. Kompetensi 5. Kompetensi 5. Lat 5_Listke1. // Latihan Kompetensi 5:: LIST // File : Lat5_Listke1.cpp #include < iostream.h > #include < list.h > int main() { - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Kompetensi  :  LIST

#4. 12 APRIL 2013

Kompetensi : LIST

Page 2: Kompetensi  :  LIST

Kompetensi 5

Page 3: Kompetensi  :  LIST
Page 4: Kompetensi  :  LIST

Kompetensi 5

Page 5: Kompetensi  :  LIST

Kompetensi 5

1. // Latihan Kompetensi 5:: LIST2. // File : Lat5_Listke1.cpp3. #include <iostream.h>4. #include <list.h>5. 6. int main()7. {8. list<int> coll; // list container for integer elements9. list<int>::iterator pos; //Menggunakan iterator sebagai penunjuk pointer element

List<int>10. 11. // append elements from 1 to 2012. 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. }

Lat 5_Listke1

Page 6: Kompetensi  :  LIST

Kompetensi 5 : Iterasi

Pointer pos

pos=pos+1; atau pos++;

Page 7: Kompetensi  :  LIST

Kompetensi 51. // Latihan Kompetensi 5:: LIST2. // File : Lat5_Listke2.cpp3. #include <cstdlib>4. #include <iostream>5. #include <list>6. using namespace std;7. int main() {8. list<int> coll; // list container for integer elements9. list<int>::iterator pos; //Menggunakan iterator sebagai penunjuk pointer element

List<int>10. // append elements from 1 to 2011. for (int c=1; c<=20; ++c) {12. coll.push_front(c);13. } 14. // Print info pada seluruh node dari struktur List coll15. 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

Page 8: Kompetensi  :  LIST

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

Page 9: Kompetensi  :  LIST

LATIHAN 5.1

Gabungkan source code dalam Lat5_Listke2.cpp dengan Potongan program utama Searching by boolean.

Jawaban : lihat source code “Lat5_Listksearching.cpp”

Page 10: Kompetensi  :  LIST

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.

Page 11: Kompetensi  :  LIST

Pembentukan Function Searching By BooleanReturn of Function

1. // Fungsi Pencarian dengan Metode Boolean2. bool SearchingByBoolean(list<int> cll, int cari)3. // Searching by Boolean : mengembalikan nilai boolean true atau false4. // Cari nilai angka dalam parameter cari.5. {6. // Deklarasi variabel7. 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. }

Type Return of Function

Variabel ini harus

bertipe bool

Page 12: Kompetensi  :  LIST

Pembentukan Function Searching By BooleanFunction Name

1. // Fungsi Pencarian dengan Metode Boolean2. bool SearchingByBoolean(list<int> cll, int cari)3. // Searching by Boolean : mengembalikan nilai boolean true atau false4. // Cari nilai angka dalam parameter cari.5. {6. // Deklarasi variabel7. 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

an

Page 13: Kompetensi  :  LIST

Pembentukan Function Searching By Boolean

Parameter

1. // Fungsi Pencarian dengan Metode Boolean2. bool SearchingByBoolean(list<int> cll, int cari)3. // Searching by Boolean : mengembalikan nilai boolean true atau false4. // Cari nilai angka dalam parameter cari.5. {6. // Deklarasi variabel7. 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

bertipe int

Page 14: Kompetensi  :  LIST

Pembentukan Function Searching By Boolean

CALL OF FUNCTION

1. bool SearchingByBoolean(list<int> cll, int cari)

2. {3. // Deklarasi variabel4. list<int>::iterator ps;5. bool found;6. ps=cll.begin();7. found=false;8. // Algoritma 9. ..........................10. return found;11. }

1. // PROGRAM UTAMA/ DRIVER2. int main()3. { char c;4. list<int> coll; 5. list<int>::iterator pos; 6. // append elements from 1 to 207. .....................8. .........................9. // Untuk mengaktifkan Searching By Boolean10. if (SearchingByBoolean(coll,21)){11. cout << "Angka : " << (*pos) << "

Ditemukan " << ' ';12. } 13. else { // Yang dicari tidak ketemu14. 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

Page 15: Kompetensi  :  LIST

Pembentukan Function Searching By BooleanPROSES PENYALINAN NILAI PARAMETER

1. bool SearchingByBoolean(list<int> cll, int cari)

2. {3. // Deklarasi variabel4. list<int>::iterator ps;5. bool found;6. ps=cll.begin();7. found=false;8. // Algoritma 9. ..........................10. return found;11. }

1. // PROGRAM UTAMA/ DRIVER2. int main()3. { char c;4. list<int> coll; 5. list<int>::iterator pos; 6. // append elements from 1 to 207. .....................8. .........................9. // Untuk mengaktifkan Searching By Boolean10. if (SearchingByBoolean(coll,21)){11. cout << "Angka : " << (*pos) << "

Ditemukan " << ' ';12. } 13. else { // Yang dicari tidak ketemu14. cout << "Angka : " << (*pos) << "Tidak

Ditemukan " << ' ';

15. }16. }

found

coll, 21

coll 21

Page 16: Kompetensi  :  LIST

Pembentukan Function Searching By BooleanAFTER RETURN OF FUNCTION

1. bool SearchingByBoolean(list<int> cll, int cari)

2. {3. // Deklarasi variabel4. list<int>::iterator ps;5. bool found;6. ps=cll.begin();7. found=false;8. // Algoritma 9. ..........................10. return found;11. }

1. // PROGRAM UTAMA/ DRIVER2. int main()3. { char c;4. list<int> coll; 5. list<int>::iterator pos; 6. // append elements from 1 to 207. .....................8. .........................9. // Untuk mengaktifkan Searching By Boolean10. if (SearchingByBoolean(coll,21)){11. cout << "Angka : " << (*pos) << "

Ditemukan " << ' ';12. } 13. else { // Yang dicari tidak ketemu14. cout << "Angka : " << (*pos) << "Tidak

Ditemukan " << ' ';

15. }16. }

found

coll, 21

coll 21

Misalkan nilai found adalah false, maka statement pada baris 10 akan dibaca oleh

compiler sebabagi berikut : if (false) {}

Page 17: Kompetensi  :  LIST

PROGRAM LENGKAP YANG MEMUAT FUNCTION SEARCHINGBYBOOLEAN

File : Lat5_ListksearchingPFbool.cpp

Page 18: Kompetensi  :  LIST

Pembentukan Function Searching By AddressReturn of Function

1. // Fungsi Pencarian dengan Metode Address2. list<int>::iterator SearchingByAddress(list<int> cll, int cari)3. // Searching by Address : mengembalikan nilai alamat dari elemen yang dicari4. // Cari nilai angka dalam parameter cari.5. {6. // Deklarasi variabel7. 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 ps;21. }

Type Return of Function

Variabel ini harus bertipe iterator dari

list

Page 19: Kompetensi  :  LIST

Pembentukan Function Searching By Address

1. CALL OF FUNCTION2. RETURN VALUE3. PROSES PENYALINAN PARAMETER

ILUSTRASINYA SAMA DENGAN SearchingByBoolean

Page 20: Kompetensi  :  LIST

Pembentukan Function Searching By AddressAFTER RETURN OF FUNCTION

1. list<int>::iterator SearchingByAddress(list<int> cll, int cari)

2. {3. // Deklarasi variabel4. list<int>::iterator ps;5. bool found;6. ps=cll.begin();7. found=false;8. // Algoritma 9. ..........................10. return ps;11. }

1. // PROGRAM UTAMA/ DRIVER2. int main()3. { char c;4. list<int> coll; 5. list<int>::iterator pos; 6. // append elements from 1 to 207. .....................8. .........................9. // Untuk mengaktifkan Searching By

Boolean10. // Untuk mengaktifkan Searching By

Address11. 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

oleh alamat tersebut

Page 21: Kompetensi  :  LIST

Latihan 5.2

1. Menyusun program yang memuat Fungsi SearchingByAddress

Jawaban File : Lat5_ListksearchingPFaddress.cpp

Page 22: Kompetensi  :  LIST

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.