Anda di halaman 1dari 14

PERTEMUAN KE-IV

Struktur While
I.

Tujuan Praktikum
Dapat membangun algoritma komputasi menggunakan struktur while untuk

menentukan FPB dari dua bilangan bulat menggunakan algoritma Eucliden.


II.

Dasar Teori
Kadangkala, syarat nilai akhir perulangan tidak bisa ditentukan dengan pasti.

Untuk itu, digunakan perulangan bersyarat. Jika nilai pencacah memenuhi syarat
perulangan, maka perulangan dilanjutkan. Jika nilai pencacah tidak memenuhi syarat
perulangan, maka perulangan dihentikan. Loop for mengerjakan sekelompok perintah
pengulangan yang diulang sebanyak suatu jumlah yang telah ditentukan. Tetapi loop
while mengerjakan sekelompok perintah yang diulang secara tidak terbatas.
Struktur while merupakan perintah pengulangan dengan parameter berhenti
pengulangan berdasarkan suatu kriteria logika, tidak berdasarkan banyaknya kali
pengulangan sebagaimana pada struktur for. Sebagai ilustrasi, misalkan dimiliki
sebidang kolam yang penuh dengan air dan anda diperintahkan untuk menguras air
kolam tersebut dengan ember hingga habis. Dalam hal ini, tentunya kita tidak tahu
kapan akan berhenti melakukan pengurasan. Akan tetapi kondisi berhenti pengurasan
sudah jelas, yakni hingga air kolam habis. Proses matematika dalam ilustrasi tadi
merupakan konsep pembagian sebagai pengurangan berulang. Lebih lanjut dalam
perkuliahan telah diurangan dengan detil aplikasi struktur while untuk membentuk
algoritma pembagian dan telah dikembangkan menjadi algoritma eucliden untuk
menentukan FPB dari dua buah bilangan bulat.
Sintaks dasar dalam MATLAB dari Loop While adalah :
while ekspresi/variabel
Statement1
Statement2

End
(akprind.ac.id, 2012)

Inisialisasi biasanya merupakan penetapan nilai awal dari pencacah. Nilai


tersebut akan diuji pada syarat perulangan. Syarat perulangan sama sebagaimana pada
pencabangan bersyarat. Padanya berlaku pula operator relasi dan logika. Aliran logika
perulangan sebagai berikut :

inisialisasi
tidak
Syarat terpenuhi ?
ya
Pernyataan operasi

Gambar. Aliran Logika Perulangan.


(wordpress.com, 2011)
Pada pernyataan for nilai pencacah diubah secara otomatis. Berbeda dari hal
tersebut pada pernyataan while, nilai pengubahan pencacah harus ditangani sendiri
dalam pernyataan operasi
Perintah yang terdapat diantara statemen while dan end dieksekusi berulang kali
selama semua elemen dalam ekspresi adalah benar. Ada beberapa daftar ekspresi
boolean yang ada dalam MATLAB seperti tabel berikut ini :
Tabel Daftar ekspresi boolean.
a==b

Benar jika a sama dengan b

a>b

Benar jika a lebih besar b

a<b

Benar jika a lebih kecil b

a >= b

Benar jika a lebih besar ata sama dengan b

a <= b

Benar jika a lebih kecil atau sama dengan b

a ~= b

Benar jika a tidak sama dengan b

a&b

Benar jika kedua ekspresi boolean a dan b benar

a|b

Benar jika paling sedikit satu diantara ekpresi boolean a dan b benar

a xor b

Benar jika hanya satu diantara ekpresi boolean a dan b benar

~a

Negasi a, benar jika ekspresi boolean a bernilai salah


(weebly.com, 2011)
Biasanya evaluasi dari ekspresi menghasilkan nilai skalar, tetapi hasil yang

berupa array juga dapat diterima . Jika hasilnya adalah array, semua elemen array harus
bernilai benar. Perhatikan contoh berikut :
num=0; eps=1;
while (1+eps)>1
eps=eps/2;
num=num+1;
end
Contoh di atas memperagakan suatu cara untuk menghitung Eps (suatu nilai
khusus MATLAB), yaitu bilangan terkecil yang dapat ditambahkan pada 1 sedemikian
hingga hasilnya lebih besar dari 1 dengan menggunkan presisi hingga. Pada contoh ini
EPS dimulai dari 1, selama (1 +eps)>1 adalah benar (tidak nol), perintah yang terdapat
pada loop while akan dikerjakan.
Contoh sederhana lainnya adalah loop while yang akan menampilkan bilangan
dari 0 sampai dengan 4 dilayar sebagai berikut :
Function contohwhileloop();
%Program sederhana ini menampilkan bilangan
%dari 0 sampai dengan 4 di layar
i=0;
while i<5
disp(i);
i= i +1;
end

Contoh berikutnya adalah akan mengecek berapakah nilai bilangan bulat n


pertama yang memiliki nilai faktorial terdiri atas 100 digit (n pertama dengan n!>102),
dan program di MATLAB dapat dituliskan sebagai berikut :
Function checkfactorial();
n=1;
while prod(1:n)<1.e100
n=n+1;
end
disp(n)
Keterangan command prod(1:n) diatas akan menghitung n!.
(wordpress.com, 2008)
Faktor persekutuan terbesar (FPB)
Faktor Persekutuan Terbesar (FPB) dari dua bilangan adalah bilangan bulat
positif terbesar yang dapat membagi habis kedua bilangan itu. Dalam bahasa Inggris
FPB dikenal dengan Greatest Common Divisor (GCD), sering djiuga disebut sebagai
Greatest Common Factor (GCF) atau Highest Common Factor (HCF). Cara sederhana
dapat digunakan untuk mencari FPB dari 2 atau 3 bilangan yang tidak terlalu besar,
namun untuk bilangan yang lebih besar sebaiknya menggunakan cara faktorial.
Contoh cara sederhana :
Mencari FPB dari 12 dan 20:

Faktor dari 12 = 1, 2, 3, 4, 6 dan 12

Faktor dari 20 = 1, 2, 4, 5, 10 dan 20

FPB dari 12 dan 20 adalah faktor sekutu (sama) yang terbesar, yaitu 4.

Algoritma Euclidean

Cara lain untuk mencari FPB adalah dengan menggunakan algoritma Euklidean.
Misalkan a dan b adalah 2 bilangan bulat yang tidak sama, maka algoritma Euklidean
adalah sebagai berikut :

a1 = maximum(a,b)-minimum(a,b)
b1 = minimum(a,b)

a2 = maximum(a1,b1)-minimum(a1,b1)
b2 = minimum(a1,b1)
.
.
.

ai = maximum(ai-1,bi-1)-minimum(ai-1,bi-1)
bi = minimum(ai-1,bi-1)

Algoritma tersebut berhenti hingga diperoleh ai = bi


FPB dari a dan b adalah ai = bi
(wikipedia.org, 2013)
Kelipatan Persekutuan Terkecil (KPK)
Dalam aritmetika dan teori bilangan, kelipatan persekutuan terkecil (KPK)
dari dua bilangan adalah bilangan bulat positif terkecil yang dapat dibagi habis oleh
kedua bilangan itu. Dalam bahasa Inggris KPK dikenal dengan Least Common Multiple
(LCM), sering dijuga disebut sebagai Lowest Common Multiple (LCM) atau Smallest
Common Multiple (SCM). Cara sederhana dapat digunakan untuk mencari KPK dari 2
atau 3 bilangan yang tidak terlalu besar, namun untuk bilangan yang lebih besar
sebaiknya menggunakan cara faktorial.

Contoh cara sederhana :


Mencari KPK dari 12 dan 20 :

Kelipatan dari 12 = 12, 24, 36, 48, 60, 72, 84, ...

Kelipatan dari 20 = 20, 40, 60, 80, 100, 120, 140, ...

KPK dari 12 dan 20 adalah kelipatan sekutu (sama) yang terkecil, yaitu 60.
(wikipedia.org, 2013)

III.

Algoritma
1. Algoritma Menghitung Faktor Persekutuan Terbesar (FPB).
1) Input : a, b
2) Output : FPB
3) Proses :
1) Definisikan nilai a
2) Definisikan nilai b
3) Definisikan nilai a1=a; b1=b; c=0; T=b;

4) Untuk a tidak sama dengan 0 lakukan


a) untuk b-a besar dari sama dengan 0
b) hitung nilai c = c+1
c) hitung nilai b = b-a
d) akhiri langkah a)
5) Tampilkan nilai T sebagai (c)(a)+(b)
6) Definisikan nilai T=a; a=b; b=T; c=0;
7) Akhiri langkah 4)
8) Tampilkan FPB

2. Algoritma Menghitung Kelipatan Persekutuan Terkecil (KPK).


a. Input : a, b
b. Output : KPK
c. Proses :
1) Definisikan nilai a
2) Definisikan nilai b
3) Definisikan nilai a1=a; b1=b; c=0; T=b;
4) Untuk a tidak sama dengan 0 lakukan
a) untuk b-a besar dari sama dengan 0
b) hitung nilai c = c+1
c) hitung nilai b = b - a
d) akhiri langkah a)
5) Tampilkan nilai T sebagai (c)(a)+(b)
6) Definisikan nilai T=a; a=b; b=T; c=0;
7) Akhiri langkah 4)
8) Hitung nilai K=a1*b1/b;
9) Tampilkan KPK

IV.

Flowchart

1. Flowchart Menghitung Faktor Persekutuan Terbesar (FPB).

START

Input : a, b

a1=a, b1=b, c1=0, T=b

c =START
c+1
b=b-a
a1=a, b1=b, c=0, T= b

Input : a, b

Tidak

ba<0
a1=a, b1=b, c=0, T=b
ya
Tidak

a=0
c=c+1
b = bya
-a

a1=a, b1=b, c=0, T= b

Output : FPB
ba<0

Tidak

END

Tidak

ya

Gambar 1. Flowchart menghitung FPB.


a=0
ya
2. Flowchart Menghitung Kelipatan Persekutuan Terkecil (KPK).
K = (a1*b1)/b

Output : KPK

END

Gambar 2. Flowchart menghitung KPK.

IV.

Listing Program
1. Program Menghitung Faktor Persekutuan Terbesar (FPB).

Gambar 3. Tampilan program menghitung FPB.

2. Program Menghitung Kelipatan Persekutuan Terkecil (KPK).

Gambar 4. Tampilan program Menghitung KPK.

V.

Output
1. Program Menghitung Faktor Persekutuan Terbesar (FPB).

Gambar 5. Tampilan Output Program Menghitung FPB.

2. Menghitung Kelipatan Persekutuan Terkecil (KPK).

Gambar 6. Tampilan Output Program Menghitung KPK.

VI.

Kesimpulan

1. Untuk menghitung faktor persekutuan terbesar (FPB) dengan menggunakan


cara Euclidean, dapat menggunakan struktur while pada Matlab.
2. Selain faktor persekutuan terbesar (FPB), kelipatan persekutuan terkecil
(KPK) juga dapat dihitung menggunakan struktur while.
3. Meskipun sruktur for dan sruktur while sama-sama merupakan perintah
perulangan, namun terdapat perbedaan antara keduanya yaitu struktur for
mengerjakan sekelompok perintah pengulangan yang diulang sebanyak suatu
jumlah yang telah ditentukan. Tetapi, struktur while mengerjakan
sekelompok perintah yang diulang secara tidak terbatas.

VII.

Daftar Pustaka

Elista, 2012, Bab 4 Control Flow, http://elista.akprind.ac.id/upload/files/6903_Modul5.

pdf, diakses pada 1 Desember 2013 pukul 15. 37 WIB.


Pujiriyanto, Andry, 2008, Cepat Mahir Matlab, http://basayevsmile.files.wordpress
.com/2008/09/bab-4-kontrol-program.pdf, diakses pada 1 Desmber 2013 pukul
03.37 WIB.
S.W, Nata, 2011, Logika dan Pemrograman Komputer, http://ppk-upstegal.weebly.com/
uploads/1/0/4/2/10425402/diktat-matlab.pdf, diakses pada 1 Desember 2013
pukul 15. 57 WIB.
Wikipedia, 2013, Faktor Persekutuan Terbesar, http://id.wikipedia.org/wiki/Faktor_per
sekutuan_terbesar, diakses pada 11 desember 2013 pukul 13.10 WIB.
Wikipedia, 2013, Kelipatan Persekutuan Terkecil, http://id.wikipedia.org/wiki/Kelipatan
_persekutuan_terkecil, diakses pada 11 Desember 2013 pukul 13.27 WIB.
Rustamaji, Heri, Modul Praktikum Pemrograman Komputer, 2011, http://herirustamaji.
files.wordpress.com/2011/12/bab-1-memulai.pdf, diakses pada 11 November
2013 pukul 09.56 WIB.