PERULANGAN
Ciri-Ciri Perulangan
1. Kapan perulangan tersebut akan dimulai
2. Kapan perulangan berhenti
3. Berapa kali perulangan itu berulang
Macam-Macam Perulangan
1. Perulangan For
-Perulangan for merupakan perulangan yang sudah jelas dan sudah ditentukan berapa kali perulangan tersebut akan berulang
-Penulisan agoritma perulangan for
for i<= awal to akhir do
write (i)
-Penulisan sintak di C++
for(i=awal; i<=akhir; i++){
aksi;
}
2. Perulangan While
-Perulangan while merupakan perulangan yang belum diketahui atau tidak jelas berapa kali perulangan tersebut akan berulang.
-Penulisan algoritma
i=0
while(i<=4)
write(i)
i=i+1
end while
3. Perulangan Do-while
-Perulangan do while sama dengan perulangan while
-Perbedaan : perulangan do-while akan melakukan perulangan sebanyak 1 kali dulu, kemudian mengecek kondisi yang ada pada kurung while
-Penulisan algoritma
i=1
repeat
write(i)
i=i+1
until(i>4)
LATIHAN
1. Hitunglah nilai dari 1-1/2+1/3-1/4+...+1/n
Jawab:
a. Algoritma
Deklarasi :
hasil, total, a : float
n : integer
Deskripsi
read(n)
for i<=to n do
hasil <=0
total <=0
a <= -1
a <=(a*(-1))
total <=a/i
hasil <=hasil+total
if(i==1) then write total
else write "+" total
end if
end for
write(hasil)
b. Program
#include <iostream>
using namespace std;
class hitung{
friend ostream& operator<<(ostream&, const hitung&);
friend istream& operator>>(istream&, hitung&);
public:
proses();
float hasil;
private:
int n;
float total, a;
};
hitung::proses(){
hasil=0;
total=0;
a=-1;
for(int i=1; i<=n; i++){
a=a*(-1);
total=a/i;
hasil=hasil+total;
if(i==1){
cout<<"("<<total<<")";
}
}
}
istream& operator>>(istream& cin, hitung& masukan){
cout<<"Masukkan nilai n : ";
cin>>masukan.n;
return cin;
}
ostream& operator<<(ostream& out, const hitung& keluaran){
out<<" = "<<keluaran.hasil;
return out;
}
int main(){
hitung deret;
cin>>deret;
deret.proses();
cout<<deret;
return 0;
}
WORKSHOP BAB 5
1. Buatlah translasi dalam bahasa C untuk algoritma mengkonversi nilai angka menjadi nilai huruf. Apakah diperlukan modifikasi algoritma?
Jawab:
Tidak perlu mengubah algoritma, hanya saja perlu mengubah sintak dasar cout menjadi printf dan cin menjadi scanf
a. Analisis : memasukkan integer angka dari 1 sampai 7, kemudian akan ditentukan hari apa yang sesuai
b. Algoritma
Deklarasi :
hari_ke : integer
hari : string
Deskripsi
read(hari_ke)
pilih(hari_ke)untuk
1 : hari <= "SENIN"
2 : hari <= "SELASA"
3: hari <= "RABU"
4: hari <= "KAMIS"
5: hari <= "JUMAT"
6: hari <= "SABTU"
7: hari <= "MINGGU"
end pilih
write(hasil)
c. Flowchart
d. Program
#include <stdio.h> #include <stdlib.h>
#include <string.h>
int main(){
int hari_ke;
char hari;
printf("--------------------");
printf("\n MENENTUKAN HARI ");
printf("\n--------------------");
printf("\nMasukkan hari ke-");
scanf("%d", &hari_ke);
printf("Hari ke- %d", hari_ke);
printf(" adalah %c", hari);
switch(hari_ke){
case 1 : hari=printf("SENIN"); break;
case 2 : hari=printf("SELASA"); break;
case 3 : hari=printf("RABU"); break;
case 4 : hari=printf("KAMIS"); break;
case 5 : hari=printf("JUMAT"); break;
case 6 : hari=printf("SABTU"); break;
case 7 : hari=printf("MINGGU"); break;
default : hari=printf("ERROR"); break;
}
return 0;
}
2. Buatlah algoritma dan program untuk menghitung nilai dari permutasi dan ombinasi n buah bola yang diambil r bola
Jawab:
a. Program
#include <iostream>
using namespace std;
int faktorial(int n){
int i, jumlah=1;
for(i=1; i<=n; i++){
jumlah=jumlah*i;
}
return jumlah;
}
int main(){
int n, r ,a, permutasi, kombinasi;
cout<<"-------------------------------------------------"<<endl;
cout<<" MENGHITUNG NILAI dari PERMUTASI dan KOMBINASI "<<endl;
cout<<"-------------------------------------------------"<<endl;
cout<<"Masukkan nilai n : ";
cin>>n;
cout<<"Masukkan nilai r : ";
cin>>r;
a=n-r;
permutasi = faktorial(n) / faktorial(a);
kombinasi = faktorial(n) / faktorial(a) * faktorial(r);
cout<<"Hasil permutasi = "<<permutasi<<endl;
cout<<"Hasil kombinasi = "<<kombinasi<<endl;
return 0;
}

Komentar
Posting Komentar