Anda di halaman 1dari 14

1. Jika user memasukkan angka 5 Apa Output dari algoritma berikut?

ALGORITMA loop1
KAMUS DATA
I,j,n: Integer
BEGIN
Input(n)
For i :=0 to n-1 do
begin
For j:=0 to n-1 do
begin
Output(i+1)
End
Output("\n") //ganti baris
End
End.
2. Buatlah algoritma dan program untuk menampilkan angka seperti berikut:
Contoh inputan :
Jumlah angka : 5
1 5
2 4
3
2 4
1 5
Jumlah angka : 6
1 6
2 5
34
34
2 5
1 6
Jumlah angka : 9
1 9
2 8
3 7
4 6
5
4 6
3 7
2 8
1 9
uses crt;
var
x, k, tin, y: integer;
begin
clrscr;
write('Masukkan Jumlah Angka : '); readln(x);
k := x;

for tin := 1 to x do
begin
for y := 1 to x do
begin
if (tin = y) or (y = k) then
begin
write(y);
end
else
begin
write(' ');
end;
end;
k := k - 1;
writeln(' ');
end;
readln;
end.
3. Soal: Bintang Ketupat
Buatlah algoritma dan program untuk menampilkan bintang berbentuk belah ketupat:
Contoh inputan :
Jumlah bintang : 5
*
* *
* *
* *
*
Jumlah bintang : 6
**
* *
* *
* *
* *
**
Jumlah bintang : 9
*
* *
* *
* *
* *
* *
* *
* *
*
Jawab:

4.Buatlah algoritma dan program yang menginputkan 4 bilangan yang merupakan


nilai ujian mahasiswa, serta mencetak nilai tertinggi yang didapat mahasiswa.
Jawab:
uses crt;
var
n, max, nilai: integer;
begin
clrscr;
n := 0;
max := 0;
repeat
begin
n := n + 1;
write('Masukkan nilai Mahasiswa ke-', n, ' : '); readln(nilai);
if nilai > max then
max := nilai;
end;
until n = 4;

write('Nilai Tertinggi : ', max, ' '); readln;


end.

5. Buatlah algoritma dan program yang menginputkan 7 bilangan yang merupakan


nilai ujian mahasiswa, mencetak nilai tertinggi yang didapat mahasiswa dan juga
mencetak berapa orang yang mendapat nilai tertinggi tersebut.
Misal bilangan yg diinput: 72 80 80 92 95 87 95
Nilai Tertinggi: 95
Jumlah: 2

uses crt;
var
n, max, nilai, jml: integer;
begin
clrscr;
n := 0;
max := 0;
jml := 0;
repeat
begin
n := n + 1;
write('Masukkan nilai Mahasiswa ke-', n, ' : '); readln(nilai);
if nilai = max then
begin
jml := jml + 1;
end;
if nilai > max then
begin
max := nilai;
end;
end;
until n = 7;

write('Nilai Tertinggi : ', max, ' '); writeln;


write('Banyak Nilai Tertinggi : ', jml, ' '); readln;
end.
6.Buatlah algoritma dan program yang menginputkan 10 bilangan yang merupakan
nilai ujian mahasiswa, kemudian mencetak nilai tertinggi dan nilai terendahnya.
Misal bilangan yg diinput: 72 80 80 92 95 87 95
Nilai Tertinggi: 95
Nilai Terendah: 72
Jawab:
uses crt;
var
n, max, nilai, min: integer;
begin
clrscr;
n := 0;
max := 0;
min := 100;
repeat
begin
n := n + 1;
write('Masukkan nilai Mahasiswa ke-', n, ' : '); readln(nilai);
if nilai < min then
begin
min := nilai;
end;
if nilai > max then
begin
max := nilai;
end;
end;
until n = 10;

write('Nilai Tertinggi : ', max, ' '); writeln;


write('Nilai Terendah : ', min, ' '); readln;
end.

7.Buatlah algoritma dan program yang menginputkan sebuah bilangan bulat yang
merupakan nilai ujian. Apabila nilai yang diinput < 0 atau > 100 maka cetak
perkataan “Data salah, silahkan ulangi lagi” dan ulangi menginput data. Bila
nilainya >= 60 maka cetak perkataan “LULUS”, selainnya cetak perkataan “COBA
LAGI TAHUN DEPAN”. Gunakan format Do While
Jawab:
uses crt;
var
nilai: integer;
begin
clrscr;
write('Masukkan Nilai Mahasiswa : '); readln(nilai);

while (nilai < 0) or (nilai > 100) do


begin
write('Data salah, Silahkan Ulangi lagi : '); readln(nilai);
end;
writeln;

if (nilai >= 60) then


write('Lulus!')
else
write('Coba Lagi Tahun Depan'); readln;

end.
8. Dalam lembar dokumen tersedia banyak sekProf. Carol Dweck data berupa bilangan-
bilangan integer. Buat algoritma dan program untuk menginput data-data tersebut dan
menjumlahkannya. Kondisi berhenti adalah ketika jumlah dari data tersebut sudah
melebihi 1000. Cetak berapa banyak bilangan yang diinputkan.
Cth:
Data Input: 300, 300, 500
Output: banyak data 3, jumlah 1100
Data Input: 200, 400, 100, 200,100,1
Output: banyak data 6 , jumlah 1001
Jawab:
uses crt;
var
n, jml, ang: integer;
begin
clrscr;
n := 0;
jml := 0;

repeat
begin
write('Masukkan Data : '); readln(ang);
jml := jml + ang;
n := n + 1;
end;
until jml > 1000;
writeln;
write('Banyak data ', n, ' Jumlah nya ', jml); readln;
end.
9.Buat algoritma dan program untuk menghitung rata-rata nilai mahasiswa. Berapa
banyak nilai mahasiswa tidak diketahui. Kondisi berhenti adalah ketika diinputkan
nilai 999 yang pasti bukan merupakan nilai ujian.
Misal data yang diinputkan : 60, 50, 999, 65, 75, 999
Output: rata-ratanya: (60+50+70+65+75) / 5 = 64
Note: banyaknya data bisa berupa n bilangan (n tidak diketahui)
Jawab:
uses crt;
var
n, jml, rat, nilai: integer;
begin
clrscr;
n := 0;
jml := 0;
rat := 0;

write('Masukkan nilai Mahasiswa : '); readln(nilai);

while nilai <= 100 do


begin
jml := jml + nilai;
n := n + 1;
rat := jml div n;
write('Masukkan nilai Mahasiswa : '); readln(nilai);
end;

write('Rata - ratanya : ', jml, ' / ', n, ' : ', rat); readln;
end.

10. Buat algoritma dan program yang menentukan apakah sebuah bilangan genap
atau ganjil. Bilangan diinputkan oleh user. Jika genap maka cetak perkataan “Even”,
jika ganjil maka cetak perkataan “Odd”. Lakukan pendeteksian genap ganjil tidak
menggunakan Mod tetapi menggunakan loop
uses crt;
var
ang: integer;
begin
clrscr;
write('Masukkan sebuah angka : '); readln(ang);

repeat
begin
ang := ang - 2;
end;
until ang <= 1;
if ang = 0 then
write('Even')
else
write('Odd');

readln;
end.
11. Buat algoritma dan program yang inputannya sebuah bilangan. Kemudian
menentukan apakah bilangan tersebut adalah bilangan prima atau bukan. Gunakan
mekanisme loop untuk pendeteksian bilangan prima.
12. Buat Algoritma dan program yang menginput sebuah bilangan bulat yang
menyatakan waktu dalam detik. Kemudian konversikan dan cetak waktu itu dalam
satuan Jam, Menit, Detik.
Cth:
Input: 7405
Output: 2 Jam, 3 Menit, 25 Detik
Note:
Gunakan mekanisme loop untuk menentukan jam dan menit. Untuk mendapatkan jam kurangi
terus menerus detik dengan 3600, sampai nilainya < 3600. Setiap detik dikurangi 3600 maka Jam
bertambah 1. Untuk mendapatkan menit kurangi terus detik dengan 60, sampai nilainya < 60.
Setiap detik dikurangi 60 menitnya ditambah 1.

Jawab
uses crt;
var
deb, jam, men, det, njam, nmen: integer;
begin
clrscr;
write('Masukkan Waktu dalam Detik : '); readln(deb);

jam := 0;
men := 0;
det := 0;

njam := deb;
nmen := deb;

repeat
begin
njam:= njam - 3600;
jam := jam + 1;
end;
until njam < 3600;
repeat
begin
nmen := nmen - 60;
men := men + 1;

if (men > 60) then


men := men - 60;
end;
until nmen < 60;

write(jam, ' Jam, ', men, ' Menit, ', nmen, ' Detik '); readln;
end.
13. Buat algoritma dan program yang menampilkan deret: 1 2 3 5 8 13 21....
uses crt;
var
bat, x, y: integer;
begin
clrscr;
write('Masukkan Batas deret : '); readln(bat);

x:= 1;
y:= 1;

write(x, ' ');

while (x <= bat) or (y <= bat) do


begin
x:= x + y;
y:= y + x;

if (x <= bat) then


write(x, ' ');
if (y <= bat) then
write(y, ' ');
end;
readln;
end.
14. Dalam sebuah kandang ada 1000 bebek. Setiap akhir bulan bebek tersebut serempak
melahirkan satu bebek baru. Namun sebelum melahirkan, 20% dari bebek tersebut
mati. Susun algoritma dan program untuk menghitung dan mencetak jumlah bebek
setelah 10 bulan.
uses crt;
var
bul, beb: integer;
begin
clrscr;
write('Jumlah bebek sekarang 1000 bebek'); writeln;
write('Masukkan berapa bulan kedepan : '); readln(bul);

beb:= 1000;

for bul := 1 to bul do


begin
beb:= (beb * 20 div 100) + 1;
end;

write('Jumlah bebek setelah ', bul, ' Bulan kedepan : ', beb);
readln;
end.
15. 17. Seseorang menyimpan uang 1.000.000 di bank dengan bunga 2% perbulan. Jadi
setelah satu bulan uangnya menjadi 1.020.000. satu bulan berikutnya uang 1.020.000
ini mendapat bunga lagi 2% sehingga setelah 2 bulan uangnya menjadi 1.020.000 +
20.400 = 1.040.400. Buat algoritma dan program untuk menghitung dan mencetak
jumlah uang setelah 10bulan.
uses crt;
var
uan, bun: real;
bul: integer;
begin
clrscr;
write('Masukkan Jumlah Uang : '); readln(uan);
write('Masukkan Berapa bulan kedepan : '); readln(bul);

for bul := 1 to bul do


begin
bun := uan * 0.02;
uan := uan + bun;
end;

write('Jumlah Uang setelah ', bul, ' bulan, adalah ', uan:0:0); readln;
end.
16. Jika user memasukkan angka 5 Apa Output dari algoritma berikut?
ALGORITMA loop2
KAMUS DATA
I,j,n: Integer
BEGIN
Input(n)
For i :=0 to n-1 do
begin
For j:=0 to n-1 do
begin
Output(j+1)
end
Output("\n") //ganti baris
end
End

17. Buatlah program untuk mencetak bilangan bulat sbb: 15 13 11 9 7 5 3 1


menggunakan struktur perulangan Repeat-Until, While dan For!

Jawab :
Perulangan Repeat-Until
uses crt;
var
i : integer;
begin
clrscr;
writeln(' PERULANGAN REPEAT-UNTIL ');
writeln('-------------------------');
writeln;
i:=15;
repeat
begin
if i mod 2 = 1 then
write(i:3);
i:=i-1;
end;
until i<=1;
readln;
end.
18. Ada katak masuk kedalam sumur sedalam 31.2 m. 5 hari pertama katak bias
naik 3 m tiap pagi dan merosot 1 meter tiap malam, 10 hari berikutnya katak
bias naik 2 meter tiap pagi dan merosot 1.25 m tiap malam, selanjutnya naik 2
m tiap pagi dan merosot 1.5 m tiap malam, berapa hari katak tersebut dapat
keluar dari sumur?

Jawab :
uses crt;

var
merosot,kedalaman,selisih : real;
naik,hari : integer;
begin
clrscr;
write('Masukkan Jumlah Kedalaman Sumur = ');readln(kedalaman);
writeln('------------------------------------------------------ --');
writeln('Jumlah Hari Naik Merosot Jumlah Naik Kedalaman');
writeln(' Per Hari');
writeln('------------------------------------------------------ --');
hari := 1;
naik := 3;
merosot := 1;
selisih := naik - merosot;
while kedalaman > 0 do
begin
kedalaman := kedalaman - selisih;
writeln(hari:7, naik:10, merosot:10:2,
selisih:11:2, kedalaman:14:2);
hari := hari + 1;
if (hari>5) and (hari<=15) then
begin
naik := 2;
merosot := 1.25;
selisih := naik - merosot;
end
else if (hari>15) then
begin
naik := 2;
merosot := 1.5;
selisih := naik - merosot;
end;
end;
readln;
end.

19. Algortima menampilkan angka diantara 2 nilai yang dimasukan, misal nilai
yang di masukan adalah 2 dan 10, maka outputnya adalah : 2 3 45 6 7 8 9 10
20. Algoritma untuk menentukan validasi username dan password, dimana akan
di ulang maksimal 3 kali, jika benar akan muncul komentar ” anda berhasil
masuk” tapi jika tidak muncul komentar ” maaf user name dan password anda
salah”

Anda mungkin juga menyukai