SlideShare una empresa de Scribd logo
1 de 70
Descargar para leer sin conexión
PERULANGAN
Algoritma Pemrograman

Drs. Lamhot Sitorus, M.Kom
Fakultas Ilmu Komputer
Universitas Katolik Santo Thomas
Pengantar
• Komputer  melakukan berulang dengan kinerja yang
sama
• Manusia  bosan, cenderung melakukan kesalahan
• Contoh :
– Menulis “Saya akan Belajar dengan Baik” sebanyak 100
lembar
– Menimba air ke bak mandi sampai penuh
– Makan hingga kenyang
– Menaiki anak tangga hingga lantai 5
– Mencari suatu bilangan dari sekelompok bilangan
2
Perulangan
• Perulangan terdiri dari dua bagian :
– Kondisi yang mengakibatkan perulangan suatu
saat berhenti, yang dinyatakan oleh sebuah
ekspresi logika baik secara eksplisit maupun
implisit
– Badan perulangan, yaitu aksi yang harus diulang
selama kondisi yang ditentukan untuk perulangan
masih dipenuhi

• Harus berhenti
3
Perulangan
• Perulangan dapat dibedakan atas 3 jenis :
– Berdasarkan jumlah/banyaknya perulangan yang
dilakukan
– Berdasarkan kondisi berhenti
– Berdasarkan kondisi Perulangan

4
Banyaknya Perulangan
• Tergantung banyaknya perulangan
• Pasti
Repeat N Times
Blok_Aksi
 N menyatakan banyaknya perulangan yang akan dilakukan
 Blok_Aksi : aksi atau pernyataan yang akan dilakukan

sebanyak N kali.
5
Banyaknya Perulangan
• Contoh-1. Buat algoritma untuk menampilkan
kata “FIKOM” sebanyak 10 baris
Algoritma Cetak
{Mencetak Kata “FIKOM” sebanyak 10 baris}
Kamus
Algoritma
Repeat 10 Times
Output(“FIKOM”)
6
Banyaknya Perulangan
• Contoh-2. Buat algoritma untuk mencetak
bilangan 1 sampai dengan 10.
Algoritma Cetak
{Mencetak Bilangan 1 sampai dengan 10}
Kamus
I : integer
Algoritma
I0
Repeat 10 Times
II+1
Output( i )

7
Banyaknya Perulangan
• Contoh-3. Buat algoritma untuk menghitung
jumlah bilangan 1 sampai dengan 10
kemudian mencetak jumlahnya.

• Contoh-4. Buat algoritma untuk membaca 5
buah bilangan kemudian hitung jumlah dan
rata-rata ke lima bilangan dan mencetak
jumlah dan rata-ratanya.
8
Banyaknya Perulangan
Algoritma Cetak
{Menghitung jumlah Bilangan 1 sampai dengan 10 dan
mencetak jumlah bilangan}
Kamus
I
: integer
Jumlah : Integer
Algoritma
I0
Jumlah  0
Repeat 10 Times
II+1
Jumlah  Jumlah + I
Output( Jumlah )
9
Banyaknya Perulangan
Algoritma Cetak
{Menghitung jumlah dan rata rata 5 bilangan dan mencetak jumlah dan
rata rata bilangan}
Kamus
Bilangan : integer
Banyak
: integer {Banyaknya Bilangan}
Jumlah
: Integer {Hasil Jumlah Bilangan}
Rata_Rata : Real
{Hasil Rata-Rata bilangan}
Algoritma
Banyak  0
Jumlah  0
Repeat 5 Times
Input(Bilangan)
{membaca Bilangan}
Banyak  Banyak + 1
{menghitung banyaknya Bilangan}
Jumlah  Jumlah + Bilangan {menghitung jumlah bilangan}
Rata_Rata  Jumlah / Banyak
{menghitung Rata rata bilangan}
Output( Jumlah, Rata_Rata )
{mencetak Jumlah dan Rata-rata} 10
Banyaknya Perulangan
• Pada umumnya notasi ini sering dituliskan
dengan menggunakan notasi FOR – TO |
DOWNTO – DO

11
Banyaknya Perulangan
FOR var  awal TO Akhir DO
Blok_Pernyataan
END FOR

• var : variabel counter perulangan dengan
nilai mulai dari awal hingga akhir
• awal
: harga awal dari var, awal akhir
• akhir
: harga akhir dari var
• Blok Pernyataan : Pernyataan yang akan
dilakukan selama nilai var nilai akhir
12
Banyaknya Perulangan
FOR var  awal DOWNTO Akhir DO
Blok_Pernyataan
END FOR

• var : variabel counter perulangan dengan
nilai mulai dari awal hingga akhir
• awal
: harga awal dari var, awal akhir
• akhir
: harga akhir dari var
• Blok_Pernyataan : Pernyataan yang akan
dilakukan selama nilai var dari nilai akhir
13
Banyaknya Perulangan
• Ke empat algoritma di atas akan dibuat
menggunakan FOR-TO-DO yang disertai
dengan programnya dalam Bahasa
Pemrograman C++

14
Banyaknya Perulangan
Algoritma Cetak
{Mencetak Kata “FIKOM” sebanyak 10 baris}
Kamus
i : integer
Algoritma
For i  1 To 10 DO
Output(“FIKOM”)

15
Banyaknya Perulangan
#include<iostream.h>
#include<conio.h>
main()
{
int i;
for(i=1; i<=10; i++)
{
cout<<"FIKOM n";
}
getch();
}

16
Banyaknya Perulangan
Algoritma Cetak
{Mencetak Bilangan 1 sampai dengan 10}
Kamus
I : integer
Algoritma
FOR i  1 TO 10 DO
OUTPUT( i )
END FOR

17
Banyaknya Perulangan
#include<iostream.h>
#include<conio.h>
main()
{
int i;
for(i=1; i<=10; i++)
{
cout<<i<<" ";
}
getch();
}

18
Banyaknya Perulangan
Algoritma Cetak
{Menghitung jumlah Bilangan 1 sampai dengan 10 dan
mencetak jumlah bilangan}
Kamus
I
: integer
Jumlah : Integer
Algoritma
Jumlah  0
FOR i  1 TO 10 DO
Jumlah  Jumlah + I
END FOR
OUTPUT( Jumlah )
19
Banyaknya Perulangan
#include<iostream.h>
#include<conio.h>
main()
{
int i, jumlah=0;
for(i=1; i<=10; i++)
{
jumlah = jumlah + i;
}
cout<<"Jumlah Bilangan = "<<jumlah;
getch();
}
20
Banyaknya Perulangan
Algoritma Cetak
{Menghitung jumlah dan rata rata 5 bilangan dan mencetak jumlah dan rata rata
bilangan}
Kamus
Banyak
: integer {Banyaknya Bilangan}
Jumlah
: Integer {Hasil Jumlah Bilangan}
Bilangan : integer {Bilangan yang akan dihitung}
I
: integer;
Rata_Rata : Real
{Hasil Rata-Rata bilangan}
Algoritma
Banyak  0
Jumlah  0
For i  1 TO 5 DO
Input(Bilangan)
{membaca Bilangan}
Banyak  Banyak + 1
{menghitung banyaknya Bilangan}
Jumlah  Jumlah + Bilangan {menghitung jumlah bilangan}
END FOR
Rata_Rata  Jumlah / Banyak
{menghitung Rata rata bilangan}
Output( Jumlah, Rata_Rata )
{mencetak Jumlah dan Rata-rata}
21
Banyaknya Perulangan
#include<iostream.h>
#include<conio.h>
main()
{
int i, Bilangan;
int Banyak=0;
int Jumlah=0;
float Rata_Rata;
for(i=1; i<=5; i++)
{
cout<<"Masukkan Bilangan : ";
cin>>Bilangan;
Banyak = Banyak + 1;
Jumlah = Jumlah + Bilangan;
}
Rata_Rata = Jumlah / Banyak;
cout<<"Jumlah Bilangan
= "<<Jumlah<<endl;
cout<<"Rata Rata Bilangan = "<<Rata_Rata;
getch();
}
22
23
Kondisi Berhenti
• Tergantung kondisi pada perulangan
• Akan dilakukan perulangan selama kondisi
dipenuhi
• Dilakukan minimal satu kali
• Mungkin terjadi “kebocoran”

24
Kondisi Berhenti
Repeat
Aksi
Until Kondisi-berhenti
• Aksi akan berhenti jika kondisi-berhenti
dipenuhi (bernilai true), akan diulang jika
kondisi-berhenti belum tercapai (bernilai
false).
• Aksi akan dikerjakan minimal satu kali
• Test terhadap kondisi_berhentu dilakukan

25
Kondisi Berhenti
• Contoh-5. Buatlah algoritma untuk
membaca sebuah bilangan bulat positif N,
menuliskan 1, 2, 3, ..., N dan menjumlahkan
1+2+3+...+N serta menuliskan hasil
penjumlahan.

26
Kondisi Berhenti
Algoritma Jumlah_N_Bilangan
{Menjumlahkan 1+2+3+...+N dengan N yang dibaca}
Kamus
I
: Integer {bilangan yang akan dijumlahkan}
N
: Integer > 0 {banyaknya bilangan yang akan dijumlahkan}
Jumlah : Integer
{Jumlah 1+2+3+...+N }
Algoritma
Input(N)
Jumlah  0
{Inisialisasi}
I1
{elemen pertama}
Repeat
Output(I)
Jumlah  Jumlah + I
II+1
{elemen berikutnya}
Until (I > N)
{I > N}
27
Output(Jumlah)
{Terminasi}
Kondisi Berhenti
#include<iostream.h>
#include<conio.h>
main()
{
int Banyak=0, N;
int Jumlah=0;
cout<<"Masukkan Bilangan : ";
cin>>N;
do
{
Banyak = Banyak + 1;
Jumlah = Jumlah + Banyak;
}
while(Banyak < N);
cout<<"Jumlah Bilangan
= "<<Jumlah;
getch();
}
28
Kondisi Berhenti
#include<iostream.h>
#include<conio.h>
main()
{
int Banyak=0, N;
int Jumlah=0;
cout<<"Masukkan Bilangan : ";
cin>>N;
do
{
Jumlah = Jumlah + Banyak;
Banyak = Banyak + 1;
}
while(Banyak < N);
cout<<"Jumlah Bilangan
= "<<Jumlah;
getch();
}

29
Kondisi Berhenti
• Contoh-6. Tuliskanlah sebuah algoritma yang
membaca nilai-nilai integer yang dibaca dari
piranti masukan, dan menjumlahkan nilainya.
Pemasukan nilai integer diakhiri dengan 9999.

30
Kondisi Berhenti
Algoritma Jumlah_Bilangan
{Menjumlahkan Bilangan yang dibaca dari piranti masukan dengan
pembacaan bilangan diakhiri dengan 9999}
Kamus
Bilangan : Integer {bilangan yang akan dijumlahkan}
Jumlah : Integer
{Jumlah Bilangan}
Algoritma
Jumlah  0
{Inisialisasi}
Input(Bilangan)
{elemen pertama}
Repeat
Output(Bilangan)
Jumlah  Jumlah + Bilangan
Input(Bilangan)
{elemen berikutnya}
Until (Bilangan = 9999)
31
Output(Jumlah)
{Terminasi}
Kondisi Berhenti
#include<iostream.h>
#include<conio.h>
main()
{
int Bilangan;
int Jumlah=0;
cout<<"Masukkan Bilangan : ";
cin>>Bilangan;
// elemen pertama
do
{
cout<<Bilangan<<endl;
Jumlah = Jumlah + Bilangan;
cout<<"Masukkan Bilangan : ";
cin>>Bilangan;
// elemen berikutnya
}
while(Bilangan != 9999);
cout<<"Jumlah Bilangan
= "<<Jumlah<<endl;
getch();
}

32
Kondisi Berhenti
• Bandingkan dengan algoritma berikut

33
Kondisi Berhenti
Algoritma Jumlah_Bilangan
{Menjumlahkan Bilangan yang dibaca dari piranti masukan dengan pembacaan bilangan
diakhiri dengan 9999}
Kamus
Bilangan : Integer {bilangan yang akan dijumlahkan}
Jumlah : Integer
{Jumlah Bilangan}
Algoritma
Input (Bilangan)
{elemen pertama}
IF (Bilangan 9999) Then
Jumlah  0
{Inisialisasi}
Repeat
Output(Bilangan)
Jumlah  Jumlah + Bilangan
Input(Bilangan)
{elemen berikutnya}
Until (Bilangan = 9999)
Else
Output(‘Kasus Kosong, yang diketik langsung 9999’)
End-IF
Output(Jumlah)
{Terminasi}
34
Kondisi Berhenti
#include<iostream.h>
#include<conio.h>
main()
{
int Bilangan=0;
int Jumlah=0;
cout<<"Masukkan Bilangan : ";
cin>>Bilangan;
// elemen pertama
if(Bilangan != 9999)
{
do
{
cout<<Bilangan<<endl;
Jumlah = Jumlah + Bilangan;
cout<<"Masukkan Bilangan : ";
cin>>Bilangan;
// elemen nberikutnya
}
while(Bilangan != 9999);
}
else
cout<<"Kasus Kosong.....n";
cout<<"Jumlah Bilangan
= "<<Jumlah<<endl;
getch();
}

35
Kondisi Perulangan
• Tergantung perulangan yang ada
• Kemungkinan tidak pernah dilakukan

36
Kondisi Perulangan
While (kondisi_perulangan)
Do
Aksi
End-While

• Test kondisi_perulangan, jika true maka
Aksi akan dikerjakan kemudian ditest
kembali kondisi_perulangan, tetapi jika
kondisi_perulangan bernilai false maka
keluar
37
Kondisi Perulangan
• Contoh-7. Buatlah algoritma untuk membaca
sebuah bilangan bulat positif N, menuliskan 1,
2, 3, ..., N dan menjumlahkan 1+2+3+...+N
serta menuliskan hasil penjumlahan.

38
Kondisi Perulangan
Algoritma Jumlah_N_Bilangan
{Menjumlahkan 1+2+3+...+N dengan N yang dibaca}
Kamus
I
: Integer {bilangan yang akan dijumlahkan}
N
: Integer > 0 {banyaknya bilangan yang akan dijumlahkan}
Jumlah : Integer
{Jumlah 1+2+3+...+N }
Algoritma
Input(N)
Jumlah  0
{Inisialisasi}
I1
{elemen pertama}
While (i N) Do
Output(I)
Jumlah  Jumlah + I
II+1
{elemen berikutnya}
End-While
{I > N}
39
Output(Jumlah)
{Terminasi}
Kondisi Perulangan
#include<iostream.h>
#include<conio.h>
main()
{
int i=1;
int N;
int Jumlah=0;
cout<<"Masukkan Bilangan : ";
cin>>N;
while(i<=N)
{
Jumlah = Jumlah + i;
i++;
}
cout<<"Jumlah Bilangan = "<<Jumlah<<endl;
getch();
}
40
Kondisi Perulangan
• Bandingkan dengan program berikut

41
Kondisi Perulangan
#include<iostream.h>
#include<conio.h>
main()
{
int i=0;
int N;
int Jumlah=0;
cout<<"Masukkan Bilangan : ";
cin>>N;
while(i<N)
{
i++;
Jumlah = Jumlah + i;
}
cout<<"Jumlah Bilangan = "<<Jumlah<<endl;
getch();
}

42
Kondisi Perulangan
• Contoh-8. Tuliskanlah sebuah algoritma yang
membaca nilai-nilai integer yang dibaca dari
piranti masukan, dan menjumlahkan nilainya.
Pemasukan nilai integer diakhiri dengan 9999.

43
Kondisi Perulangan
Algoritma Jumlah_Bilangan
{Menjumlahkan Bilangan yang dibaca dari piranti masukan dengan
pembacaan bilangan diakhiri dengan 9999}
Kamus
Bilangan : Integer {bilangan yang akan dijumlahkan}
Jumlah : Integer
{Jumlah Bilangan}
Algoritma
Jumlah  0
{Inisialisasi}
Input(Bilangan)
{elemen pertama}
While (Bilangan 9999) Do
Output(Bilangan)
Jumlah  Jumlah + Bilangan
Input(Bilangan)
{elemen berikutnya}
End-While
Output(Jumlah)
{Terminasi}
44
Kondisi Perulangan
#include<iostream.h>
#include<conio.h>
main()
{
int Bilangan;
int Jumlah=0;
cout<<"Masukkan Bilangan : ";
cin>>Bilangan;
while(Bilangan != 9999)
{
cout<<"Bilangannya adalah : "<<Bilangan <<endl;
Jumlah = Jumlah + Bilangan;
cout<<"Masukkan Bilangan : ";
cin>>Bilangan;
}
cout<<"Jumlah Bilangan
= "<<Jumlah<<endl;
getch();
}

45
Kondisi Perulangan
• Contoh-10. Tuliskanlah sebuah algoritma yang
membaca nilai-nilai integer yang dibaca dari
piranti masukan, dan mencacah banyaknya
nilai integer yang diketikkan. Pemasukan nilai
integer diakhiri dengan 9999. ,,,,,,,,,,,,,,,

46
Kondisi Perulangan
• Contoh-10. Tuliskanlah sebuah algoritma yang
membaca nilai-nilai integer yang dibaca dari
piranti masukan, dan mencacah banyaknya
nilai integer yang diketikkan. Pemasukan nilai
integer diakhiri dengan 9999. ,,,,,,,,,,,,,,,

47
Kondisi Perulangan
Algoritma Jumlah_Bilangan_1
{Menjumlahkan Bilangan yang dibaca dari piranti masukan dan mencacah
banyaknya nilai integer yang diketikkan. Pembacaan bilangan diakhiri
dengan 9999}
Kamus
Bilangan : Integer {bilangan yang akan dijumlahkan}
I
: Integer
{banyaknya Bilangan integer yang sudah dibaca}
Algoritma
I 0
{Inisialisasi}
Input(Bilangan)
{elemen pertama}
While (Bilangan 9999) Do
Output(Bilangan)
I I+1
Input(Bilangan)
{elemen berikutnya}
End-While
Output(I)
{Terminasi}
48
Kondisi Perulangan
#include<iostream.h>
#include<conio.h>
main()
{
int Bilangan;
int i=0;
cout<<"Masukkan Bilangan : ";
cin>>Bilangan;
while(Bilangan != 9999)
{
cout<<"Bilangannya adalah : "<<Bilangan <<endl;
i++;
cout<<"Masukkan Bilangan : ";
cin>>Bilangan;
}
cout<<"Banyak Bilangan
= "<< i;
getch();
}

49
Kondisi Perulangan
• Bandingkan dengan algoritma berikut ini.......

50
Algoritma Jumlah_Bilangan_2
{Menjumlahkan Bilangan yang dibaca dari piranti masukan dan mencacah
banyaknya nilai integer yang diketikkan. Pembacaan bilangan diakhiri
dengan 9999}
Kamus
Bilangan : Integer {bilangan yang akan dijumlahkan}
I
: Integer
{banyaknya Bilangan integer yang sudah dibaca}
Algoritma
I1
{Inisialisasi}
Input(Bilangan)
{elemen pertama}
While (Bilangan 9999) Do
Output(Bilangan)
I I+1
Input(Bilangan)
{elemen berikutnya}
End-While
51
Output(I-1)
{Terminasi}
Kondisi Perulangan
#include<iostream.h>
#include<conio.h>
main()
{
int Bilangan;
int i=1;
cout<<"Masukkan Bilangan : ";
cin>>Bilangan;
while(Bilangan != 9999)
{
cout<<"Bilangannya adalah : "<<Bilangan <<endl;
i++;
cout<<"Masukkan Bilangan : ";
cin>>Bilangan;
}
cout<<"Banyak Bilangan
= "<< i-1;
getch();
}

52
Kondisi Perulangan
• Ada bermacam-macam notasi perulangan,
sebenarnya satu bentuk perulangan dapat
“diterjemahkan” menjadi bentuk yang lain
dengan notasi algoritmik yang tersedia.
• Persoalannya adalah “Bagimana memilih
Notasi perulangan yang benar dan tepat untuk
kelas persoalan tertentu”.
• Tidak semua bahasa pemrograman yang ada
menyediakan semua bentuk perulangan di
atas. Pemilihan bentuk perulangan sangatlah

53
54
Perulangan Bersarang (Nested Loop)
• Adalah suatu perulangan yang ada dalam
perulangan.
• Perulangan yang paling dalam akan
diselesaikan terlebih dahulu baru perulangan
yang diluar.
• Perlu diperhatikan bahwa variabel counter
untuk masing-masing perulangan tidak
diperkenankan sama serta tidak
diperkenankan juga saling memotong
55
Perulangan Bersarang (Nested Loop)
Algoritma
FOR Var1  awal1 TO akhir1 DO
[Pernyataan]
FOR Var2  awal2 TO akhir2 DO
Blok Pernyataan;
END FOR
[Pernyataan]
END FOR

56
Perulangan Bersarang (Nested Loop)
Algoritma
WHIE (Kondisi_1) DO
[Pernyataan]
WHILE (kondisi_2) DO
Blok Pernyataan;
END WHILE
[Pernyataan]
END WHILE
57
Perulangan Bersarang (Nested Loop)
Algoritma
REPEAT
[Pernyataan]
REPEAT
Blok Pernyataan;
UNTIL (Kondisi_2)
[Pernyataan]
REPEAT (Kondisi_1)

58
Perulangan Bersarang (Nested Loop)
• Contoh-11 : Buatlah algoritma untuk
mencetak keluaran seperti berikut.
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
59
Perulangan Bersarang (Nested Loop)
Algoritma Cetak_1
{algoritma mencetak 0 sampai 9 sebanyak 5 baris}
Kamus
I, j : integer
Algoritma
FOR i  1 TO 5 DO
FOR j  0 TO 9 DO
OUTPUT(j)
END FOR
END FOR
60
Perulangan Bersarang (Nested Loop)
#include<iostream.h>
#include<conio.h>
main()
{
int i, j;
for(i=1; i<=5; i++)
{
for(j=0; j<=9;j++)
{
cout<< j << " ";
}
cout<<endl;
}
getch();
}

61
Perulangan Bersarang (Nested Loop)
• Contoh-12. Buat algoritma untuk
membaca sebuah bilangan bulat N,
kemudian cetaklah keluaran seperti
berikut 5ini.
1234 67
11111111
1
a.
b.
123456
12345
1234
123
12
1

2222222
333333
44444
5555
666
77
8

22
333
4444
55555
666666
7777777
88888888

62
Perulangan Bersarang (Nested Loop)
#include<iostream.h>
#include<conio.h>
main()
{
int i, j, N;
cout<<"Masukkan Suatu Bilangan : ";
cin>>N;
for(i=1; i<=N; i++)
{
for(j=1; j<=N-i+1; j++)
{
cout<< j << " ";
}
cout<<endl;
}
getch();
}
63
Perulangan Bersarang (Nested Loop)
#include<iostream.h>
#include<conio.h>
main()
{
int i, j, N;
cout<<"Masukkan Suatu Bilangan : ";
cin>>N;
for(i=1; i<=N; i++)
{
for(j=1; j<=N-i+1; j++)
{
cout<< i << " ";
}
cout<<endl;
}
getch();
}
64
Perulangan Bersarang (Nested Loop)
#include<iostream.h>
#include<conio.h>
main()
{
int i, j, N;
cout<<"Masukkan Suatu Bilangan : ";
cin>>N;
for(i=1; i<=N; i++)
{
for(j=1; j<=i; j++)
{
cout<< i << " ";
}
cout<<endl;
}
getch();
}
65
Soal Latihan
1. Buatlah algoritma dan program untuk
mencetak semua bilangan yang habis dibagi
3 mulai 1 sampai 100.
2. Buatlah algoritma dan program untuk
mencetak bilangan yang habis dibagi 2 dan 3
mulai 10 sampai dengan 100.
3. Buatlah algoritma dan program untuk
mencetak bilangan yang habis dibagi 2 dan 3
mulai 10 sampai dengan 100 serta
menghitung jumah dan rata-ratanya.

66
Soal Latihan
1. Bacalah N buah bilangan secara acak
kemudian hitunglah jumlah dan rata-rata
bilangan hanya yang habis dibagi 2 dan 3 dari
sederetan bilangan. Buat algoritma dan
programnya.
2. Buat algoritma dan program untuk mencetak
dan menghitung deret fibonacci sampai
dengan 50
3. Buat algoritma dan program untuk mencetak
dan menghitung deret fibonacci sebanyak 50

67
Soal Latihan
1. Dibaca dua buah bilangan bulat positif (M
dan N). Kedua bilangan akan dikalikan (MxN)
dengan melakukan perjumlahan. Misal
5x4=5+5+5+5. Buatlah algoritma dan
program untuk melakukan perkalian dengan
cara perjumlahan.
2. Dibaca dua buah bilangan bulat positif (M
dan N). Kedua bilangan akan dihitung
pangkatnya (MN) dengan melakukan
perkalian M sebanyak N. Misal 54=5x5x5x5.

68
Soal Latihan
1. Untuk menghitung sisa bagi dan hasil bagi bulat
dari dua buah bilangan bulat positif (M dan N)
dapat dilakukan dengan MOD dan DIV. Dibaca
dua buah bilangan bulat (M dan N) kemudian
akan dihitung sisa bagi dan hasil bagi bulat dari
kedua bilangan tersebut dengan tidak
menggunakan MOD dan DIV. Untuk menghitung
Sisa Bagi dapat dilakukan dengan mengurangi M
dengan N hingga nilai M lebih kecil dari N.
Banyaknya pengurangan yang dilakukan adalah
merupakan Hasil Bagi Bulat. Misal 13 dan 2.
Kurangkan 13 dengan 2 hingga hasilnya lebih
kecil dari 2. Dan hitung berapa banyaknya
pengurangan yang dilakukan. 13-2=11; 11-2=9;

69
Sampai ketemu di
materi berikutnya...

 Array

70

Más contenido relacionado

La actualidad más candente

Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...Fatma Qolbi
 
Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)zachrison htg
 
Penyederhanaan Karnaugh Map
Penyederhanaan Karnaugh MapPenyederhanaan Karnaugh Map
Penyederhanaan Karnaugh MapCheria Asyifa
 
Tugas mandiri struktur data
Tugas mandiri struktur dataTugas mandiri struktur data
Tugas mandiri struktur dataAsep Jaenudin
 
Pengertian dan Representasi Graph
Pengertian dan Representasi GraphPengertian dan Representasi Graph
Pengertian dan Representasi GraphZaldy Eka Putra
 
Logika matematika pertemuan 2 (inferensi)
Logika matematika pertemuan 2 (inferensi)Logika matematika pertemuan 2 (inferensi)
Logika matematika pertemuan 2 (inferensi)Meycelino A. T
 
Materi 3 Finite State Automata
Materi 3   Finite State AutomataMateri 3   Finite State Automata
Materi 3 Finite State Automataahmad haidaroh
 
Makalah Fuzzy Logic Dan Penerapannya
Makalah Fuzzy Logic Dan PenerapannyaMakalah Fuzzy Logic Dan Penerapannya
Makalah Fuzzy Logic Dan Penerapannyaradar radius
 
Bab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi booleanBab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi booleanCliquerz Javaneze
 
Penyederhanaan Fungsi Boolean
Penyederhanaan Fungsi BooleanPenyederhanaan Fungsi Boolean
Penyederhanaan Fungsi BooleanFahrul Razi
 
Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1BAIDILAH Baidilah
 
Arsitektur desain data pada RPL
Arsitektur desain data pada RPLArsitektur desain data pada RPL
Arsitektur desain data pada RPLari alfian
 
Makalah Kegunaan Matematika Diskrit pada Teknik Informatika
Makalah Kegunaan Matematika Diskrit pada Teknik InformatikaMakalah Kegunaan Matematika Diskrit pada Teknik Informatika
Makalah Kegunaan Matematika Diskrit pada Teknik Informatikasaid zulhelmi
 
Aturan Inferensi dan Metode Pembuktian
Aturan Inferensi dan Metode PembuktianAturan Inferensi dan Metode Pembuktian
Aturan Inferensi dan Metode PembuktianFahrul Usman
 
struktur pengulangan di pascal bagian 2
struktur pengulangan di pascal bagian 2struktur pengulangan di pascal bagian 2
struktur pengulangan di pascal bagian 2Alfian Syamsurizal
 

La actualidad más candente (20)

Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
 
6 lanjutan perulangan
6 lanjutan perulangan6 lanjutan perulangan
6 lanjutan perulangan
 
02.logika
02.logika02.logika
02.logika
 
Kumpulan program-pascal
Kumpulan program-pascalKumpulan program-pascal
Kumpulan program-pascal
 
Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)
 
Penyederhanaan Karnaugh Map
Penyederhanaan Karnaugh MapPenyederhanaan Karnaugh Map
Penyederhanaan Karnaugh Map
 
Tugas mandiri struktur data
Tugas mandiri struktur dataTugas mandiri struktur data
Tugas mandiri struktur data
 
Pengertian dan Representasi Graph
Pengertian dan Representasi GraphPengertian dan Representasi Graph
Pengertian dan Representasi Graph
 
Eliminasi gauss
Eliminasi gaussEliminasi gauss
Eliminasi gauss
 
Logika matematika pertemuan 2 (inferensi)
Logika matematika pertemuan 2 (inferensi)Logika matematika pertemuan 2 (inferensi)
Logika matematika pertemuan 2 (inferensi)
 
Materi 3 Finite State Automata
Materi 3   Finite State AutomataMateri 3   Finite State Automata
Materi 3 Finite State Automata
 
Makalah Fuzzy Logic Dan Penerapannya
Makalah Fuzzy Logic Dan PenerapannyaMakalah Fuzzy Logic Dan Penerapannya
Makalah Fuzzy Logic Dan Penerapannya
 
Bab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi booleanBab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi boolean
 
Penyederhanaan Fungsi Boolean
Penyederhanaan Fungsi BooleanPenyederhanaan Fungsi Boolean
Penyederhanaan Fungsi Boolean
 
Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1
 
Arsitektur desain data pada RPL
Arsitektur desain data pada RPLArsitektur desain data pada RPL
Arsitektur desain data pada RPL
 
Makalah Kegunaan Matematika Diskrit pada Teknik Informatika
Makalah Kegunaan Matematika Diskrit pada Teknik InformatikaMakalah Kegunaan Matematika Diskrit pada Teknik Informatika
Makalah Kegunaan Matematika Diskrit pada Teknik Informatika
 
Aturan Inferensi dan Metode Pembuktian
Aturan Inferensi dan Metode PembuktianAturan Inferensi dan Metode Pembuktian
Aturan Inferensi dan Metode Pembuktian
 
Himpunan matematika diskrit
Himpunan matematika diskritHimpunan matematika diskrit
Himpunan matematika diskrit
 
struktur pengulangan di pascal bagian 2
struktur pengulangan di pascal bagian 2struktur pengulangan di pascal bagian 2
struktur pengulangan di pascal bagian 2
 

Destacado

Jawaban soal uts dasar program komputer
Jawaban soal uts dasar program komputerJawaban soal uts dasar program komputer
Jawaban soal uts dasar program komputerPebrian Prestya
 
Silabus c1 pemrograman-dasar-klas_x_semester_2-final
Silabus c1 pemrograman-dasar-klas_x_semester_2-finalSilabus c1 pemrograman-dasar-klas_x_semester_2-final
Silabus c1 pemrograman-dasar-klas_x_semester_2-finalIkatan Guru Indonesia
 
Algoritma perulangan
Algoritma perulanganAlgoritma perulangan
Algoritma perulanganazkiyaku
 
MATERI PEMOGRAMAN DASAR
MATERI PEMOGRAMAN DASARMATERI PEMOGRAMAN DASAR
MATERI PEMOGRAMAN DASARndriehs
 
Soal UAS Pemrograman Dasar kelas 10 semester genap tahun ajaran 2014-2015
Soal UAS Pemrograman Dasar kelas 10 semester genap tahun ajaran 2014-2015Soal UAS Pemrograman Dasar kelas 10 semester genap tahun ajaran 2014-2015
Soal UAS Pemrograman Dasar kelas 10 semester genap tahun ajaran 2014-2015Saprudin Eskom
 
soal-latihan-logika-algoritma-semester1
soal-latihan-logika-algoritma-semester1soal-latihan-logika-algoritma-semester1
soal-latihan-logika-algoritma-semester1Budi Kurniawan
 
Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)
Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)
Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)Nabil Muhammad Firdaus
 
PENGERTIAN ALGORITMA DAN PEMROGRAMAN
PENGERTIAN ALGORITMA DAN PEMROGRAMANPENGERTIAN ALGORITMA DAN PEMROGRAMAN
PENGERTIAN ALGORITMA DAN PEMROGRAMANAziz Moeslim
 
Pengulangan for Algoritma
Pengulangan for AlgoritmaPengulangan for Algoritma
Pengulangan for Algoritmacasnadi
 
Pertemuan 1 algoritma pemrograman dan flowchart
Pertemuan 1   algoritma pemrograman dan flowchartPertemuan 1   algoritma pemrograman dan flowchart
Pertemuan 1 algoritma pemrograman dan flowchartiphientcomp
 
Rpp perograman dasar smk kelas 11 semester ganjil
Rpp perograman dasar smk kelas 11 semester ganjilRpp perograman dasar smk kelas 11 semester ganjil
Rpp perograman dasar smk kelas 11 semester ganjilSaprudin Eskom
 
Rpp pemrograman dasar kelas 10 semester ganjil
Rpp pemrograman dasar kelas 10 semester ganjilRpp pemrograman dasar kelas 10 semester ganjil
Rpp pemrograman dasar kelas 10 semester ganjilSaprudin Eskom
 
Rpp pemrograman dasar kelas 10 semester genap
Rpp pemrograman dasar kelas 10 semester genapRpp pemrograman dasar kelas 10 semester genap
Rpp pemrograman dasar kelas 10 semester genapSaprudin Eskom
 

Destacado (18)

Modul 6 Perulangan
Modul 6 PerulanganModul 6 Perulangan
Modul 6 Perulangan
 
Jawaban soal uts dasar program komputer
Jawaban soal uts dasar program komputerJawaban soal uts dasar program komputer
Jawaban soal uts dasar program komputer
 
Pengenalan c++ bagian 3
Pengenalan c++ bagian 3Pengenalan c++ bagian 3
Pengenalan c++ bagian 3
 
Kelompok viii
Kelompok viiiKelompok viii
Kelompok viii
 
Silabus c1 pemrograman-dasar-klas_x_semester_2-final
Silabus c1 pemrograman-dasar-klas_x_semester_2-finalSilabus c1 pemrograman-dasar-klas_x_semester_2-final
Silabus c1 pemrograman-dasar-klas_x_semester_2-final
 
Algoritma perulangan
Algoritma perulanganAlgoritma perulangan
Algoritma perulangan
 
Pertemuan iv
Pertemuan ivPertemuan iv
Pertemuan iv
 
MATERI PEMOGRAMAN DASAR
MATERI PEMOGRAMAN DASARMATERI PEMOGRAMAN DASAR
MATERI PEMOGRAMAN DASAR
 
Soal UAS Pemrograman Dasar kelas 10 semester genap tahun ajaran 2014-2015
Soal UAS Pemrograman Dasar kelas 10 semester genap tahun ajaran 2014-2015Soal UAS Pemrograman Dasar kelas 10 semester genap tahun ajaran 2014-2015
Soal UAS Pemrograman Dasar kelas 10 semester genap tahun ajaran 2014-2015
 
soal-latihan-logika-algoritma-semester1
soal-latihan-logika-algoritma-semester1soal-latihan-logika-algoritma-semester1
soal-latihan-logika-algoritma-semester1
 
Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)
Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)
Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)
 
PENGERTIAN ALGORITMA DAN PEMROGRAMAN
PENGERTIAN ALGORITMA DAN PEMROGRAMANPENGERTIAN ALGORITMA DAN PEMROGRAMAN
PENGERTIAN ALGORITMA DAN PEMROGRAMAN
 
Pengulangan for Algoritma
Pengulangan for AlgoritmaPengulangan for Algoritma
Pengulangan for Algoritma
 
Rpp pemrograman dasar
Rpp pemrograman dasarRpp pemrograman dasar
Rpp pemrograman dasar
 
Pertemuan 1 algoritma pemrograman dan flowchart
Pertemuan 1   algoritma pemrograman dan flowchartPertemuan 1   algoritma pemrograman dan flowchart
Pertemuan 1 algoritma pemrograman dan flowchart
 
Rpp perograman dasar smk kelas 11 semester ganjil
Rpp perograman dasar smk kelas 11 semester ganjilRpp perograman dasar smk kelas 11 semester ganjil
Rpp perograman dasar smk kelas 11 semester ganjil
 
Rpp pemrograman dasar kelas 10 semester ganjil
Rpp pemrograman dasar kelas 10 semester ganjilRpp pemrograman dasar kelas 10 semester ganjil
Rpp pemrograman dasar kelas 10 semester ganjil
 
Rpp pemrograman dasar kelas 10 semester genap
Rpp pemrograman dasar kelas 10 semester genapRpp pemrograman dasar kelas 10 semester genap
Rpp pemrograman dasar kelas 10 semester genap
 

Similar a Materi 6. perulangan

Similar a Materi 6. perulangan (20)

ALOGARITMA 4
ALOGARITMA 4ALOGARITMA 4
ALOGARITMA 4
 
modul algoritma Bab 4
modul algoritma Bab 4modul algoritma Bab 4
modul algoritma Bab 4
 
Pertemuan 6 - Struktur Perulangan
Pertemuan 6 - Struktur PerulanganPertemuan 6 - Struktur Perulangan
Pertemuan 6 - Struktur Perulangan
 
Topik 8 Perulangan
Topik 8 PerulanganTopik 8 Perulangan
Topik 8 Perulangan
 
Algoritma 1 pertemuan 5
Algoritma 1 pertemuan 5Algoritma 1 pertemuan 5
Algoritma 1 pertemuan 5
 
Algoritma1 Temu 9.pdf
Algoritma1 Temu 9.pdfAlgoritma1 Temu 9.pdf
Algoritma1 Temu 9.pdf
 
Operasi pengulangan
Operasi pengulanganOperasi pengulangan
Operasi pengulangan
 
Dasar Pemrogaman Algoritma
Dasar Pemrogaman AlgoritmaDasar Pemrogaman Algoritma
Dasar Pemrogaman Algoritma
 
listiati univ bung hata (1110013211051) Bahasa pemrograman pascal
listiati univ bung hata (1110013211051) Bahasa pemrograman pascallistiati univ bung hata (1110013211051) Bahasa pemrograman pascal
listiati univ bung hata (1110013211051) Bahasa pemrograman pascal
 
Materi 3. flowchart
Materi 3. flowchartMateri 3. flowchart
Materi 3. flowchart
 
Algo temu 6 & 7 - PENGULANGAN
Algo temu 6 & 7 - PENGULANGANAlgo temu 6 & 7 - PENGULANGAN
Algo temu 6 & 7 - PENGULANGAN
 
bab3_alpro1.pptx
bab3_alpro1.pptxbab3_alpro1.pptx
bab3_alpro1.pptx
 
Algoritma pemrograman 9
Algoritma pemrograman 9Algoritma pemrograman 9
Algoritma pemrograman 9
 
Punya awan
Punya awanPunya awan
Punya awan
 
Tugas algoritma
Tugas algoritmaTugas algoritma
Tugas algoritma
 
Tugas algoritma
Tugas algoritmaTugas algoritma
Tugas algoritma
 
Pseudocode
PseudocodePseudocode
Pseudocode
 
207 p05
207 p05207 p05
207 p05
 
Tugas C++ - Dian Aditya - 2009/2010
Tugas C++ - Dian Aditya - 2009/2010Tugas C++ - Dian Aditya - 2009/2010
Tugas C++ - Dian Aditya - 2009/2010
 
Tugas algoritma arif
Tugas algoritma arifTugas algoritma arif
Tugas algoritma arif
 

Más de Melva Amma Kalian

Hubungan antara-kebiasaan-menonton-acara-informasi-di-televisi-terhadap-peril...
Hubungan antara-kebiasaan-menonton-acara-informasi-di-televisi-terhadap-peril...Hubungan antara-kebiasaan-menonton-acara-informasi-di-televisi-terhadap-peril...
Hubungan antara-kebiasaan-menonton-acara-informasi-di-televisi-terhadap-peril...Melva Amma Kalian
 
Materi 4. type, nama & harga
Materi 4. type, nama & hargaMateri 4. type, nama & harga
Materi 4. type, nama & hargaMelva Amma Kalian
 
Materi 2. pengertian dasar algoritma
Materi 2. pengertian dasar algoritmaMateri 2. pengertian dasar algoritma
Materi 2. pengertian dasar algoritmaMelva Amma Kalian
 
Materi 1. algoritma pemrograman
Materi 1. algoritma pemrogramanMateri 1. algoritma pemrograman
Materi 1. algoritma pemrogramanMelva Amma Kalian
 

Más de Melva Amma Kalian (9)

Hubungan antara-kebiasaan-menonton-acara-informasi-di-televisi-terhadap-peril...
Hubungan antara-kebiasaan-menonton-acara-informasi-di-televisi-terhadap-peril...Hubungan antara-kebiasaan-menonton-acara-informasi-di-televisi-terhadap-peril...
Hubungan antara-kebiasaan-menonton-acara-informasi-di-televisi-terhadap-peril...
 
Materi 8 aljabar relasional
Materi 8 aljabar relasionalMateri 8 aljabar relasional
Materi 8 aljabar relasional
 
Materi 7. array
Materi 7. arrayMateri 7. array
Materi 7. array
 
Materi 5. test kondisi
Materi 5. test kondisiMateri 5. test kondisi
Materi 5. test kondisi
 
Materi 5. normalisasi
Materi 5. normalisasiMateri 5. normalisasi
Materi 5. normalisasi
 
Materi 4. type, nama & harga
Materi 4. type, nama & hargaMateri 4. type, nama & harga
Materi 4. type, nama & harga
 
Materi 2. pengertian dasar algoritma
Materi 2. pengertian dasar algoritmaMateri 2. pengertian dasar algoritma
Materi 2. pengertian dasar algoritma
 
Materi 1. algoritma pemrograman
Materi 1. algoritma pemrogramanMateri 1. algoritma pemrograman
Materi 1. algoritma pemrograman
 
Materi 0. pengantar
Materi 0. pengantarMateri 0. pengantar
Materi 0. pengantar
 

Materi 6. perulangan

  • 1. PERULANGAN Algoritma Pemrograman Drs. Lamhot Sitorus, M.Kom Fakultas Ilmu Komputer Universitas Katolik Santo Thomas
  • 2. Pengantar • Komputer  melakukan berulang dengan kinerja yang sama • Manusia  bosan, cenderung melakukan kesalahan • Contoh : – Menulis “Saya akan Belajar dengan Baik” sebanyak 100 lembar – Menimba air ke bak mandi sampai penuh – Makan hingga kenyang – Menaiki anak tangga hingga lantai 5 – Mencari suatu bilangan dari sekelompok bilangan 2
  • 3. Perulangan • Perulangan terdiri dari dua bagian : – Kondisi yang mengakibatkan perulangan suatu saat berhenti, yang dinyatakan oleh sebuah ekspresi logika baik secara eksplisit maupun implisit – Badan perulangan, yaitu aksi yang harus diulang selama kondisi yang ditentukan untuk perulangan masih dipenuhi • Harus berhenti 3
  • 4. Perulangan • Perulangan dapat dibedakan atas 3 jenis : – Berdasarkan jumlah/banyaknya perulangan yang dilakukan – Berdasarkan kondisi berhenti – Berdasarkan kondisi Perulangan 4
  • 5. Banyaknya Perulangan • Tergantung banyaknya perulangan • Pasti Repeat N Times Blok_Aksi  N menyatakan banyaknya perulangan yang akan dilakukan  Blok_Aksi : aksi atau pernyataan yang akan dilakukan sebanyak N kali. 5
  • 6. Banyaknya Perulangan • Contoh-1. Buat algoritma untuk menampilkan kata “FIKOM” sebanyak 10 baris Algoritma Cetak {Mencetak Kata “FIKOM” sebanyak 10 baris} Kamus Algoritma Repeat 10 Times Output(“FIKOM”) 6
  • 7. Banyaknya Perulangan • Contoh-2. Buat algoritma untuk mencetak bilangan 1 sampai dengan 10. Algoritma Cetak {Mencetak Bilangan 1 sampai dengan 10} Kamus I : integer Algoritma I0 Repeat 10 Times II+1 Output( i ) 7
  • 8. Banyaknya Perulangan • Contoh-3. Buat algoritma untuk menghitung jumlah bilangan 1 sampai dengan 10 kemudian mencetak jumlahnya. • Contoh-4. Buat algoritma untuk membaca 5 buah bilangan kemudian hitung jumlah dan rata-rata ke lima bilangan dan mencetak jumlah dan rata-ratanya. 8
  • 9. Banyaknya Perulangan Algoritma Cetak {Menghitung jumlah Bilangan 1 sampai dengan 10 dan mencetak jumlah bilangan} Kamus I : integer Jumlah : Integer Algoritma I0 Jumlah  0 Repeat 10 Times II+1 Jumlah  Jumlah + I Output( Jumlah ) 9
  • 10. Banyaknya Perulangan Algoritma Cetak {Menghitung jumlah dan rata rata 5 bilangan dan mencetak jumlah dan rata rata bilangan} Kamus Bilangan : integer Banyak : integer {Banyaknya Bilangan} Jumlah : Integer {Hasil Jumlah Bilangan} Rata_Rata : Real {Hasil Rata-Rata bilangan} Algoritma Banyak  0 Jumlah  0 Repeat 5 Times Input(Bilangan) {membaca Bilangan} Banyak  Banyak + 1 {menghitung banyaknya Bilangan} Jumlah  Jumlah + Bilangan {menghitung jumlah bilangan} Rata_Rata  Jumlah / Banyak {menghitung Rata rata bilangan} Output( Jumlah, Rata_Rata ) {mencetak Jumlah dan Rata-rata} 10
  • 11. Banyaknya Perulangan • Pada umumnya notasi ini sering dituliskan dengan menggunakan notasi FOR – TO | DOWNTO – DO 11
  • 12. Banyaknya Perulangan FOR var  awal TO Akhir DO Blok_Pernyataan END FOR • var : variabel counter perulangan dengan nilai mulai dari awal hingga akhir • awal : harga awal dari var, awal akhir • akhir : harga akhir dari var • Blok Pernyataan : Pernyataan yang akan dilakukan selama nilai var nilai akhir 12
  • 13. Banyaknya Perulangan FOR var  awal DOWNTO Akhir DO Blok_Pernyataan END FOR • var : variabel counter perulangan dengan nilai mulai dari awal hingga akhir • awal : harga awal dari var, awal akhir • akhir : harga akhir dari var • Blok_Pernyataan : Pernyataan yang akan dilakukan selama nilai var dari nilai akhir 13
  • 14. Banyaknya Perulangan • Ke empat algoritma di atas akan dibuat menggunakan FOR-TO-DO yang disertai dengan programnya dalam Bahasa Pemrograman C++ 14
  • 15. Banyaknya Perulangan Algoritma Cetak {Mencetak Kata “FIKOM” sebanyak 10 baris} Kamus i : integer Algoritma For i  1 To 10 DO Output(“FIKOM”) 15
  • 17. Banyaknya Perulangan Algoritma Cetak {Mencetak Bilangan 1 sampai dengan 10} Kamus I : integer Algoritma FOR i  1 TO 10 DO OUTPUT( i ) END FOR 17
  • 19. Banyaknya Perulangan Algoritma Cetak {Menghitung jumlah Bilangan 1 sampai dengan 10 dan mencetak jumlah bilangan} Kamus I : integer Jumlah : Integer Algoritma Jumlah  0 FOR i  1 TO 10 DO Jumlah  Jumlah + I END FOR OUTPUT( Jumlah ) 19
  • 20. Banyaknya Perulangan #include<iostream.h> #include<conio.h> main() { int i, jumlah=0; for(i=1; i<=10; i++) { jumlah = jumlah + i; } cout<<"Jumlah Bilangan = "<<jumlah; getch(); } 20
  • 21. Banyaknya Perulangan Algoritma Cetak {Menghitung jumlah dan rata rata 5 bilangan dan mencetak jumlah dan rata rata bilangan} Kamus Banyak : integer {Banyaknya Bilangan} Jumlah : Integer {Hasil Jumlah Bilangan} Bilangan : integer {Bilangan yang akan dihitung} I : integer; Rata_Rata : Real {Hasil Rata-Rata bilangan} Algoritma Banyak  0 Jumlah  0 For i  1 TO 5 DO Input(Bilangan) {membaca Bilangan} Banyak  Banyak + 1 {menghitung banyaknya Bilangan} Jumlah  Jumlah + Bilangan {menghitung jumlah bilangan} END FOR Rata_Rata  Jumlah / Banyak {menghitung Rata rata bilangan} Output( Jumlah, Rata_Rata ) {mencetak Jumlah dan Rata-rata} 21
  • 22. Banyaknya Perulangan #include<iostream.h> #include<conio.h> main() { int i, Bilangan; int Banyak=0; int Jumlah=0; float Rata_Rata; for(i=1; i<=5; i++) { cout<<"Masukkan Bilangan : "; cin>>Bilangan; Banyak = Banyak + 1; Jumlah = Jumlah + Bilangan; } Rata_Rata = Jumlah / Banyak; cout<<"Jumlah Bilangan = "<<Jumlah<<endl; cout<<"Rata Rata Bilangan = "<<Rata_Rata; getch(); } 22
  • 23. 23
  • 24. Kondisi Berhenti • Tergantung kondisi pada perulangan • Akan dilakukan perulangan selama kondisi dipenuhi • Dilakukan minimal satu kali • Mungkin terjadi “kebocoran” 24
  • 25. Kondisi Berhenti Repeat Aksi Until Kondisi-berhenti • Aksi akan berhenti jika kondisi-berhenti dipenuhi (bernilai true), akan diulang jika kondisi-berhenti belum tercapai (bernilai false). • Aksi akan dikerjakan minimal satu kali • Test terhadap kondisi_berhentu dilakukan 25
  • 26. Kondisi Berhenti • Contoh-5. Buatlah algoritma untuk membaca sebuah bilangan bulat positif N, menuliskan 1, 2, 3, ..., N dan menjumlahkan 1+2+3+...+N serta menuliskan hasil penjumlahan. 26
  • 27. Kondisi Berhenti Algoritma Jumlah_N_Bilangan {Menjumlahkan 1+2+3+...+N dengan N yang dibaca} Kamus I : Integer {bilangan yang akan dijumlahkan} N : Integer > 0 {banyaknya bilangan yang akan dijumlahkan} Jumlah : Integer {Jumlah 1+2+3+...+N } Algoritma Input(N) Jumlah  0 {Inisialisasi} I1 {elemen pertama} Repeat Output(I) Jumlah  Jumlah + I II+1 {elemen berikutnya} Until (I > N) {I > N} 27 Output(Jumlah) {Terminasi}
  • 28. Kondisi Berhenti #include<iostream.h> #include<conio.h> main() { int Banyak=0, N; int Jumlah=0; cout<<"Masukkan Bilangan : "; cin>>N; do { Banyak = Banyak + 1; Jumlah = Jumlah + Banyak; } while(Banyak < N); cout<<"Jumlah Bilangan = "<<Jumlah; getch(); } 28
  • 29. Kondisi Berhenti #include<iostream.h> #include<conio.h> main() { int Banyak=0, N; int Jumlah=0; cout<<"Masukkan Bilangan : "; cin>>N; do { Jumlah = Jumlah + Banyak; Banyak = Banyak + 1; } while(Banyak < N); cout<<"Jumlah Bilangan = "<<Jumlah; getch(); } 29
  • 30. Kondisi Berhenti • Contoh-6. Tuliskanlah sebuah algoritma yang membaca nilai-nilai integer yang dibaca dari piranti masukan, dan menjumlahkan nilainya. Pemasukan nilai integer diakhiri dengan 9999. 30
  • 31. Kondisi Berhenti Algoritma Jumlah_Bilangan {Menjumlahkan Bilangan yang dibaca dari piranti masukan dengan pembacaan bilangan diakhiri dengan 9999} Kamus Bilangan : Integer {bilangan yang akan dijumlahkan} Jumlah : Integer {Jumlah Bilangan} Algoritma Jumlah  0 {Inisialisasi} Input(Bilangan) {elemen pertama} Repeat Output(Bilangan) Jumlah  Jumlah + Bilangan Input(Bilangan) {elemen berikutnya} Until (Bilangan = 9999) 31 Output(Jumlah) {Terminasi}
  • 32. Kondisi Berhenti #include<iostream.h> #include<conio.h> main() { int Bilangan; int Jumlah=0; cout<<"Masukkan Bilangan : "; cin>>Bilangan; // elemen pertama do { cout<<Bilangan<<endl; Jumlah = Jumlah + Bilangan; cout<<"Masukkan Bilangan : "; cin>>Bilangan; // elemen berikutnya } while(Bilangan != 9999); cout<<"Jumlah Bilangan = "<<Jumlah<<endl; getch(); } 32
  • 33. Kondisi Berhenti • Bandingkan dengan algoritma berikut 33
  • 34. Kondisi Berhenti Algoritma Jumlah_Bilangan {Menjumlahkan Bilangan yang dibaca dari piranti masukan dengan pembacaan bilangan diakhiri dengan 9999} Kamus Bilangan : Integer {bilangan yang akan dijumlahkan} Jumlah : Integer {Jumlah Bilangan} Algoritma Input (Bilangan) {elemen pertama} IF (Bilangan 9999) Then Jumlah  0 {Inisialisasi} Repeat Output(Bilangan) Jumlah  Jumlah + Bilangan Input(Bilangan) {elemen berikutnya} Until (Bilangan = 9999) Else Output(‘Kasus Kosong, yang diketik langsung 9999’) End-IF Output(Jumlah) {Terminasi} 34
  • 35. Kondisi Berhenti #include<iostream.h> #include<conio.h> main() { int Bilangan=0; int Jumlah=0; cout<<"Masukkan Bilangan : "; cin>>Bilangan; // elemen pertama if(Bilangan != 9999) { do { cout<<Bilangan<<endl; Jumlah = Jumlah + Bilangan; cout<<"Masukkan Bilangan : "; cin>>Bilangan; // elemen nberikutnya } while(Bilangan != 9999); } else cout<<"Kasus Kosong.....n"; cout<<"Jumlah Bilangan = "<<Jumlah<<endl; getch(); } 35
  • 36. Kondisi Perulangan • Tergantung perulangan yang ada • Kemungkinan tidak pernah dilakukan 36
  • 37. Kondisi Perulangan While (kondisi_perulangan) Do Aksi End-While • Test kondisi_perulangan, jika true maka Aksi akan dikerjakan kemudian ditest kembali kondisi_perulangan, tetapi jika kondisi_perulangan bernilai false maka keluar 37
  • 38. Kondisi Perulangan • Contoh-7. Buatlah algoritma untuk membaca sebuah bilangan bulat positif N, menuliskan 1, 2, 3, ..., N dan menjumlahkan 1+2+3+...+N serta menuliskan hasil penjumlahan. 38
  • 39. Kondisi Perulangan Algoritma Jumlah_N_Bilangan {Menjumlahkan 1+2+3+...+N dengan N yang dibaca} Kamus I : Integer {bilangan yang akan dijumlahkan} N : Integer > 0 {banyaknya bilangan yang akan dijumlahkan} Jumlah : Integer {Jumlah 1+2+3+...+N } Algoritma Input(N) Jumlah  0 {Inisialisasi} I1 {elemen pertama} While (i N) Do Output(I) Jumlah  Jumlah + I II+1 {elemen berikutnya} End-While {I > N} 39 Output(Jumlah) {Terminasi}
  • 40. Kondisi Perulangan #include<iostream.h> #include<conio.h> main() { int i=1; int N; int Jumlah=0; cout<<"Masukkan Bilangan : "; cin>>N; while(i<=N) { Jumlah = Jumlah + i; i++; } cout<<"Jumlah Bilangan = "<<Jumlah<<endl; getch(); } 40
  • 41. Kondisi Perulangan • Bandingkan dengan program berikut 41
  • 42. Kondisi Perulangan #include<iostream.h> #include<conio.h> main() { int i=0; int N; int Jumlah=0; cout<<"Masukkan Bilangan : "; cin>>N; while(i<N) { i++; Jumlah = Jumlah + i; } cout<<"Jumlah Bilangan = "<<Jumlah<<endl; getch(); } 42
  • 43. Kondisi Perulangan • Contoh-8. Tuliskanlah sebuah algoritma yang membaca nilai-nilai integer yang dibaca dari piranti masukan, dan menjumlahkan nilainya. Pemasukan nilai integer diakhiri dengan 9999. 43
  • 44. Kondisi Perulangan Algoritma Jumlah_Bilangan {Menjumlahkan Bilangan yang dibaca dari piranti masukan dengan pembacaan bilangan diakhiri dengan 9999} Kamus Bilangan : Integer {bilangan yang akan dijumlahkan} Jumlah : Integer {Jumlah Bilangan} Algoritma Jumlah  0 {Inisialisasi} Input(Bilangan) {elemen pertama} While (Bilangan 9999) Do Output(Bilangan) Jumlah  Jumlah + Bilangan Input(Bilangan) {elemen berikutnya} End-While Output(Jumlah) {Terminasi} 44
  • 45. Kondisi Perulangan #include<iostream.h> #include<conio.h> main() { int Bilangan; int Jumlah=0; cout<<"Masukkan Bilangan : "; cin>>Bilangan; while(Bilangan != 9999) { cout<<"Bilangannya adalah : "<<Bilangan <<endl; Jumlah = Jumlah + Bilangan; cout<<"Masukkan Bilangan : "; cin>>Bilangan; } cout<<"Jumlah Bilangan = "<<Jumlah<<endl; getch(); } 45
  • 46. Kondisi Perulangan • Contoh-10. Tuliskanlah sebuah algoritma yang membaca nilai-nilai integer yang dibaca dari piranti masukan, dan mencacah banyaknya nilai integer yang diketikkan. Pemasukan nilai integer diakhiri dengan 9999. ,,,,,,,,,,,,,,, 46
  • 47. Kondisi Perulangan • Contoh-10. Tuliskanlah sebuah algoritma yang membaca nilai-nilai integer yang dibaca dari piranti masukan, dan mencacah banyaknya nilai integer yang diketikkan. Pemasukan nilai integer diakhiri dengan 9999. ,,,,,,,,,,,,,,, 47
  • 48. Kondisi Perulangan Algoritma Jumlah_Bilangan_1 {Menjumlahkan Bilangan yang dibaca dari piranti masukan dan mencacah banyaknya nilai integer yang diketikkan. Pembacaan bilangan diakhiri dengan 9999} Kamus Bilangan : Integer {bilangan yang akan dijumlahkan} I : Integer {banyaknya Bilangan integer yang sudah dibaca} Algoritma I 0 {Inisialisasi} Input(Bilangan) {elemen pertama} While (Bilangan 9999) Do Output(Bilangan) I I+1 Input(Bilangan) {elemen berikutnya} End-While Output(I) {Terminasi} 48
  • 49. Kondisi Perulangan #include<iostream.h> #include<conio.h> main() { int Bilangan; int i=0; cout<<"Masukkan Bilangan : "; cin>>Bilangan; while(Bilangan != 9999) { cout<<"Bilangannya adalah : "<<Bilangan <<endl; i++; cout<<"Masukkan Bilangan : "; cin>>Bilangan; } cout<<"Banyak Bilangan = "<< i; getch(); } 49
  • 50. Kondisi Perulangan • Bandingkan dengan algoritma berikut ini....... 50
  • 51. Algoritma Jumlah_Bilangan_2 {Menjumlahkan Bilangan yang dibaca dari piranti masukan dan mencacah banyaknya nilai integer yang diketikkan. Pembacaan bilangan diakhiri dengan 9999} Kamus Bilangan : Integer {bilangan yang akan dijumlahkan} I : Integer {banyaknya Bilangan integer yang sudah dibaca} Algoritma I1 {Inisialisasi} Input(Bilangan) {elemen pertama} While (Bilangan 9999) Do Output(Bilangan) I I+1 Input(Bilangan) {elemen berikutnya} End-While 51 Output(I-1) {Terminasi}
  • 52. Kondisi Perulangan #include<iostream.h> #include<conio.h> main() { int Bilangan; int i=1; cout<<"Masukkan Bilangan : "; cin>>Bilangan; while(Bilangan != 9999) { cout<<"Bilangannya adalah : "<<Bilangan <<endl; i++; cout<<"Masukkan Bilangan : "; cin>>Bilangan; } cout<<"Banyak Bilangan = "<< i-1; getch(); } 52
  • 53. Kondisi Perulangan • Ada bermacam-macam notasi perulangan, sebenarnya satu bentuk perulangan dapat “diterjemahkan” menjadi bentuk yang lain dengan notasi algoritmik yang tersedia. • Persoalannya adalah “Bagimana memilih Notasi perulangan yang benar dan tepat untuk kelas persoalan tertentu”. • Tidak semua bahasa pemrograman yang ada menyediakan semua bentuk perulangan di atas. Pemilihan bentuk perulangan sangatlah 53
  • 54. 54
  • 55. Perulangan Bersarang (Nested Loop) • Adalah suatu perulangan yang ada dalam perulangan. • Perulangan yang paling dalam akan diselesaikan terlebih dahulu baru perulangan yang diluar. • Perlu diperhatikan bahwa variabel counter untuk masing-masing perulangan tidak diperkenankan sama serta tidak diperkenankan juga saling memotong 55
  • 56. Perulangan Bersarang (Nested Loop) Algoritma FOR Var1  awal1 TO akhir1 DO [Pernyataan] FOR Var2  awal2 TO akhir2 DO Blok Pernyataan; END FOR [Pernyataan] END FOR 56
  • 57. Perulangan Bersarang (Nested Loop) Algoritma WHIE (Kondisi_1) DO [Pernyataan] WHILE (kondisi_2) DO Blok Pernyataan; END WHILE [Pernyataan] END WHILE 57
  • 58. Perulangan Bersarang (Nested Loop) Algoritma REPEAT [Pernyataan] REPEAT Blok Pernyataan; UNTIL (Kondisi_2) [Pernyataan] REPEAT (Kondisi_1) 58
  • 59. Perulangan Bersarang (Nested Loop) • Contoh-11 : Buatlah algoritma untuk mencetak keluaran seperti berikut. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 59
  • 60. Perulangan Bersarang (Nested Loop) Algoritma Cetak_1 {algoritma mencetak 0 sampai 9 sebanyak 5 baris} Kamus I, j : integer Algoritma FOR i  1 TO 5 DO FOR j  0 TO 9 DO OUTPUT(j) END FOR END FOR 60
  • 61. Perulangan Bersarang (Nested Loop) #include<iostream.h> #include<conio.h> main() { int i, j; for(i=1; i<=5; i++) { for(j=0; j<=9;j++) { cout<< j << " "; } cout<<endl; } getch(); } 61
  • 62. Perulangan Bersarang (Nested Loop) • Contoh-12. Buat algoritma untuk membaca sebuah bilangan bulat N, kemudian cetaklah keluaran seperti berikut 5ini. 1234 67 11111111 1 a. b. 123456 12345 1234 123 12 1 2222222 333333 44444 5555 666 77 8 22 333 4444 55555 666666 7777777 88888888 62
  • 63. Perulangan Bersarang (Nested Loop) #include<iostream.h> #include<conio.h> main() { int i, j, N; cout<<"Masukkan Suatu Bilangan : "; cin>>N; for(i=1; i<=N; i++) { for(j=1; j<=N-i+1; j++) { cout<< j << " "; } cout<<endl; } getch(); } 63
  • 64. Perulangan Bersarang (Nested Loop) #include<iostream.h> #include<conio.h> main() { int i, j, N; cout<<"Masukkan Suatu Bilangan : "; cin>>N; for(i=1; i<=N; i++) { for(j=1; j<=N-i+1; j++) { cout<< i << " "; } cout<<endl; } getch(); } 64
  • 65. Perulangan Bersarang (Nested Loop) #include<iostream.h> #include<conio.h> main() { int i, j, N; cout<<"Masukkan Suatu Bilangan : "; cin>>N; for(i=1; i<=N; i++) { for(j=1; j<=i; j++) { cout<< i << " "; } cout<<endl; } getch(); } 65
  • 66. Soal Latihan 1. Buatlah algoritma dan program untuk mencetak semua bilangan yang habis dibagi 3 mulai 1 sampai 100. 2. Buatlah algoritma dan program untuk mencetak bilangan yang habis dibagi 2 dan 3 mulai 10 sampai dengan 100. 3. Buatlah algoritma dan program untuk mencetak bilangan yang habis dibagi 2 dan 3 mulai 10 sampai dengan 100 serta menghitung jumah dan rata-ratanya. 66
  • 67. Soal Latihan 1. Bacalah N buah bilangan secara acak kemudian hitunglah jumlah dan rata-rata bilangan hanya yang habis dibagi 2 dan 3 dari sederetan bilangan. Buat algoritma dan programnya. 2. Buat algoritma dan program untuk mencetak dan menghitung deret fibonacci sampai dengan 50 3. Buat algoritma dan program untuk mencetak dan menghitung deret fibonacci sebanyak 50 67
  • 68. Soal Latihan 1. Dibaca dua buah bilangan bulat positif (M dan N). Kedua bilangan akan dikalikan (MxN) dengan melakukan perjumlahan. Misal 5x4=5+5+5+5. Buatlah algoritma dan program untuk melakukan perkalian dengan cara perjumlahan. 2. Dibaca dua buah bilangan bulat positif (M dan N). Kedua bilangan akan dihitung pangkatnya (MN) dengan melakukan perkalian M sebanyak N. Misal 54=5x5x5x5. 68
  • 69. Soal Latihan 1. Untuk menghitung sisa bagi dan hasil bagi bulat dari dua buah bilangan bulat positif (M dan N) dapat dilakukan dengan MOD dan DIV. Dibaca dua buah bilangan bulat (M dan N) kemudian akan dihitung sisa bagi dan hasil bagi bulat dari kedua bilangan tersebut dengan tidak menggunakan MOD dan DIV. Untuk menghitung Sisa Bagi dapat dilakukan dengan mengurangi M dengan N hingga nilai M lebih kecil dari N. Banyaknya pengurangan yang dilakukan adalah merupakan Hasil Bagi Bulat. Misal 13 dan 2. Kurangkan 13 dengan 2 hingga hasilnya lebih kecil dari 2. Dan hitung berapa banyaknya pengurangan yang dilakukan. 13-2=11; 11-2=9; 69
  • 70. Sampai ketemu di materi berikutnya...  Array 70