Sabtu, 25 Desember 2010
logika dan algoritma 1
teori logika dan algoritma 1
1. tiga pasang suami istri akan menyeberang sungai dari desa A ke desa B. terdapat sebuah perahu dengan batas muatan hanya 2 saja yang akan digunakan untuk menyeberang.permasalahanpun terjadi ternya 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…
Jawab:
1.Masing-masing pasangan disimbolkan dengan S1 I1, S2 I2, dan S3 I3
Algoritmanya:
{di desa A: S1, I1, S2, I2,S3, I3 --- di desa B: belum ada}
- I1 dan I2 menyeberang ke desa B
{di desa A: S1, S2, S3, I3 --- di desa B: I1, I2}
- I2 kembali ke desa A
{di desa A: S1, S2, I2, S3, I3 --- di desa B: I1}
- I2 dan I3 menyebrang ke desa B
{di desa A: S1, S2, S3 --- di desa B: I1, I2, I3}
- I3 kembali ke desa A
{di desa A: S1, S2, S3, I3 --- di desa B: I1, I2}
- S1 dan S2 menyeberang ke desa B
{di desa A: S3, I3 --- di desa B: S1, I1, S2, I2}
- S2 dan I2 kembali ke desa A
{di desa A:S2, I2, S3, I3 --- di desa B: S1, I1}
- S2 dan S3 menyeberang ke desa B
{di desa A:I2, I3 --- di desa B: S1, I1, S2, S3}
- I1 kembali ke desa A
{di desa A: I1, I2, I3 --- di desa B: S1, S2, S3}
- I1 dan I2 menyeberang ke desa B
{di desa A: I3 --- di desa B: S1, I1, S2, I2, S3}
2. Algoritma untuk mengisi voucher telepon genggam (HP)
Jawab :
1. Sediakan hp dan voucher As
Proses:
1.Bukalah plastik pembungkus voucher
2.Gosok bagian berhologram untuk melihat kode voucher
3. Masukkan kode voucher dengan cara :
4. Hubungi 888 dan ikuti petunjuk selanjutnya atau,
5. Tekan *133*kode voucher#lalu tekan YES/OK
3. Algoritma untuk membuat sebuah pakaian jadi (baju atau celana) dari bahan mentah (kain) yang disediakan.
Jawab:
1. Siapkan alat dan bahannya
2. Buatlah pola sesuai model pakaian (baju atau celana) yang diinginkan
3. Guntinglah kain sesuai model pola
4. Obras pinggiran kain yang telah digunting tadi
5. Kemudian jahit kain yang telah diobras tadi untuk dibuat pakaian (baju atau celana)
4. Menampilkan bilangan kelipatan 3 dari angka 1 s/d 20
Jawab:
-1. Beri nilai awal A=3
-2. Untuk I = 1 sampai 20, lakukan
2.1Cetak Nilai A
2.2 Hitung : A = A + 3
Program pascal:
uses crt;
var I,A: integer;
begin
clrscr;
A:=3;
for I:=1 to 6 do
begin
writeln(A);
A:=A+3
end;
Readln;
end.
5. Menampilkan bilangan ganjil dari angka 1 s/d 100
1. Beri Nilai A = 2.
2. Untuk I = 1 sampai 100 lakuka
2.1 Cetak Nilai A
2.2 Jika A mod 2 = 1 , maka nilai A = bilangan ganjil
Program pascal:
uses crt;
var I,A: integer;
begin
A:=1;
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
Jawab:
- 1. Beri Nilai A = 1
- 2. Untuk I = 1 samapi 50 lakukan
2.1 Cetak Nilai A
2.2 Jika A mod 2 = 0 , maka nilai A = bilangan genap
Program pascal:
uses crt;
var I,A: integer;
begin
A:=1;
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 20
Jawab :
1. bilangan prima hanya akan habis bila dibagi 1 dan bilangan itu sendiri.
2. sehingga pasti akan ada sisa hasil bagi (mod) jika dibagi bilangan lebih dari 1 (kecuali 2) sampai bilangan sebelum bilangan itu (x-1).
3. mencetak 2 terlebih dahulu ke layar.
4. mengeset status bilangan prima menjadi true.
5. beri nilai =1 (menandakan bilangan prima).
6. melakukan pengecekan mulai dari 2 sampai x-1.
7. jika x habis dibagi bilangan yang ada antara 2 sampai x-1, berarti x bukan bilangan prima. Variabel prima yang awalnya true berubah jadi false dan pengecekan tidak perlu dilanjutkan (break).
8. jika dari bilangan antara 2 sampai x-1 tak satupun yang habis dibagi, maka variabel prima yang dideklarasikan sebagai true tidak berubah nilai (tetap true). Sehingga bilangan tersebut adalah bilangan prima dan akan ditampilkan ke layar.
9. tambahkan nilai x dengan 1 dan ulangi dari langkah ke-5 sampai nilai x= 20
program pascal:
uses crt;
var x,y: integer;
prima: boolean;
begin
clrscr;
write('2':4);
for x := 3 to 20 do
begin
prima:=true;
for y := 2 to x-1 do
begin
if (x mod y) = 0 then
begin
prima := false;
break;
end;
end;
if prima then write(x:4);
end;
Readln;
end.
8. Menampilkan bilangan kelipatan 3 dan kelipatan 5 dari angka 1 s/d 30
Jawab:
- Untuk i:= 1 sampai 30 lakukan:
- jika i mod 3= 0 maka cetak i
- selain itu jika i mod 5= 0 maka cetak i.
uses crt;
var i: integer;
begin
clrscr;
for i:= 1 to 30 do
begin
if i mod 3 = 0 then write(i:4)
else
if i mod 5 = 0 then write(i:4);
end.
9. Masukan sebuah bilangan kemudian tentukan apakah bilangan yang diinput termasuk bilangan ganjil, bilangan genap. Gunakan metode pemilihan
Layout :
Masukan sebuah bilangan : 3⇾ente
Bilangan yang anda input adalah bilangan ganjil
Jawab :
1.1. Beri Nilai A
2.2..Cetak Nilai A
2.1 Jika A mod 2 = 0, maka A bilangan genap
2.2 Jika tidak, maka A bilangan ganjil
uses crt;
var A: integer;
begin
write('masukan bilangan:');
Readln(A);
if (A mod 2)= 0 then
write(A,' ','adalah bilangan genap')
else
write(A,' ','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
Jawab:
uses crt;
var A,B:integer;
begin
clrscr;
Write('Bilangan 1: ');Readln(A);
Write('Bilangan 2: ');Readln(B);
Writeln('Hasil Penjumlahan= ',A+B);
Writeln('Hasil Pengurangan= ',A-B);
Writeln('Hasil Perkalian = ',A*B);
Writeln('Hasil Pembagian = ',A/B:0:0);
Readln;
end.
11. Masukan nilai jari-jari sebuah lingkaran. Kemudian program akan menampilkan
hasil luas lingkaran.
Layout :
Jari-jarilingkaran :7
Luar Lingkaran adalah 154
Jawab :
1.1. Masukan nilai jari-jari yang menyatakan r
2.2. Menetapkan nilai phi yaitu phi = 3.14
3.3. Menghitung luas lingkaran yang menyatakan L yaitu L = phi * r * r
4.4.Cetak hasil luas lingkaran(L)
uses crt;
constphi=3.14;
varL,r:real;
begin
writeln('ProgramMenghitungLuasLingkaran');
write('Masukanjari-jariLingkaran:');
Readln(r);
L:=phi*r*r;
writeln('LuasLingkaranadalah:',round(L));
Readln;
end.
12. Buat algoritma dan program untuk menghitung luas yang diarsir pada gambar dibawah ini
1. Menentukan nilai panjang sisi luar (pL): pL= 18, lebar sisi luar (lL): lL= 12, panjang sisi dalam (pT): pT= 10, dan lebar sisi dalam (lT): lT= 5.
2. Menghitung luas total, Ltotal= pL x lL
3. Menghitung luas tengah, Ltengah= pT x lT
4. Didapat luas yang diarsir, Larsir= Ltotal-Ltengah
Program pascal:
uses crt;
var pL, lL, pT, lT, Ltotal , Ltengah: integer;
begin
clrscr;
pL:=18; lL:=12; pT:=10; lT:=5;
Ltotal:= pL*lL;
Ltengah:= pT*lT;
writeln('Luas total = ', Ltotal);
writeln('Luas tengah = ', Ltengah);
writeln('Luas yang diarsir= ', Ltotal-Ltengah);
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
Jawab:
1. uses crt;
var I,J :integer;
begin
clrscr;
for I:= 1 to 4 do
begin
for J:= 1 to 4 do
write(J:4);
writeln;
end;
readln;
end.
2. uses crt;
var A, I,J: integer;
begin
clrscr;
A:=2;
for I:= 1 to 3 do
begin
for J:= 1 to 3 do
write(A:4);
A:=A-1; writeln;
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;
end;
readln;
end.
4. uses crt;
var i, j: integer;
clrscr;
for i:= 1 to 4 do
begin
for j:= 1 to i do
write(j:4); writeln;
end;
readln;
end.
5. uses crt;
var A, i,j:integer;
begin
clrscr;
for i:= 4 downto 1 do
begin
A:=4;
for j:= 1 to i do
begin
write(A:4);
end;
writeln;
end;
readln;
end.
6. uses crt;
var A, i, j: byte;
begin
clrscr;
A:= 1;
for i:= 1 to 4 do
begin
for j:= 1 to i do
begin
write(A:4);
A:= A+2;
end;
writeln;
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
Jawab:
a. urutan
if N1 > N2 maka tukarkanlah
8 17 5 7 18
5 17 8 7 18
5 8 17 7 18
5 7 17 8 18
5 7 8 17 18
b. pemilihan dan perulangan
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[i];
x[i]:=x[min];
x[min]:=temp;
end;
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:
- Dengan memasukan nama, nim, program studi, tahun lahir. Maka akan ditampilkan umur dan keterangan umur
Layoutnya :
Nama : Andi
Nim : 21015199
Program Studi : Sistem Informasi
Tahun Lahir : 1981
Umur : 29
Keterangan : Dewasa
jawab :
uses crt;
var nama, nim,programstudi,ket: string ;
begin
clrscr;
write('Nama: '); readln(nama);
write('NIM : '); readln(nim);
write('Program Studi: '); readln(programstudi);
write('Tahun Lahir : '); readln(tahunlahir);
umur:= 2010-tahunlahir;
writeln;
writeln('Umur: ', umur);
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('Keterangan: ',ket);
readln;
end.
Langganan:
Postingan (Atom)