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:
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;
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);
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('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;
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;
beb:= 1000;
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);
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
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”