Tugas Teori
Logika dan Algoritma
Buatlah Susunan Algoritma dari soal dibawah ini:
1. Tiga pasang suami istri akan menyeberang sungai dari desa A ke desa B. Terdapat sebuah perahu dengan batas muatan hanya 2 orang saja yang akan digunakan untuk menyeberang. Permasalahan pun terjadi ternyata para suami-suami memiliki sifat cemburu, sehingga tidak bisa meninggalkan istrinya dengan suami lain. Susunlah algoritma untuk menyeberangkan ketiga pasang suami istri dari desa A ke desa B tanpa ada satu orang pun suami yang cemburu.
2. Algoritma untuk mengisi voucher telepon genggam (HP)
1. Gesek bagian hitam pada voucher untuk mendapatkan kode voucher.
2. Tekan *888*kodevoucher#yes/OK.
3. Secara otomatis pulsa bertambah sesuai jumlah nominal yang tertera pada voucher.
3. Algoritma untuk membuat sebuah pakaian jadi (baju atau celana) dari bahan mentah (kain) yang disediakan.
1. Memilih bahan kain yang akan dijahit.
2. Menyiapkan pola.
3. Mengukur bahan kain.
4. Mengguntung bahan kain sesuai ukuran.
5. Menjahit bahan kain hingga menjadi kemeja.
2. Menyiapkan pola.
3. Mengukur bahan kain.
4. Mengguntung bahan kain sesuai ukuran.
5. Menjahit bahan kain hingga menjadi kemeja.
Buatlah Algoritma kemudian terjemahkan dalam bahasa pemrograman pascal
4. Menampilkan bilangan kelipatan 3 dari angka 1 s/d 20
uses crt;
var i : integer;
begin
clrscr;
for i : = 1 to 20 do
begin
if i mod 3 = 0 then
write(i:5);
end;
readln;
end.
5. Menampilkan bilangan ganjil dari angka 1 s/d 100
uses crt;
var I: integer;
begin
clrscr;
for I:= 1 to 100 do
begin
if I mod 2= 1 then
write(I:5);
end;
Readln;
end.
6. Menampilkan bilangan genap dari angka 1 s/d 50
uses crt;
var I : integer;
begin
clrscr;
for I:= 1 to 50 do
begin
if I mod 2= 0 then
write(I:5);
end;
Readln;
end.
7. Menampilkan bilangan prima dari angka 1 s/d 2
Bilangan prima adalah bilangan yang bisa dibagi dengan bilangan 1 dan bilangan itu sendiri.
2 : 2 mod 1=0, 2 mod 2=0
3 : 3 mod 1=0, 3 mod 2=0, 3 mod 3=0
4 : 4 mod 1=0, 4 mod 2=0, 4 mod 3=1, 4 mod 4=0
5 : 5 mod 1=0, 5 mod 2=1, 5 mod 3=2, 5 mod 4=1, 5 mod 5=0
Uses crt;
Var i, pembagi, jumlah0 : integer;
Begin
clrscr;
for i:=2 to 20 do
Begin
jumlah0:=0;
for pembagi :=1 to i do
begin
if i mod pembagi=0 then
jumlah0:=jumlah0+1;
end;
if jumlah0=2 then
write(i:5);
end;
readln;
End.
8. Menampilkan bilangan kelipatan 3 dan kelipatan 5 dari angka 1 s/d 30
uses crt;
var I,A,B: integer;
begin
clrscr;
A:= 3;
B:= 5;
for I:= 1 to 30 do
begin
write (A,B);
A:= A+3;
B:= B+5;
end;
Readln;
End.
9. Masukan sebuah bilangan kemudian tentukan apakah bilangan yang diinput termasuk bilangan ganjil, bilangan genap. Gunakan metode pemilihan
Layout :
Masukan sebuah bilangan : 3 à enter
BIlangan yang anda input adalah bilangan ganjil
uses crt;
var
bilangan : integer;
begin
clrscr;
write('Masukan sebuah bilangan=');Readln(bilangan);
if (bilangan mod 2)= 0 then
writeln('Bilangan yang Anda input adalah bilangan genap')
else
writeln('Bilangan yang Anda input adalah bilangan ganjil');
Readln;
End.
var
bilangan : integer;
begin
clrscr;
write('Masukan sebuah bilangan=');Readln(bilangan);
if (bilangan mod 2)= 0 then
writeln('Bilangan yang Anda input adalah bilangan genap')
else
writeln('Bilangan yang Anda input adalah bilangan ganjil');
Readln;
End.
10. Masukan bilangan 1, setelah itu masukan bilangan 2, kemudian lakukan proses penjumlahan, perkalian, pengurangan, dan pembagian. Hasil dari ke empat operasi aritmatika tersebut ditampilkan
Layout :
Bilangan 1 : 6
Bilangan 2 : 3
Hasil Penjumlahan : 9
Hasil Pengurangan : 3
Hasil Perkalian : 18
Hasil Pembagian : 2
uses crt;
var b1, b2: longint;
begin
clrscr;
write('Bilangan 1: '); read(b1);
write('Bilangan 2: ');readln(b2);
writeln(#10);
writeln('Hasil penjumlahan= ', b1+b2);
writeln('Hasil pengurangan= ', b1-b2);
writeln('Hasil perkalian = ', b1*b2);
writeln('Hasil pembagian = ', b1/b2 :0:0);
readln;
end.
11. Masukan nilai jari-jari sebuah lingkaran. Kemudian program akan menampilkan
7 |
Layout :
Jari-jari lingkaran : 7
Luar Lingkaran adalah 154
uses crt;
var L,r: real;
begin
clrscr;
write('Jari-jari lingkaran= '); readln(r);
L:= pi * sqr(r);
writeln('Luas lingkaran = ', L:0:0);
readln
end.
12. Buat algoritma dan program untuk menghitung luas yang diarsir pada gambar dibawah ini
3 |
4 |
5 |
4 |
4 |
10 |
uses crt;
var pL, lL, pT, lT, L_total, L_tengah: integer;
begin
clrscr;
pL:=18; lL:=12; pT:=10; lT:=5;
L_total:= pL*lL;
L_tengah:= pL*lL;
writeln('Luas total = ', L_total);
writeln('Luas tengah = ', L_tengah);
writeln('Luas yg diarsir= ', L_total-L_tengah);
readln;
end.
13. 1) uses crt;
var i, j: byte;
begin
clrscr;
for i:= 1 to 4 do
begin
for j:= 1 to 4 do
write(j:4); writeln(#10);
end;
readln;
end.
13. Buat tampilan program dibawah ini dengan menggunakan metode perulangan:
1 2 3 4 2 2 2 3 2 1
1 2 3 4 1 1 1 3 2 1
1 2 3 4 0 0 0 3 2 1
1 2 3 4
1 4 3 2 1 1
1 2 4 3 2 3 5
1 2 3 4 3 7 9 11
1 2 3 4 4 13 15 17 19
1) uses crt;
var i, j: byte;
begin
clrscr;
for i:= 1 to 4 do
begin
for j:= 1 to 4 do
write(j:4); writeln(#10);
end;
readln;
end.
2) uses crt;
var A, i, j: byte;
begin
clrscr;
A:=2;
for i:= 1 to 3 do
begin
for j:= 1 to 3 do
write(A:4);
A:=A-1; writeln(#10);
end;
readln
end.
3) uses crt;
var i, j: byte;
begin
clrscr;
for i:= 1 to 3 do
begin
for j:= 3 downto 1 do
write(j:4); writeln(#10);
end;
readln
end.
4) uses crt;
var i, j: byte;
begin
clrscr;
for i:= 1 to 4 do
begin
for j:= 1 to i do
write(j:4); writeln(#10);
readln
end.
5) uses crt;
var A, i, j: byte;
begin
clrscr;
for i:= 4 downto 1 do
begin
A:=4;
for j:= 1 to i do
begin
write(A:4);
A:=A-1;
end;
writeln(#10);
end;
readln
end.
6) uses crt;
var A, i, j: byte;
begin
A:=1;
for i:= 1 to 4 do
begin
for j:=1 to i do
begin
write(A:4);
A:=A+2;
end;
writeln(#10);
end;
readln
end.
14. Buat urutan angka dari terkecil sampai terbesar dari 5 (lima) nilai yang dinput. Gunakan metode urutan, pemilihan dan perulangan.
Layout :
Angka 1 : 8
Angka 2 : 17
Angka 3 : 5
Angka 4 : 7
Angka 5 : 18
Hasil urutan sebagai berikut:
5 7 8 17 18
uses crt;
var x: array[1..5] of integer;
n,min,temp,i,j: integer;
begin
clrscr;
writeln('Program pengurutan bilangan');
writeln('____________________________');
writeln;
for n:=1 to 5 do
begin
write('Input bilangan ',n,': ');readln(x[n]);
end;
n:=5;
for i:=1 to n-1 do
begin
min:=i;
for j:=i+1 to n do
begin
if x[j] <= x[min] then
min:=j;
end;
temp:=x[min];
x[min]:=x[i];
x[i]:=temp;
end;
writeln(#10);
writeln('Hasil pengurutan adalah:');
writeln;
for n:=1 to 5 do
write(x[n]:4);
readln
end.
var x: array[1..5] of integer;
n,min,temp,i,j: integer;
begin
clrscr;
writeln('Program pengurutan bilangan');
writeln('____________________________');
writeln;
for n:=1 to 5 do
begin
write('Input bilangan ',n,': ');readln(x[n]);
end;
n:=5;
for i:=1 to n-1 do
begin
min:=i;
for j:=i+1 to n do
begin
if x[j] <= x[min] then
min:=j;
end;
temp:=x[min];
x[min]:=x[i];
x[i]:=temp;
end;
writeln(#10);
writeln('Hasil pengurutan adalah:');
writeln;
for n:=1 to 5 do
write(x[n]:4);
readln
end.
15. Buat program sederhana menggunakan metode pemilihan untuk menampilkan keterangan umur di mana:
Umur | Keterangan |
0-5 | Balita |
6-13 | Anak-Anak |
14-25 | Remaja |
26-40 | Dewasa |
Ø 41 | Orang Tua |
Dengan memasukan nama, nim, program studi, tahun lahir. Maka akan ditampilkan umur dan keterangan umur
Layoutnya :
Nama : Patra Madjid
Nim : 21015225
Program Studi : Sistem Informasi
Tahun Lahir : 1987
Umur : 23
Keterangan : Remaja
uses crt;
var lahir, umur: integer;
ket: string;
begin
write('NIM : ');readln;
write('Nama : ');readln;
write('Program Studi: ');readln;
write('Tahun Lahir : ');readln(lahir);
writeln(#10);
umur:=2010-lahir;
if umur<=5 then ket:='balita'
else if umur<=13 then ket:='anak-anak'
else if umur<=25 then ket:='remaja'
else if umur<=40 then ket:='dewasa'
else ket:='orang tua';
writeln('Umur : ', umur);
writeln('Keterangan: ', ket);
readln
end.