LATIHAN WORKSHOP DIKTAT BAB V PERULANGAN/LOOP
Perulangan bisa menaik (kasus membeli bensin), namun bisa pula menurun (kasus makansepiring nasi). Pada dasarnya, baik menaik maupun menurun, tergantung dari sudut pandang
yang dipilih. Sebagai contoh, pada kasus makan sepiring nasi, kita dapat menghitung, berapa sendok yang telah kita makan pada suatu saat. Perulangan adalah suatu atau serangkaian bentuk kegiatan mengulang suatu statement sampai batas yang diinginkan.
1. Cetaklah bilangan 1 sampai dengan 4 menggunakan downto.
Analisis
Kita akan membuat suatu program mencetak bilangan dari angka 1 sampai 4, dimana kita tidak perlu memasukan sebuah inputan kita hanya berurusan dengan perulangan, disitulah kita harus membuat perulangan agar muncul angka 1-4.
Algoritma Cetak_Angka
{Mencetak angka 1, .., 4 ke piranti keluaran}
Deklarasi
b : integer
Deskripsi
b <- 4
repeat
write (i)
b <- i - 1
until (i <= 1)
Flowchart 1
Translasi 1
#include <iostream>
#include <string>
using namespace std;
void angka (
int b)
{
b =4;
while (!(b<=1))
{
cout << b << endl; b =b-1;
}
}
int main()
{
int b;
b =1;
angka(b);
cout << b << endl;
return 0;
}
Hasil Kasus 1
2. Buatlah translasi dalam bahasa C untuk algoritma 4.5. Apakah diperlukan modifikasi
algoritma ?
Analisis
suatu program menentukan hari, sebelum kita membuat program kita harus tau urutan hari, dari situ kita akan paham, jika hari ke 3 itu apa? jawaban yaitu rabu, nah disini kita akan membuat program jika kita masukan angka ke berapa maka akan muncul hari, ingat hari cuma ada 7, maka hanya ada angka 1-7 yang diinputkan, selain itu coba analisis lebih lanjut.
Ket
Dari Hasil analisis kita tidak perlu mengubah algoritma kita hanya mengganti cout pada menjadi printf dan menggunakan library yang ada pada bahasa C.
Algoritma menentukan_hari
{ masukan integer 1 sampai 7, akan ditentukan hari apa yang sesuai }
Deklarasi
hari : integer
Deskripsi
read(hari);
case (hari) of
1 : hari <- 'Senin'
2 : hari <- 'Selasa';
3 : hari <- 'Rabu';
4 : hari <- 'Kamis';
5 : hari <- 'Jum''at';
6 : hari <- 'Sabtu';
7 : hari <- 'Minggu';
else hari libur
endcase
write(hari)
Flowchart 2
Translasi 2
#include <stdio.h>
#include <stdlib.h>
// Tidak perlu modifikasi algoritma
int main(int argc, char *argv[]) {
printf("\t\t\tPROGRAM MENENTUKKAN HARI.\n\n\n");//Algoritam menentukan hari
//{masukkan integer 1 sampai 7, akan ditentukan hari apa yang sesuai}
int hari; //Deklarasi hari= integer;
printf("masukan hari ke- "); //Deskripsi
scanf("%d", &hari); //read(hari);
switch (hari) //case(hari) of
{
case 1:puts("hari senin"); break; //1:hari<-'senin';
case 2:puts("hari selasa"); break; //2:hari<-'selasa';
case 3:puts("hari rabu"); break; //3:hari<-'rabu';
case 4:puts("hari kamis"); break; //4:hari<-'kamis';
case 5:puts("hari jumat"); break; //5:hari<-'jumat';
case 6:puts("hari sabtu"); break; //6:hari<-'sabtu';
case 7:puts("hari minggu"); break; //else hari<-'minggu';
default:puts("kode salah"); //endcase
} //write(hari)
return 0;
}
Hasil Kasus 2
3. Buatlah algoritma dan program untuk mencetak bilangan yang habis dibagi 3 dan 5
antara 1 sampai dengan 100.
Analisis
mencetak bilangan yang habis dibagi 3 dan 5, pada dasarnya ada bilangan yang bisa dibagi langsung dengan angka 3 ataupun 5 tanpa meninggalkan sisa, misalkan angka 15, anda membagi 3 maka hasilnya 5, dan jika anda bagi 5 maka akan hasil 3, begitu juga dengan angka yang lain yang bisa dibagi bilangan 3 dan 5.
Algoritma mencetak bil yang habis dibagi 3 dan 5
{mencari bilangan yang habis di bagi 3 dan 5 menggunakan mod}
Deklarasi
a : integer
Deskripsi
a <- 1
while(a<=100)do
if (a % 3==0 && a % 5==0) then
write (a)
endif
endwhile
Flowchart 3
#include <iostream>
#include <string>
using namespace std;
class bil{
private:
int a;
public:
bil(){
a =1;
}
void output();
};
void bil::output(){
while (!(a==100))
{
if (a % 3==0 && a % 5==0)
{
cout << "Bilangan Yang Habis Dibagi 3 Dan 5 : "<<a << endl;
}
else
{
}
a =a+1;
}
}
int main()
{
bil y;
y.output();
return 0;
}
Hasil Kasus 3
4. Hitunglah nilai dari :
Analisis
Mencetak jumlah bilangan pecahan deret, sebelum itu kita harus tau mana pembilang mana penyebut, untuk menjumlahkan angka yang memiliki penyebut berbeda-beda kita harus menyamakan penyebutkan, yang di katakan penyebut adalah bagian bawah.
misalkan 1/2+1/4=2+1/4 maka hasilnya 3/4, kenapa saya mengambil 4 karena penyebut 4 bisa membagi penyebut soal tersebut tanpa ada sisa.
Algoritma mencari jumlah deret penjumlahan pecahan
{mencari jumlah deret penjumlahan pecahan yang diinputkan ke piranti keluaran }
Deklarasi
n,p : integer
total,a,hasil,bil : float
Deskripsi
read (n)
bil <- 1
write (bil)
total <- 0
hasil <- 0
p <- 1
while (!(p>n))do
if (p % 2==0)then
hasil <- -1*(bil/p)
endif
if (a>n)then
read (a)
total <- total+hasil
p <- p+1
a <- a+1
read (total)
endwhile
Flowchart 4
Translasi 4
#include <iostream>
#include <string>
using namespace std;
class deret{
private:
string raptor_prompt_variable_zzyz;
float total,a,hasil,bil;
int n,p;
public:
deret(){
a =2;
raptor_prompt_variable_zzyz ="Masukan nilai n : ";
cout << raptor_prompt_variable_zzyz << endl;
cin >> n;
bil =1;
cout << bil;
p =1;
total =0;
hasil =0;
}
void output();
};
void deret::output(){
while (!(p>n))
{
if (p % 2==0)
{
hasil =-1*(bil/p);
if (a>n)
{
}
else
{
cout << "+1/ "<<a; }
}
else
{
hasil =bil/p;
if (a>n)
{
}
else
{
cout << "-1/"<<a; }
}
total =total+hasil;
p =p+1;
a =a+1;
}
cout << "="<<total << endl;
}
int main()
{
deret t;
t.output();
return 0;
}
Hasil Kasus 4
5. Buatlah algoritma dan program untuk menghitung nilai dari permutasi dan kombinasi n buah bola yang diambil r bola.
Petunjuk : Rumus permutasi dan kombinasi adalah sebagai berikut :
Algoritma menghitung nilai permutasi dan kombinasi
{menghitung nilai dari permutasi dan kombinasi n bola yang diambil r bola}
Deklarasi
n,r : integer
i,a,hasil,faktorial : float
Deskripsi
faktorial <- 1
i <- 1
read (n,r,a)
while (!(i>n))do
faktorial <- faktorial*i
i <- i+1
if (a==1)then
hasil <- faktorial*(n)/faktorial*(n-r)
if (a==2)then
hasil <- faktorial*(n)/(faktorial*(r)+faktorial*(n-r))
write (hasil)
endif
endwhile
Flowchart 5
Translasi 5
#include <iostream>
#include <string>
using namespace std;
class Komb{
private:
string raptor_prompt_variable_zzyz;
int r,n;
float i,a,hasil,faktorial;
public:
Komb(){
faktorial =1;
i =1;
raptor_prompt_variable_zzyz ="Masukan nilai n : ";
cout << raptor_prompt_variable_zzyz << endl;
cin >> n;
raptor_prompt_variable_zzyz ="Masukan nilai r : ";
cout << raptor_prompt_variable_zzyz << endl;
cin >> r;
raptor_prompt_variable_zzyz ="Pilih : 1. Permutasi 2. Combinasi : ";
cout << raptor_prompt_variable_zzyz << endl;
cin >> a;
}
void output();
};
void Komb::output(){
while (!(i>n))
{
faktorial =faktorial*i;
i =i+1;
}
if (a==1)
{
hasil =faktorial*(n)/faktorial*(n-r);
cout << hasil << endl; }
else
{
if (a==2)
{
hasil =faktorial*(n)/(faktorial*(r)+faktorial*(n-r));
cout <<"Hasil: " <<hasil << endl; }
else
{
cout << "Input yang anda masukan salah" << endl; }
}
}
int main()
{
Komb o;
o.output();
return 0;
}
Hasil Kasus 5
6. Buatlah algoritma dan program untuk mengkonversi bilangan desimal menjadi bilangan biner. Petunjuk : Gunakan operator mod dan div !
Analisis
ketika kita akan mengkonversikan desimal ke biner, kita harus tau apa itu bilangan biner. Bil biner adalah bilangan yang terdiri dari angka 0 dan 1, untuk kita mengkonversi ke bilangan biner kita akan menggunakan mod dan div, kita akan membagi bilangan tersebut dengan 2, apabila tidak bersisa maka akan 0 dan jika bersisa maka akan 1. contoh bil 10, 10:2=5 sisa 0, 5:2=2 sisa 1, 2:2=1 sisa 0, 1:2=0 sisa 1, dan akan mengasilkan bil biner yaitu 1010.
Algoritma konversi bilangan desimal to biner
{mengkonversikan bilangan desimal menjadi bilangan biner menggunakan mod dan div}
Deklarasi
b : integer
Deskripsi
faktorial <- 1
i <- 1
read (a)
b <- 0
while (!(a<1))do
b <- a%2
a <- (a-b)/2
write (b)
endwhile
Flowchart 6
Translasi 6
#include <iostream>
#include <string>
using namespace std;
void permutasi (int a)
{
string raptor_prompt_variable_zzyz;
int b;
raptor_prompt_variable_zzyz ="Masukan Bil Desimal : ";
cout << raptor_prompt_variable_zzyz << endl;
cin >> a;
while (!(a<1))
{
b =a % 2;
a =(a-b)/2;
cout << b << endl; }
}
int main()
{
int b;
b =0;
permutasi(b);
cout << " " << endl;
return 0;
}
Hasil Kasus 6
7. Buatlah algoritma, flowchart dan program untuk menampilkan permutasi dari 3 huruf. Misalnya diberikan : abc || output : abc bca bac, dan seterusnya
Analisis
kita akan membuat suatu program untuk mengubah suatu kata yang kita inputkan kemudian akan mencetak kata dari huruf paling akhir, misalkan alpro maka akan di cetak orpla, istilah tersebut saya maksudkan adalah pembalikan sebuah kata.
Algoritma permutasi atau kebalikan dari sebuah huruf
{menampilkan permutasi dari 3 huruf yang diinputkan kemudian akan terbalik hurufnya di piranti keluaran}
Deklarasi
(a[],b[],kata[]) char
Deskripsi
read (kata,a,b)
for(int a=strlen(b);a>=0;a--)
endfor
write (b)
Flowchart 7
Translasi 7
#include <iostream>
#include <string.h>
#include <conio.h>
#include <stdio.h>
using namespace std;
void masuk(char a[50]);
void keluar(char b[50]);
void identitas();
int main()
{
char kata[50];
cout<<"\nPermutasi dari sebuah kata"<<endl;
masuk(kata);
keluar(kata);;
getch();
}
void masuk(char a[50]){
cout<<"\nMasukkan Kata : ";
gets(a);
cout<<endl;
}
void keluar(char b[50]){
cout<<"\nHasil Pembalikkan kata :";
for(int a=strlen(b);a>=0;a--)
{
cout<<b[a];
}
cout<<endl;
}
Hasil Kasus 7
















0 komentar:
Posting Komentar