Senin, 29 November 2010

Tugas teori algoritma dan pemograman


Buatlah susunan algoritma dari soal di bawah ini :
1.       Tiga pasang suami istri akan menyebrang sungai dari desa A ke desa B. tedapat sebuah perahu dengan batasmuatan hanya 2 orang saja yangakan di gunakan untuk menyebrang. Pemasalahanpun tejadi ternyata suami suami memilikisifat cemburu, sehingga tidak bisah meninggalkan istirnya dengan suami lain. Susunlah algoritma untuk menyebrangkan ketiga pasangan suami istri dari desa A ke desa B tanpa satu orangpun suami yang cemburu.

Jawab :

Jika masing masing pasangan di simbolkan dengan : A1 A2, B1 B2, C1 C2
        ( desa Sapi: A1 A2, B1 B2, C1 C2  ………………………………Desa kambing : kosong )
1.       A1 dan B1 menyebrang ke desa kambing
( desa sapi : A2, B2, C1 C2……………………………………desa kambing : A1, B1 )

2.       A1 kembali ke desa sapi
( desa sapi : A2, B2, C1 C2 ………………………………….desa kambing : B1)

3.       A1dan C1 menyebrang ke desa kambing
( desa sapi : A2,B2, C2………………………………………..desa kambing : A1,B1,C1 )

4.       A1 kembali ke desa sapi
( desa sapi : A2, B2, C2………………………………………...desa kambing : B1, C1)

5.        A1 dan A2 menyebrang ke desa kambing
( desa sapi : B2,C2……………………………………………….desa kambing : A1 A2, B1, C1 )

6.       B1 kembali kedesa sapi
( desa sapi : B2,C2………………………………………………desa kambing : A1 A2, B1,C1 )

7.       B1 dan B2 menyebrang ke desa kambing
( desa sapi : C2……………………………………………………desa kambing : A1 A2, B1 B2, C1 )

8.       C1 kembali ke desa sapi
( desa sapi :  C2 …………………………………………………..desa kambing : A1 A2, B1 B2 )

9.       C1 dan  C2 menyebrang ke desa kambing
( desa sapi : ………………………………………………………..desa kambing : A1 A2, B1 B2, C1 C2 ).


2.       Algoritma  untuk mengisi vocher telepon genggam ( HP )
       
        Jawab :
1.       Vocher electric
a.        Ketik sms berikut: kode < spasi> nominal < spasi > nomor penerima <spasi > pin
b.      Masukan nomor konter pulsa
c.       Kirim
d.      Pulsa akan masuk ke nomor [enerima sacaa otomatis

2.       Vocher  fisik
a.       Gesek kartu untuk melihat kode vocher
b.      Laluh ketik code vocher  yang ada pada vocher  tersebut
c.       Laluh tekan ok/yes
d.      Pulsa akan masuk secara otomatis


3.       Algoritma untuk membuat pakaian jadi

        Jawab :

·         Menyiapkan bahan , kain dan peralatan yang di pakai untuk menjahit
·         Menentukan ukuran sesuai dengan jenisnya
·         Membuat pola
·         Memotong kainsesuai pola dan di lebihkan sekitar 5 cmuntuk area menjahit
·         Menjahit sesuai pola yang ada
·         Merapihkan pakaian yang sudah jadi
·         Pakaian siap pakai / jual

Buatlah algoAritma kemudian terjamahkan dalam pemograman pascal :
4.       Menampilkan bilangan kelipatan 3 dari angka 1 s/d 20
        Jawab :
        Cara 1
        Tentukan  nilai awal  A =1
                              Nilai for  I    = 1 sampai 6 lakukan
2.1. Cetak A
2.2. Hitung A:=A+3

        Pascal

        Uses crt;
        Var  I,a : integer;
        Begin
                Clrscr;
                a:=1;
                for  i:=1 to 6 do
                Begin
                          Write ( a:4 );
                          a:=a+3;
                End;
                Readln;
        End.        
        Cara 2
        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

        Jawab:
        Cara 1
        Tentukan nilai awal A=1
                            Nilai         I  =1 sampai 50 lakukan
        2.1. cetak  A
        2.2. hitung  A:=A+2
       
        Pascal:
        Uses crt;
        Var  I,a:integer;
        Begin
                Clrscr;
                a:=1;
                for i:=1 to 50 do
                Begin
                            Write ( a:4 );
                            a:=a+2;
                End;
                Readln;
        End.

        Cara 2
        Uses crt;
        Var  I : integer;
        Begin
                Clrscr;
                for i:=1 to 100 do
                Begin
                            If I mod 2 =0 Then
                                Write ( i:5 );
                End;
                Readln;
        End.
6.       Menampilkan  bilangan genap dari 1 s/d 50
        Jawab :

        Cara 1
        Tentukan nilai for i=1 sampai 50 lakukan
        2.1. if i mod 2 =0 Then
        2.2. cetak i  

        Pascal
        Uses crt;
        Var  I : integer;
        Begin
                Clrscr;
                For I mod 2 =0 Then
                Begin
                            Write ( i:4 );
                End;
                Readln;
        End.

        Cara 2
        Uses crt;
        Var I, a : integer;
        Begin
                Clrscr;
                a:=2;
                for I :=1 to 25 do
                Begin
                            Write ( a:4 );
                            a:=a+2;
                End;
                Readln;
        End.
7.       Menampilkan bilangan prima dari angka 1 s/d 20

        Jawab :

        Tentukan nilai for x=1 sampai 20 lakukan
                            Nilai for y=1 sampai x lakukan
        2.1. if x mod y =0 Then
        2.2. jumlah:=jumlah+1
       
        Pascal
        Uses crt;
        Var x, y, jumlah : integer;
        Begin
                Clrscr;
                For x:=1 to 20 do
                Begin
                            Jumlah =0;
                            For y:=1 to x do
                            Begin
                                      If x mod y =0 Then
                                            Jumlah := jumlah+1
                                      End;
                                      If jumlah :=2 Then
                                            Write ( x:5 );
                End;
                Readln;
        End.          
       

8.       Menampilkan bilangan kelipatan 3 dan kelipatan  5 dari angka  1 s/d 30       
        Jawab :
        Tentukan nilai  I = 1 sampai  30 lakukan
        2.1. if  I mod 3=0 atau  I mod 5=0 Then
            2.  cetak  i

        Pascal
        Uses crt;
        Var  I : integer;
        Begin
                  Clrscr;
                  For  I : 1 to 30 do
                        If  ( I mod 3=0 ) 0r ( I mod 5=0 ) Then
                              Write ( i:4 );
                  End;
                  Readln;
        End.

9.       Masukan sebuah bilangan kemudian tentukan apakah bilangan yang di imput temasuk bilangan ganjil, bilangan genap.  Gunakan metode pemilihan
       
        Layout :
        Masukan sebuah bilangan : 3   enter
        Bilangan yang anda input adalah bilangan ganjil

        Jawab :
        Pascal
        Uses crt;
        Var   a: integer;
        Begin
                Clrsc;
                Write (‘ masukan sebuah bilangan : ‘ );  Readln  ( a );
                                    If ( a mod 2 = 1 ) Then
                                                Writeln ( a,’ Bilangan ganjil ‘ );
                                    Else
                                                Writeln ( a,’ Bilangan genap ‘ );
              End;
        End.                              
         
10.   Masukan bilangan  1, setelah itu masukan bilangan 2, kemudian lakukan poses penjumlahan, perkalian, pengurangan, dan pembagian.  Hasildari ke empat operasi aritmetika tersebut di tampilkan.
        layout
        Bilangan 1  :  6
        Bilangan  2  : 3
        Hasil penjumlahan   :  9
        Hasil pengurangan  :  3
        Hasil perkalian          :  18
        Hasil pembagian      :  2

        Jawab : 
        Pascal
        Uses crt;
        Var a, b:  integer;
        Begin
                Clrscr;
                Write (‘ Bilangan 1 : ‘ )  Read ( a );
                Write (‘ Bilangan 2 : ‘ ) Readln ( b );
                Writeln (#1);
                Writeln (‘ hasil penjumlahan =’, a+b );
                Writeln (‘ hasil pengurangan =’, a-b );
                Writeln (‘ hasil perkalian         =’ , a*b );
                Writeln (‘ hasilpembagian      =’, a/b );
                Readln
        End.

11.   Masukan nilai jari jari sebuah lingkaran. Kemudian program akan menampilkan hasil luas lingkaran

Layout
        Jari jari lingkaran : 7
        Luas lingkaran      : 154
        Pascal
        Const  Phi : 14,3
        Var r, luas : integer;
        Begin
                Clrscr;
                Write (‘ masukan nilai jari jari :=’ );  Read ( r );
                                Luas : = Phi*r*r;
                Write  ( luas );
        End.
12.   Buatlah algoritma dan program untuk menghitung luas yang di arsir pada gambar di bawah ini :

Jawab :

Uses  crt;
Var  PL, IL, pt, L, total, L tenga  :  integer;
Begin
        Clrscr;
                PL:=18;
                IL:=12;
                PT:=10;
                IT:=5;
                L total :=PL*IL;
                L tenga :=PT*IT;
                Writeln (‘ Luas total = ‘, L total );
                Writeln (‘ Luas tenga  = ‘, L tenga );
                Writeln (‘ Luas yang diasir = ‘, L total, L tenga );
                Readln;
        End.

13.   Buat tampilan program di baawah ini  dengan menggunakan metode perulangan :

a.       1 2 3 4                                  b.    2 2 2                                     c.     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
e.      1                                            e.    4 3 2 1                                  f.     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 :
        Pascal
a.        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 (#10);
        End;
        Readln;
End.

b.      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 (#10);
    End;
    Readln;
End.

c.       Uses crt;
Var   i, j : integer;
Begin
          Clrscr;
          for i:= 1 to 3 do
          Begin
                For j:= 3 downto  1 do
                        Write ( j:4 );  Writeln (#10);
          End;
          Readln;
End.

d.      Uses crt;
Var  I, j : integer;
Begin
    Clrscr;
    For  i:= 1 to 4 do
    Begin
        For  j:= 1 to I do
                Write ( j:4 );  Writeln (#10);
        End;
        Readln;
End.      

e.      Uses crt;
Var  I, j: integer;
Begin
      Clrscr;
      For  I:= 1 to 4 do
      Begin
            For  j:= 4 downto I do
                  Write ( j:4 );
                  Writeln (#10 );
      End;
      Reasdln;
End.

f.        Uses crt;
Var  a, I, j: integer;
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 ( #10 );
                End;
                Readln;                               
        End.
14.   Buatlah urutan angka dari terkecil sampai terbesar dari 5 ( lima ) nilai yang di imput. Gunakan metode urutan , pemilihan dan perulangan.
Layout
        Angka 1                      : 8
        Angka 2                      : 17
        Angka 3                      : 5
        Angka 4                      : 7
        Angka 5                      : 18
       
        Jawab :
        Program pengurutan data yang di imputsecara acak
        Menggunakan metode selection sort
        Jika min menyatakan  indeks  elemen terkecil dari elemen ke I sampai elemen ke n. dimana n merupakan jumlah data yang akan di urtkan. Algoritma untuk mencarri elemen terkecil :
        for I := 1 to n-1 do
                (cari elemen tekecil )
        Min := I ( min adalah indekselemen terkecil  )
        For j:= i+1 to n do=
                If  x[j] <= x [min] then
                Min := j eif
        Efor
                { menukar elemen terkecil dengan elemen I }
                      Temp :=x [min]
                      X [min] :=temp
        Efor
Pascal
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 (‘imput 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
Layout
                        Umur                            Keterangan
                        0-5                                  Balita
                        6-13                               Anak anak
                        14-25                             Remaja
                        26-40                             Dewasa
                        >41                                 Orang tua
        Dengan memasukan nama, nim, program studi,dan tahun lahir, maka akan di tampilkan  umur dan     keterangan umur
        Layoutnya :
        Nama                                        :         Asrudin
        Nim                                           :         21015135
        Program studi                       :         Sistem informasi                      
        Tahun lahir                             :         1987
        Umur                                        :         23
        Keterangan                            :         Remaja                          

Jawab :

Pascal
Uses crt;
Var  lahir, umur : integer;
        Ket  : string
Begin
        Clrscr;
        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’
        Writeln (‘Umur                                      : ‘);
        Writeln (‘Keterangan                          : ‘);
        Readln;
End.