Kamis, 09 Februari 2012

Materi Algoritma


PROSEDUR :
Modul program yang mengerjakan tugas / aktivitas yang spesifik dan menghasilkan suatu efek netto.
Suatu efek netto diketahui dengan membandingkan keadaan awal dan keadaan akhir pada pelaksanaan sebuah prosedur.
Ø Mendefinisikan prosedur :
a.     Menuliskan nama prosedur
b.     Mendeklarasikan nama-nama konstanta, peubah (variabel) dan tipe ( jika ada ).
c.      Menjabarkan rangkaian yang dilakukan.
Ø Struktur Prosedur :
a.     Bagian Judul (header)
                         Terdiri atas Nama prosedur dan deklarasi parameter ( jika ada ).
b.     Bagian deklarasi (kamus)
                         Untuk mengumumkan nama-nama.
c.      Bagian deskripsi (badan algoritma)
                Disebut juga badan prosedur.
Nama prosedur sebaiknya diawali dengan kata kerja karena prosedur berisi suatu aktivitas, misalnya HitungLuas, Tukar, CariMaks, Inisialisasi, AktifkanMenu, dan lain sebagainya.
Ø Prosedur yang baik adalah
Prosedur yang independent dari program pemanggilannya. Prosedur yang tidak menggunakan peubah- peubah global di dalam badan prosedurnya.
Jika program utama perlu mengkomunikasikan nilai peubah global ke dalam prosedur, maka ada satu cara untuk melakukannya yaitu dengan menggunakan parameter.
Ø Parameter adalah :Nama- nama peubah yang dideklarasikan pada bagian header prosedur
a.     Parameter aktual ( argument ) adalah :
 Parameter yang disertakan pada waktu pemanggilan prosedur.
b.     Parameter formal adalah :
Parameter yang dideklarasikan di dalam bagian header prosedur itu sendiri.
Aturannya :
Jumlah parameter aktual pada pemanggilan prosedur harus sama dengan jumlah parameter formal pada deklarasi rosedurnya.
Tiap parameter aktual harus bertipe sama dengan tipe parameter formal yang bersesuaian.
Tiap parameter aktual harus diekspresikan dalam cara yang taat-asas dengan parameter formal yang bersesuaian, bergantung pada jenis parameter formal.
Ø Tiga Jenis Parameter formal
1)    Parameter masukan ( Input parameter ).
Parameter yang nilainya berlaku sebagai masukan untuk prosedur.Dalam bahasa pemrograman, istilah parameter masukan ini sering dinamakan parameter nilai (value parameter atau parameter by value).
2)    Parameter keluaran ( Output parameter).
Parameter yang menampung keluaran yang dihasilkan oleh prosedur, parameter ini sering juga disebut parameter referensi (parameter by reference).
3)    Parameter masukan / keluaran ( Input/Output parameter ).
Parameter yang berfungsi sebagai masukan sekaligus keluaran bagi prosedur tersebut. Ini pun termasuk ke dalam parameter by reference.
Ø Prosedur Dengan Parameter Masukan Pada Algoritma
1)    Cara memanggil (dari algoritma/program utama)
    Kamus :
         Procedure  namaprosedur(input namaparameter : type)
    Algoritma :
        namaprosedur(parameter_aktual)
2)    Cara mendifinisikan:
   Procedure  namaprosedur(input namaparameter : type)
   { I.S.(kondisi awal) : … }
   { F.S.(kondisi akhir) : … } 
   Kamus :
               {deklarasi/kamus lokal}
   Algoritma :
               {aksi-aksi dalam satu prosedur}
   EndProcedure
Ø Prosedur Dengan Parameter Keluaran pada Algoritma
1)    Cara memanggil (dari algoritma/program utama)
            Kamus :
                  Procedure  namaprosedur(output namaparameter : type)
            Algoritma :
                 namaprosedur(parameter_aktual)
2)    Cara mendifinisikan:
            Procedure  namaprosedur(output namaparameter : type)
            { I.S.(kondisi awal) : … }
            { F.S.(kondisi akhir) : … } 
            Kamus :
                        {deklarasi/kamus lokal}
            Algoritma :
                        {aksi-aksi dalam satu prosedur}
EndProcedure
Ø Prosedur Dengan Parameter Masukan/Keluaran Pada Algoritma
1)    Cara memanggil (dari algoritma/program utama)
      Kamus :
            Procedure  namaprosedur(input/output namaparameter : type)
       Algoritma :
           namaprosedur(parameter_aktual)
2)    Cara mendifinisikan:
      Procedure  namaprosedur(input/output namaparameter : type)
      { I.S.(kondisi awal) : … }
      { F.S.(kondisi akhir) : … } 
      Kamus :
                  {deklarasi/kamus lokal}
      Algoritma :
                  {aksi-aksi dalam satu prosedur}
      EndProcedure

Ø Contoh translasi prosedur dengan parameter masukan

procedure HitungLuasSegitiga(input alas, tinggi : real)
{ I.S. : alas dan tinggi sudah terdefinisi nilainya }
{ F.S. : menampilkan luas segitiga  }
Kamus :
  luas   : real   { luas segitiga, dalam cm2 }

Algoritma :
  luas                (alas * tinggi)/2
  output(luas)

EndProcedure
ALGORITMA :
{Algoritma utama}
Algoritma_Segitiga
{ Menghitung luas N buah segitiga. }
Kamus :
  i, N : integer
  a, t : real
  Procedure HitungLuasSegitiga(input alas, tinggi : real)
  { Menghitung luas segitiga dengan rumus L =(alas x tinggi)/2 }
Algoritma :
  input (N)     { tentukan banyaknya segitiga }
  for  i                     1  to  N  do
            input (a,t)
            HitungLuasSegitiga(a,t)
  endfor
EndProcedure
Ø Contoh translasi prosedur dengan parameter keluaran
Procedure HitungLuasSegitiga(input alas, tinggi : real,  output luas : real)
{ I.S. : alas dan tinggi sudah terdefinisi nilainya }
{ F.S. : menghasilkan luas segitiga. }
Kamus :
  { tidak ada }
Algoritma :
  Luas          (alas * tinggi)/2

EndProcedure
ALGORITMA :
{Algoritma utama
Algoritma_Segitiga
{ Menghitung luas N buah segitiga. }
Kamus :
  i, N : integer
  a, t : real
  L        : real  { luas segitiga }
  Procedure HitungLuasSegitiga(input alas, tinggi : real , output luas : real)
Algoritma :
  input (N)     { tentukan banyaknya segitiga }
  for  i             1  to  N  do
            input (a,t)
            HitungLuasSegitiga(a,t,L)
            output (L)
  endfor

EndProcedure
Ø Contoh translasi prosedur dengan parameter masukan / keluaran
Procedure Tukar(input/output A,B : integer)
{ I.S. : nilai A dan B sudah terdefinisi. }
{ F.S : A berisi nilai B, B berisi nilai A semula. }
Kamus :
  temp : integer                   { peubah Bantu }
Algoritma :
  temp  A     { simpan nilai A ke dalam temp }
  A  B                        { isikan nilai B ke dalam A }
  B  temp     { isikan nilai temp ke dalam B }
EndProcedure
Definisi Fungsi
Fungsi/function adalah bagian dari program yang memiliki nama tertentu, digunakan untuk mengerjakan suatu pekerjaan tertentu, serta letaknya dipisahkan dari bagian program yang menggunakan fungsi tersebut.
Ø Keuntungan Menggunakan Fungsi :
1.     Program besar dapat dipisah menjadi program-program kecil.
2.     Dapat dikerjakan oleh beberapa orang sehingga koordinasi mudah.
3.     Kemudahan dalam mencari kesalahan-kesalahan karena alur logika jelas dan kesalahan dapat dilokalisasi dalam suatu modul tertentu saja.
4.     Modifikasi program dapat dilakukan pada suatu modul tertentu saja tanpa mengganggu program keseluruhan.
5.     Mempermudah dokumentasi.
6.     Reusability: suatu fungsi dapat digunakan kembali oleh program atau fungsi lain
Ø Sifat Fungsi yang Baik :
1.     Nilai fan-in tinggi, artinya semakin sering suatu modul dipanggil oleh pengguna semakin tinggi nilai fan-in
2.     Fan-out rendah, artinya semakin spesifik fungsi suatu modul akan semakin rendah nilai fan-out
3.     Self-contained tinggi: artinya kemampuan untuk memenuhi kebutuhannnya sendiri
Ø Kategori Fungsi :
1.     Standard Library Function
Yaitu fungsi-fungsi yang telah disediakan oleh Compiler dalam file-file header atau library.
            Misalnya: clrscr(), printf(), getch(),writeln(),readln()
2.     Programmer-Defined Function
            Adalah function yang dibuat oleh programmer sendiri. Function ini memiliki nama tertentu yang unik dalam program, letaknya terpisah dari program utama, dan bisa dijadikan satu ke dalam suatu library buatan programmer itu sendiri yang kemudian juga di-include-kan untuk penggunaanya.
Ø Bentuk Umum Fungsi ;
Function namafungsi(daftar parameter formal) tipehasil
{I.S. : ………….}
{F.S. : …………}
Kamus :
            {deklarasi/kamus lokal}
Algoritma :
            {aksi-aksi dalam fungsi tertentu}
EndFunction
ARRAY
Array atau larik adalah koleksi data dimana setiap elemen memakai nama yang sama dan bertipe sama dan setiap elemen diakses melalui indeks arraynya.
Array adalah variabel berindeks. Indeks harus bertipe yang memiliki keturutan (ada succesor dan predesor), misal integer, character dan boolean.
Ø Deklarasi Array Dimensi 1
Bentuk Umum :                                                                                                                                                                                                                                                                                                                             
1.  Kamus :
                        NamaVarArray : Array[range_indeks] of tipedata
2. Kamus :
                        Const
                           maks_array = ….
                        NamaVarArray : Array[1..maks_array] of tipedata
3. Kamus :
                        Const
                           maks_array = ….
                        Type
                           NamaTipeArray = Array[1..maks_array] of tipedata
                        NamaVarArray : NamaTipeArray
Cara mengakses suatu elemen :
                        NamaVarArray(indeks)
Contoh :
            Kamus :
               X : Array [1..10] of integer
           
               Artinya       : mendefinisikan 10 variabel bertipe integer
               Yaitu            : X(1), X(2), X(3), .. X(10)
Contoh lain :
                        NamaHari     : Array [1..7] of String
                        Nilai                : Array [1..10] of Char
                        Frekuensi      : Array [‘A’..‘E’] of Real
Cara Memberikan Nilai/Harga pada Array
            NilaiMka : Array[1..10] of Char
                        NilaiMka(1)               ’A’
                        NilaiMka(2)  ’C’
                        NilaiMka(3)  ’ ’
Ø Contoh Algoritma Dimensi 1
Algoritma_Array1D
            Kamus :
                        N : array[1..5] of integer
                        i : integer
            Algoritma :
                        N(1)  25
                        N(2)  12
                        N(3)  17
                        N(4)  10
                        N(5)  15
                        For  i    1  to  5  do
                                    Output (N(i))
                        EndFor

Tidak ada komentar:

Posting Komentar