Anda di halaman 1dari 16

PENGULANGAN II

TUGAS 6

Disusun oleh:
Nama : DEDEN FARHAN

NPM : 0618104038

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK UNIVERSITAS WIDYATAMA

BANDUNG

2018
Tugas Pendahuluan VI

1. Buat algoritma untuk penghitungan gaji karyawan berikut, sehingga bisa menangani lebih dari 1
karyawan tanpa perlu keluar dari program. Buat 2 versi algoritma menggunakan looping WHILE-
DO dan REPEAT-UNTIL!.
Sebuah perusahaan meminta anda sebagai programmer yang sudah sangat terkenal untuk
membuatkan program penghitungan gaji karyawan di perusahaan tersebut, dengan ketentuan:
 Gaji Pokok berdasarkan golongan
Golongan Gaji Pokok
1 500
2 1000
3 1500
4 2000

 Bonus diberikan kepada pegawai berdasarkan masa kerja


Masa Kerja Bonus
3 50
6 75
>7 100

 Jika sudah menikah maka tunjangan keluarganya sebesar 10% dari gaji pokok
 Jika sudah menikah dan mempunyai anak (maksimal 3 orang) akan mendapat tunjangan
anak sebesar 12.5% per anak Rumus perhitungan gajinya menjadi: Gaji = Gaji Pokok +
Bonus + tunjangan keluarga + tunjangan anak
Solusi:
Algoritma WHILE-DO Algoritma REPEAT-UNTIL
Program hitung_gaji Program hitung_gaji
Kamus Data: Kamus Data:
sts, lanjut : char sts, lanjut : char
gpokok : integer gpokok : integer
gol, masa_kerja, bonus, janak :integer gol, masa_kerja, bonus, janak :integer
t_keluarga, t_anak, thp: real t_keluarga, t_anak, thp: real
Algoritma: Algoritma:
lanjut ‘Y’ lanjut ‘Y’
WHILE (lanjut!=’N’) OR (lanjut!=’n’) DO REPEAT
INPUT(gol) INPUT(gol)
INPUT(masa_kerja) INPUT(masa_kerja)
INPUT(sts) INPUT(sts)

CASE (gol) of CASE (gol) of


1 : gpokok 500 1 : gpokok 500
2 : gpokok 1000 2 : gpokok 1000
3 : gpokok 1500 3 : gpokok 1500
4 : gpokok 2000 4 : gpokok 2000
ENDCASE ENDCASE

DEDEN FARHAN | 0618104038 Halaman 1


IF masa_kerja <= 3 THEN IF masa_kerja <= 3 THEN
bonus 50 bonus 50
ELSEIF (masa_kerja>= 3) AND ELSEIF (masa_kerja>= 3) AND
(masa_kerja<= 7) THEN (masa_kerja<= 7) THEN
bonus 75 bonus 75
ELSEIF masa_kerja >7 THEN ELSEIF masa_kerja >7 THEN
bonus 100 bonus 100
ENDIF ENDIF
CASE (sts) of CASE (sts) of
‘Y’, ‘y’ : t_keluarga 0.1*gpokok ‘Y’, ‘y’ : t_keluarga 0.1*gpokok
INPUT(janak) INPUT(janak)
IF janak > 3 THEN IF janak > 3 THEN
Janak Janak
ENDIF ENDIF
t_anak 0.125*janak*gpokok t_anak 0.125*janak*gpokok
ENDCASE ENDCASE
thp gpokok+bonus+t_keluarga+t_anak thp gpokok+bonus+t_keluarga+t_anak
OUTPUT(thp) OUTPUT(thp)
OUTPUT(‘Lanjut Program(Y/N)’) OUTPUT(‘Lanjut Program(Y/N)’)
INPUT(lanjut) INPUT(lanjut)
END WHILE UNTIL (lanjut=’N’) OR (lanjut=’n’)

2. Buat algoritma untuk kalkulator keliling bidang berikut, sehingga bisa menangani lebih dari 1
perhitungan tanpa perlu keluar dari program. Buat 2 versi algoritma menggunakan looping
WHILE-DO dan REPEAT-UNTIL! Buatlah program untuk membuat kalkulator keliling bidang
berdimensi dua, yaitu persegi, persegi panjang, dan lingkaran. Input yang digunakan bergantung
kebutuhan menu yang dipilih
INPUT / OUTPUT Kalkulator Keliling
1. Keliling Persegi
2. Keliling Persegi Panjang
3. Keliling Lingkaran
4. Keluar
Masukkan nomor menu : 1
Menu Hitung Keliling Persegi
Masukkan sisi : 5
Keliling persegi : 20
Kalkulator Keliling
1. Keliling Persegi
2. Keliling Persegi Panjang
3. Keliling Lingkaran
4. Keluar
Masukkan nomor menu : 3
Menu Hitung Keliling Lingkaran
Masukkan jari-jari : 7
Keliling lingkaran : 44

DEDEN FARHAN | 0618104038 Halaman 2


Solusi:
Algoritma WHILE-DO Algoritma REPEAT-UNTIL
Program keliling_bangunan Program keliling_bangunan
Kamus Data: Kamus Data:
menu : integer menu : integer
s, p, l, r, keliling : real s, p, l, r, keliling : real
const const
pie = 3.14 pie = 3.14
Algoritma: Algoritma:
WHILE menu!=4 DO REPEAT
INPUT(menu) INPUT(menu)
CASE (menu) of CASE (menu) of
1 : INPUT(s) 1 : INPUT(s)
keliling s*4 keliling s*4
2 : INPUT(p) 2 : INPUT(p)
INPUT(l) INPUT(l)
keliling (2*p)+(2*l) keliling (2*p)+(2*l)
3 : INPUT(r) 3 : INPUT(r)
keliling 2*pie*r keliling 2*pie*r
4 : OUTPUT(‘Keluar...’) 4 : OUTPUT(‘Keluar...’)
ENDCASE ENDCASE
OUTPUT(keliling) OUTPUT(keliling)
END WHILE UNTIL menu=4

3. Buatlah algoritma untuk menghitung dan menampilkan deret berikut:


Sum = 1 + 5 + 25 + 125 + 625 + ...
Input dari user: N yaitu jumlah suku. Buat 2 versi jawaban dengan menggunakan skema looping
FOR-DO dan WHILE-DO!
Contoh:
Input : N = 3
Sum = 1 + 5 + 25 = 31
Input : N = 4
Sum = 1 + 5 + 25 + 125 = 156

Solusi:
Algoritma FOR-DO Algoritma WHILE-DO
Program deret Program deret
Kamus Data: Kamus Data:
i, n, ta, na : integer i, n, ta, na : integer
Algoritma: Algoritma:
na 1 i 1
ta 0 na 1
INPUT(n) ta 0
OUTPUT(‘Sum = ’) INPUT(n)
FOR i 1 TO n DO OUTPUT(‘Sum = ’)

DEDEN FARHAN | 0618104038 Halaman 3


OUPUT(na, ‘ + ’) WHILE i <= n DO
ta ta + na OUPUT(na, ‘ + ’)
na na*5 ta ta + na
END FOR na na*5
OUTPUT(‘=’, ta) i i+1
END WHILE
OUTPUT(‘=’, ta)

4. Buatlah algoritma untuk menghitung dan menampilkan deret berikut:


Sum = 5 + 10 + 15 + 20 + 25 + ...
Input dari user: N yaitu jumlah suku. Buat 2 versi jawaban dengan menggunakan skema looping
FOR-DO dan REPEAT-UNTIL!
Contoh:
Input : N = 3
Sum = 5 + 10 + 15 = 30
Input : N = 5
Sum = 5 + 10 + 15 + 20 + 25 = 75

Solusi:
Algoritma FOR-DO Algoritma WHILE-DO
Program deret Program deret
Kamus Data: Kamus Data:
i, n, ta, na : integer i, n, ta, na : integer
Algoritma: Algoritma:
na 5 i 1
ta 0 na 5
INPUT(n) ta 0
OUTPUT(‘Sum = ’) INPUT(n)
FOR i 1 OUTPUT(‘Sum = ’)
TO n DO REPEAT
OUPUT(na, ‘ + ’) OUPUT(na, ‘ + ’)
ta ta + na ta ta + na
na na+5 na na+5
END FOR i i+1
OUTPUT(‘=’, ta) UNTIL i > n
OUTPUT(‘=’, ta)

5. Buatlah algoritma untuk menampilkan deret berikut:


111222333444555
Input dari user: N yaitu banyaknya angka, M yaitu banyaknya pengulangan. Petunjuk: Gunakan
skema looping bersarang.
Contoh:
Input : N = 3, M = 2
112233

DEDEN FARHAN | 0618104038 Halaman 4


Input : N = 4, M = 5
11111222223333344444
Solusi:
Algoritma FOR Algoritma WHILE
Program deret Program deret
Kamus Data: Kamus Data:
m, n, i, j : integer m, n, i, j : integer
Algoritma: Algoritma:
INPUT(n) INPUT(n)
INPUT(m) INPUT(m)
FOR i 1 to n DO i 1
FOR j 1 to m DO j 1
OUPUT(i) FOR i to n DO
ENDFOR j 1
ENDFOR FOR j to m DO
OUPUT(i)
j j+1
ENDFOR
i i+1
ENDFOR

DEDEN FARHAN | 0618104038 Halaman 5


Latihan-latihan Pratikum VI
1. Kasus 01
a. Sebuah perusahaan meminta anda sebagai programmer yang sudah sangat terkenal untuk
membuatkan program penghitungan gaji karyawan di perusahaan tersebut, dengan
ketentuan:
 Gaji Pokok berdasarkan golongan
Golongan Gaji Pokok
1 500
2 1000
3 1500
4 2000

 Bonus diberikan kepada pegawai berdasarkan masa kerja


Masa Kerja Bonus
3 50
6 75
>7 100

 Jika sudah menikah maka tunjangan keluarganya sebesar 10% dari gaji pokok
 Jika sudah menikah dan mempunyai anak (maksimal 3 orang) akan mendapat
tunjangan anak sebesar 12.5% per anak Rumus perhitungan gajinya menjadi: Gaji =
Gaji Pokok + Bonus + tunjangan keluarga + tunjangan anak

Buat program C-nya, sehingga bisa menangani lebih dari 1 karyawan tanpa perlu keluar dari
program. Gunakan skema looping!

Solusi:
Algoritma WHILE-DO Program
Program hitung_gaji #include <stdio.h>
Kamus Data: char sts;
sts: char int lanjut, gol, masa_kerja, bonus, janak,
gpokok, thp, lanjut : integer gpokok, thp;
gol, masa_kerja, bonus, janak :integer float t_keluarga, t_anak;
t_keluarga, t_anak: float
Algoritma: main()
lanjut 1 {
WHILE (lanjut) DO lanjut = 1;
INPUT(gol) while (lanjut) {
INPUT(masa_kerja) printf("Masukan Golongan : ");
INPUT(sts) scanf("%d",&gol);
printf("Masukan Masa Kerja(thn): ");
CASE (gol) of scanf("%d",&masa_kerja);
1 : gpokok 500 printf("Sudah Menikah(Y/N):");
2 : gpokok 1000 scanf(" %c",&sts);
3 : gpokok 1500 switch(gol){

DEDEN FARHAN | 0618104038 Halaman 6


4 : gpokok 2000 case 1:
ENDCASE gpokok = 500;
IF masa_kerja <= 3 THEN break;
bonus 50 case 2:
ELSEIF (masa_kerja>= 3) AND gpokok = 1000;
(masa_kerja<= 7) THEN break;
bonus 75 case 3:
ELSEIF masa_kerja >7 THEN gpokok = 1500;
bonus 100 break;
ENDIF case 4:
CASE (sts) of gpokok = 2000;
‘Y’, ‘y’ : t_keluarga 0.1*gpokok break;
INPUT(janak) default:
IF janak > 3 THEN printf("Inputan Tidak Sesuai");
Janak break;
ENDIF }
t_anak 0.125*janak*gpokok if(masa_kerja<=3){
ENDCASE bonus = 50;
thp gpokok+bonus+t_keluarga+t_anak }
OUTPUT(thp) else if(masa_kerja>3 && masa_kerja<= 7){
OUTPUT(‘Lanjut Program(0/1)’) bonus = 75;
INPUT(lanjut) }
END WHILE else{
bonus = 100;
}
switch(toupper(sts)){
case 'Y' :
t_keluarga = 0.1*gpokok;
printf("Masukan Jumlah Anak : ");
scanf("%d",&janak);
if(janak > 3){
printf("Jumlah Anak Maksimal 3");
janak = 3;
}
t_anak = 0.125*janak*gpokok;
}
thp = gpokok + bonus + t_keluarga +
t_anak;
printf("Total Gaji = %d",thp);
printf("\nLanjutkan Program(0/1) : ");
scanf("%d",&lanjut);
}
getchar;

DEDEN FARHAN | 0618104038 Halaman 7


Buat program C-nya, sehingga bisa menangani lebih dari 1 perhitungan tanpa perlu keluar dari
program. Gunakan skema looping!
b. Buatlah program untuk membuat kalkulator keliling bidang berdimensi dua, yaitu persegi,
persegi panjang, dan lingkaran. Input yang digunakan bergantung kebutuhan menu yang
dipilih.
INPUT / OUTPUT Kalkulator Keliling
5. Keliling Persegi
6. Keliling Persegi Panjang
7. Keliling Lingkaran
8. Keluar
Masukkan nomor menu : 1
Menu Hitung Keliling Persegi
Masukkan sisi : 5
Keliling persegi : 20
Kalkulator Keliling
5. Keliling Persegi
6. Keliling Persegi Panjang
7. Keliling Lingkaran
8. Keluar
Masukkan nomor menu : 3
Menu Hitung Keliling Lingkaran
Masukkan jari-jari : 7
Keliling lingkaran : 44

Buat program C-nya, sehingga bisa menangani lebih dari 1 perhitungan tanpa perlu keluar dari
program. Gunakan skema looping!

Solusi:
Algoritma WHILE-DO Program

DEDEN FARHAN | 0618104038 Halaman 8


Program keliling_bangunan #include <stdio.h>
Kamus Data: int menu;
menu : integer float s, p, l, r, Keliling;
s, p, l, r, keliling : float
const main()
pie = 3.14 {
Algoritma: while (menu!=4) {
WHILE menu!=4 DO printf("Kalkulator Keliling\n");
INPUT(menu) printf("1. Keliling Persegi\n");
CASE (menu) of printf("2. Keliling Persegi Panjang\n");
1 : INPUT(s) printf("3. Keliling Lingkaran\n");
keliling s*4 printf("4. Keluar\n");
2 : INPUT(p) printf("Masukan menu : ");
INPUT(l) scanf("%d",&menu);
keliling (2*p)+(2*l) switch(menu){
3 : INPUT(r) case 1:
keliling 2*pie*r printf("Menu Keliling Persegi\n");
4 : OUTPUT(‘Keluar...’) printf("Masukkan sisi: ");
ENDCASE scanf("%f",&s);
OUTPUT(keliling) Keliling = s*4;
END WHILE printf("Keliling = %f \n",
Keliling);
break;
case 2:
printf("Menu Keliling Persegi
Panjang\n");
printf("Masukkan Panjang: ");
scanf("%f",&p);
printf("Masukkan Lebar: ");
scanf("%f",&l);
Keliling = (2*p)+(2*l);
printf("Keliling = %f \n",
Keliling);
break;
case 3:
printf("Menu Keliling Lingkaran\n");
printf("Masukkan Jari-Jari: ");
scanf("%f",&r);
Keliling = 2*3.14*r;
printf("Keliling = %f \n",
Keliling);
break;
case 4:
printf("Keluar...");
break;
default:
printf("Inputan Tidak Sesuai");
break;

DEDEN FARHAN | 0618104038 Halaman 9


}
}
getchar;

2. Kasus 02
a. Buatlah program untuk menghitung dan menampilkan deret berikut:
Sum = 1 + 5 + 25 + 125 + 625 + ... Input dari user: N yaitu jumlah suku. Gunakan skema
looping.
Contoh:
Input : N = 3
Sum = 1 + 5 + 25 = 31
Input : N = 4
Sum = 1 + 5 + 25 + 125 = 156

DEDEN FARHAN | 0618104038 Halaman 10


Solusi:
Program FOR Program WHILE
Program deret; Program deret;
uses crt; uses crt;
var var
res, temp : string; res, temp : string;
i, n, ta, na: integer; i, n, ta, na: integer;
begin begin
ClrScr; ClrScr;
Write('Masukan N : '); Write('Masukan N : ');
Readln(n); Readln(n);
na := 1; na := 5;
FOR i:= 1 TO N DO i:=1;
begin WHILE i <= N DO
Str(na:4, temp); begin
res := res + temp + ' + '; Str(na:4, temp);
ta := ta + na; res := res + temp +
na := na*5; ' + ';
end; ta := ta + na;
delete(res, length(res)-2, 2); na := na+5;
Write('Sum = ', res, '=', ta); i := i+1;
Readln; end;
end. delete(res, length(res)-2, 2);
Write('Sum = ', res, '=', ta);
Readln;
end.

DEDEN FARHAN | 0618104038 Halaman 11


b. Buatlah program untuk menghitung dan menampilkan deret berikut:
Sum = 5 + 10 + 15 + 20 + 25 + ...
Input dari user: N yaitu jumlah suku. Gunakan skema looping.
Contoh:
Input : N = 3
Sum = 5 + 10 + 15 = 30
Input : N = 5
Sum = 5 + 10 + 15 + 20 + 25 = 75

Solusi:
Program FOR Program WHILE

DEDEN FARHAN | 0618104038 Halaman 12


Program deret; Program deret;
uses crt; uses crt;
var var
res, temp : string; i, n, ta, na: integer;
i, n, ta, na: integer; begin
begin ClrScr;
ClrScr; Write('Masukan N : ');
Write('Masukan N : '); Readln(n);
Readln(n); Write('Sum = ');
na := 5; na := 5;
FOR i:= 1 TO N DO i := 1;
begin FOR i <= N DO
Str(na:4, temp); begin
res := res + temp + ' + '; Write(na, ' + ');
ta := ta + na; ta := ta + na;
na := na+5; na := na+5;
end; i := i+1;
delete(res, length(res)-2, 2); end;
Write('Sum = ', res, '=', ta); Write(' = ', ta);
Readln; Readln;
end. end.

DEDEN FARHAN | 0618104038 Halaman 13


3. Kasus 03 (BONUS)
Buatlah program untuk menampilkan deret sebanyak 2 kali M masukan dari user berikut:
1122334455
Input dari user: N yaitu banyaknya angka, M yaitu banyaknya pengulangan.
Petunjuk: Gunakan skema looping bersarang.
Contoh:
Input : N = 3, M = 2
112233
Input : N = 4, M = 5
11111222223333344444

Solusi:
Program FOR Program WHILE
Program deret; Program deret;
uses crt; uses crt;
var var
i, j, n, m: integer; i, j, n, m: integer;
begin begin
ClrScr; ClrScr;
Write('Masukan N : '); Write('Masukan N : ');
Readln(n); Readln(n);
Write('Masukan M : '); Write('Masukan M : ');
Readln(m); Readln(m);
m:=m*2; m:=m*2;
FOR i:= 1 to N DO i:=1;
begin FOR i <= n DO
FOR j:= 1 to M DO begin
Write(i); j:=1;
end; FOR j <= m DO
Readln; begin
end.
Write(i);

j:=j+1;
end;
i:=i+1;
end;
Readln;
end.

DEDEN FARHAN | 0618104038 Halaman 14


DEDEN FARHAN | 0618104038 Halaman 15

Anda mungkin juga menyukai