Sunteți pe pagina 1din 22

Kompetensi : LIST

#4.
12 APRIL 2013

Kompetensi 5

Kompetensi 5

Kompetensi 5

Lat 5_Listke1

// Latihan Kompetensi 5:: LIST


2. // File : Lat5_Listke1.cpp
3. #include <iostream.h>
4. #include <list.h>
1.

5.

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

10.

// append elements from 1 to 20


for (int c=1; c<=20; ++c) {
coll.push_front(c);
}
// Print info node yang ditunjuk oleh pos
pos = coll.begin();
cout << (*pos) << ' ';

11.
12.
13.
14.
15.
16.
17.
18.

system("PAUSE");
return 0;

19.
20.
21.

Kompetensi 5 : Iterasi
Pointer pos

pos=pos+1; atau pos++;

Kompetensi
5
// Latihan Kompetensi 5:: LIST

Lat 5_Listke2

1.

2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.

// File : Lat5_Listke2.cpp
#include <cstdlib>
#include <iostream>
#include <list>
using namespace std;
int main() {
list<int> coll;
// list container for integer elements
list<int>::iterator pos; //Menggunakan iterator sebagai penunjuk pointer element List<int>
// append elements from 1 to 20
for (int c=1; c<=20; ++c) {
coll.push_front(c);
}
// Print info pada seluruh node dari struktur List coll
for (pos=coll.begin(); pos!=coll.end(); ++pos)
{
cout << (*pos) << ' ';
cout << endl ;
}
system("PAUSE");
return 0;
}

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.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.

// Fungsi Pencarian dengan Metode Boolean


bool SearchingByBoolean(list<int> cll, int cari)
// Searching by Boolean : mengembalikan nilai boolean true atau false
// Cari nilai angka dalam parameter cari.
{
// Deklarasi variabel
list<int>::iterator ps;
bool found;
Type Return
ps=cll.begin();
of Function
found=false;
// Algoritma
while ((!found)&&(ps != cll.end())){
Variabel ini
if ((*ps)== cari){
harus bertipe
found = true;
bool
}
else {
ps++;
}
}
return found;
}

Pembentukan Function Searching By Boolean

Function Name
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.

// Fungsi Pencarian dengan Metode Boolean


bool SearchingByBoolean(list<int> cll, int cari)
// Searching by Boolean : mengembalikan nilai boolean true atau false
// Cari nilai angka dalam parameter cari.
{
// Deklarasi variabel
list<int>::iterator ps;
bool found;
Fungsi bernama :
ps=cll.begin();
SearchingByBoolean
found=false;
// Algoritma
while ((!found)&&(ps != cll.end())){
if ((*ps)== cari){
found = true;
}
else {
ps++;
}
}
return found;
}

Pembentukan Function Searching By Boolean

Parameter
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.

// Fungsi Pencarian dengan Metode Boolean


bool SearchingByBoolean(list<int> cll, int cari)
// Searching by Boolean : mengembalikan nilai boolean true atau false
// Cari nilai angka dalam parameter cari.
{
// Deklarasi variabel
list<int>::iterator ps;
bool found;
ps=cll.begin();
found=false;
Ada 2 parameter,
// Algoritma
while ((!found)&&(ps != cll.end())){
yaitu parameter cll
if ((*ps)== cari){
bertipe list<int>,
found = true;
dan parameter cari
}
bertipe int
else {
ps++;
}
}
return found;
}

Pembentukan Function Searching By Boolean

CALL OF FUNCTION
Panah kiri sebagai alur pemanggilan
fungsi SearchingByBoolean, dengan
membawa parameter coll dan 21

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.

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


{
// Deklarasi variabel
list<int>::iterator ps;
bool found;
ps=cll.begin();
found=false;
// Algoritma
..........................
return found;
}

coll, 21

found

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.

// PROGRAM UTAMA/ DRIVER


int main()
{ char c;
list<int> coll;
list<int>::iterator pos;
// append elements from 1 to 20
.....................
.........................
// Untuk mengaktifkan Searching By Boolean
if (SearchingByBoolean(coll,21)){
cout << "Angka : " << (*pos) << " Ditemukan " <<
' ';
}
else { // Yang dicari tidak ketemu
cout << "Angka : " << (*pos) << "Tidak Ditemukan " << '

14.

';

15.
16.
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
coll

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.

21

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


{
// Deklarasi variabel
list<int>::iterator ps;
bool found;
ps=cll.begin();
found=false;
// Algoritma
..........................
return found;
}

coll, 21

found

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.

// PROGRAM UTAMA/ DRIVER


int main()
{ char c;
list<int> coll;
list<int>::iterator pos;
// append elements from 1 to 20
.....................
.........................
// Untuk mengaktifkan Searching By Boolean
if (SearchingByBoolean(coll,21)){
cout << "Angka : " << (*pos) << " Ditemukan " <<
' ';
}
else { // Yang dicari tidak ketemu
cout << "Angka : " << (*pos) << "Tidak Ditemukan " << '

14.

';

15.
16.

}
}

Pembentukan Function Searching By Boolean


AFTER RETURN OF FUNCTION
coll

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.

21

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


{
// Deklarasi variabel
list<int>::iterator ps;
bool found;
ps=cll.begin();
found=false;
// Algoritma
..........................
return found;
}

coll, 21

found

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.

// PROGRAM UTAMA/ DRIVER


int main()
{ char c;
list<int> coll;
list<int>::iterator pos;
// append elements from 1 to 20
.....................
.........................
// Untuk mengaktifkan Searching By Boolean
if (SearchingByBoolean(coll,21)){
cout << "Angka : " << (*pos) << " Ditemukan " <<
' ';
}
else { // Yang dicari tidak ketemu
cout << "Angka : " << (*pos) << "Tidak Ditemukan " << '

14.

';

15.
16.

}
}

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.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.

// Fungsi Pencarian dengan Metode Address


list<int>::iterator SearchingByAddress(list<int> cll, int cari)
// Searching by Address : mengembalikan nilai alamat dari elemen yang dicari
// Cari nilai angka dalam parameter cari.
{
// Deklarasi variabel
list<int>::iterator ps;
bool found;
Type Return
ps=cll.begin();
of Function
found=false;
// Algoritma
while ((!found)&&(ps != cll.end())){
Variabel ini
if ((*ps)== cari){
harus bertipe
found = true;
iterator dari list
}
else {
ps++;
}
}
return ps;
}

Pembentukan Function Searching By Address

CALL OF FUNCTION
2. RETURN VALUE
3. PROSES PENYALINAN PARAMETER
1.

ILUSTRASINYA SAMA DENGAN SearchingByBoolean

Pembentukan Function Searching By Address


AFTER RETURN OF FUNCTION
coll

1.

19

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

{
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. }
2.

coll, 19

ps

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.

// PROGRAM UTAMA/ DRIVER


int main()
{ char c;
list<int> coll;
list<int>::iterator pos;
// append elements from 1 to 20
.....................
.........................
// Untuk mengaktifkan Searching By Boolean
// Untuk mengaktifkan Searching By Address
cout << "Angka : " <<
(*SearchingByAddress(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

Latihan 5.2
1.

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.

S-ar putea să vă placă și