Prosedur
Prosedur
Teknik pemrograman modular :
• Program dipecah menjadi beberapa subprogram yang lebih kecil.
• Subprogram (modul, routine) kadang independen dari program
utama sehingga dapat dirancang tanpa mempertimbangkan konteks
tempat ia digunakan, bahkan dapat dirancang orang lain.
Modularisasi memberikan dua keuntungan :
• Untuk aktifitas yang harus dilakukan lebih dari satu kali, modularisasi
menghindari penulisan teks program yang sama secara berulang kali.
• Kemudahan dalam menulis dan menemukan kesalahan (debug)
program.
Definisi Prosedur
• Prosedur (subroutine) adalah modul program yang
mengerjakan tugas/aktifitas yang spesifik dan
menghasilkan suatu efek netto.
• Efek netto diketahui dengan membandingkan
keadaan awal (sebelum) dan keadaan akhir
(sesudah) pelaksanaan sebuah prosedur.
Pada setiap prosedur harus didefinisikan keadaan
awal (K.Awal) dan keadaan akhir (K.Akhir).
Prosedure adalah bagian dari suatu program yang
disusun secara terpisah untuk melakukan suatu
tugas khusus/fungsi tertentu.
Pada dasarnya ada dua macam bentuk prosedur
yaitu Subrutin (subprogram) dan Fungsi.
Subrutin (Subprogram) adalah bagian dari program
yang dibuat terpisah untuk melaksanakan sabagian
dari tugas yang harus diselesaikan oleh suatu
program. Pada umumnya yang dikenal dengan
nama “prosedur” sebenarnya adalah ”subprogram”.
Manfaat Prosedur
Manfaat pembuatan prosedur :
a. Modularisasi
Suatu program yang besar dan kompleks dapat dibagi kedalam
beberapa prosedure sehingga setiap prosedure merupakan
bagian yang mudah dikerjakan.
b. Simplifikasi
Dalam suatu program, sering diperlukan suatu tugas yang
harus dikerjakan berulang-ulang dengan nilai-nilai variabel
yang berbeda-beda. Agar tidak merepotkan maka tugas ini
cukup ditulis sekali saja dalam bentuk prosedur yang kemudian
dipanggil berulang-ulang sesuai kebutuhan.
Mendefinisikan Prosedur
• Struktur prosedur sama dengan struktur
algoritma, yaitu : bagian judul, bagian
deklarasi, dan badan prosedur.
• Setiap prosedur memiliki nama unik
(sebaiknya diawali dengan kata kerja, mis :
TUKAR, HITUNG_LUAS, CARI_MAKS, dll)
Mendefinisikan Prosedur (2)
Contoh 1.
Andaikan sebuah program menyediakan fasilitas untuk
menghitung luas, keliling, dan diagonal dari sebuah persegi
panjang dengan kemungkinan pemilihan melalui suatu menu.
Contoh soal di atas dapat dibagi ke dalam enam prosedur, yaitu
prosedur menampilkan menu, prosedur membaca dimensi
persegi panjang, menghitung luas, menghitung keliling,
menghitung diagonal, dan menampilkan hasil.
Jawab :
Algoritma Empat_persegi_panjang
{Algoritma ini menunjukkan contoh pemakaian prosedur untuk
menghitung luas, keliling, dan diagonal dari empat persegi
panjang}
Deklarasi
integer pil;
real panjang, lebar, hasil;
{semua prosedur harus dideklarasikan}
prosedur menu;
prosedur baca_dimensi;
prosedur hitung_luas;
prosedur hitung_keliling;
prosedur hitung_diagonal;
prosedur tampil _hasil
Deskripsi
pil  0;
repeat
menu; {Memanggil prosedur menu}
write (“Masukkan Pilihan Anda :”);
read (pil);
if (pil < 4)
then baca_dimensi;{Memanggil prosedur baca_dimensi}
endif.
case(pil)
1 : hitung_luas;
2 : hitung_keliling;
3 : hitung_diagonal
4 : write (“Selesai….sampai jumpa”);
default : write(Pilihan Salah, Ulangi !”);
endcase.
if (pil < 4)
then tampil_hasil; {Memanggil prosedur tampil_hasil}
endif.
until (pil=4).
prosedur menu
{menampilkan menu program}
deklarasi
deskripsi
write (“Menu Program Empat Persegi Panjang”);
write (“1. Menghitung Luas “);
write (“2. Menghitung Keliling”);
write (“3. Menghitung Diagonal “);
write (“4. Keluar dari program”);
prosedur baca_dimensi
{membaca dimensi persegi panjang}
deklarasi
deskripsi
write (“Masukkan Panjang :”);
read (panjang);
write (“Masukkan Lebar :”);
read (lebar);
prosedur hitung_luas
{menghitung luas persegi panjang}
deklarasi
real luas;
deskripsi
luas  panjang * lebar;
hasil  luas;
prosedur hitung_keliling
{Menghitung keliling empat persegi panjang}
deklarasi
real keliling;
deskripsi
keliling  2 * (panjang + lebar);
hasil  keliling;
prosedur hitung_diagonal
{menghitung diagonal empat persegi panjang}
deklarasi
real diagonal;
deskripsi
diagonal  sqrt (panjang^2 + lebar^2);
hasil  diagonal;
prosedur tampil_hasil
{menampilkan hasil dari program ini}
deklarasi
deskripsi
write (“Hasil = “, hasil);
Pemanggilan Prosedur
• Prosedur diakses dengan memanggil namanya dari
program pemanggil (program utama atau modul
program lain).
• Dalam program pemanggil, prototype prosedur harus
dideklarasikan supaya program pemanggil mengenal
nama prosedur tersebut serta cara mengaksesnya.
Nama Lokal dan Nama Global
Nama Lokal :
• Nama-nama di bagian deklarasi prosedur.
• Bersifat lokal, hanya dapat digunakan di dalam
prosedur yang melingkupinya.
Nama Global :
• Nama-nama yang dideklarasikan di program utama.
• Bersifat global, dapat digunakan di bagian manapun
dalam program, baik di program utama maupun di
prosedur.
Nama Lokal dan Nama Global (2)
Menggunakan Nama Lokal atau Nama Global ?
• Jika nama (peubah, tipe, atau tetapan) digunakan di seluruh
bagian program, maka harus dideklarasikan global.
• Jika nama tersebut hanya digunakan di dalam prosedur, maka
sebaiknya dideklarasikan lokal.
• Usahakan menggunakan nama global sedikit mungkin!
 menyulitkan dalam pencarian kesalahan (debugging)
Contoh
Contoh (2)
Parsing Parameter
Kebanyakan program memerlukan pertukaran informasi antara prosedur
(atau fungsi) dan titik di mana ia dipanggil.
 parameter berfungsi sebagai media komunikasi antara modul dengan
program pemanggil.
Tiap item data ditransferkan antara parameter aktual dan parameter formal.
• Parameter aktual : parameter yang disertakan pada waktu pemanggilan.
• Parameter formal : parameter yang dideklarasikan di bagian header
prosedur itu sendiri.
• Saat prosedur dipanggil, parameter aktual menggantikan parameter
formal.
• Tiap parameter aktual berpasangan dengan parameter formal yang
bersesuaian.
Parsing Parameter (2)
Aturan penting yang harus diperhatikan:
• Jumlah parameter aktual pada pemanggilan prosedur harus
sama dengan jumlah parameter formal pada deklarasi
prosedurnya.
• Tiap parameter aktual harus bertipe sama dengan tipe
parameter formal yang bersesuaian.
• Tiap parameter aktual harus diekspresikan dalam cara yang
sesuai dengan parameter formal yang bersesuaian,
bergantung pada jenis parameter formal.
Parsing Parameter (3)
Jenis parameter formal yang disertakan dalam prosedur:
• Parameter masukan (input parameter)
 nilainya berlaku sebagai masukan untuk prosedur.
• Parameter keluaran (output parameter)
 menampung nilai keluaran yang dihasilkan prosedur.
• Parameter masukan/keluaran (input/output parameter)
 berfungsi sebagai masukan sekaligus keluaran dari prosedur.
Pada bahasa pemrograman :
• Parameter masukan
 value parameter, parameter by value
• Parameter keluaran & parameter masukan/keluaran
 reference parameter, parameter by reference
Parameter Masukan
• Nilai parameter aktual diisikan (assign) ke dalam
parameter formal yang bersesuaian untuk digunakan
dalam badan prosedur yang bersangkutan.
• Nilai yang dinyatakan oleh parameter masukan tidak
dapat dikirim ke arah sebaliknya.
• Perubahan nilai parameter di dalam prosedur tidak
mengubah nilai parameter aktual.
• Nama parameter aktual boleh berbeda dengan nama
parameter formal.
Parameter Keluaran
• Digunakan untuk menampung nilai keluaran dari
prosedur yang akan digunakan oleh program
pemanggil.
• Nama parameter aktual di program pemanggil akan
menggantikan (substitute) nama parameter formal
yang bersesuaian di prosedur.
• Setelah pemanggilan, parameter aktual akan berisi
nilai keluaran dari prosedur yang dipanggil.
Parameter masukan/keluaran
• Nilai parameter aktual akan diisikan ke
parameter formal yang bersesuaian untuk
digunakan dalam prosedur, dan nama
parameter aktual juga digunakan dalam
prosedur (untuk menampung keluaran 
nilainya berubah).
Dalam membuat algoritma/program perlu dipikirkan :
• Program dengan prosedur atau tanpa prosedur ?
• Prosedur dengan parameter atau tanpa parameter ?
• Parameter masukan, parameter keluaran, dan/atau
parameter masukan/keluaran ?
Contoh
Contoh (2)
Perhatikan beberapa hal yang perlu diperhatikan
dalam prosedur:
• Cara pendefinisian prosedur
• Penggunaan parameter masukan, keluaran, dan
masukan/keluaran
• Parsing parameter
• Tipe data parameter aktual dan formal
• Nama lokal dan nama global

pb3mat_pertemuan 8 algoritma pemrograman

  • 1.
  • 2.
    Prosedur Teknik pemrograman modular: • Program dipecah menjadi beberapa subprogram yang lebih kecil. • Subprogram (modul, routine) kadang independen dari program utama sehingga dapat dirancang tanpa mempertimbangkan konteks tempat ia digunakan, bahkan dapat dirancang orang lain. Modularisasi memberikan dua keuntungan : • Untuk aktifitas yang harus dilakukan lebih dari satu kali, modularisasi menghindari penulisan teks program yang sama secara berulang kali. • Kemudahan dalam menulis dan menemukan kesalahan (debug) program.
  • 3.
    Definisi Prosedur • Prosedur(subroutine) adalah modul program yang mengerjakan tugas/aktifitas yang spesifik dan menghasilkan suatu efek netto. • Efek netto diketahui dengan membandingkan keadaan awal (sebelum) dan keadaan akhir (sesudah) pelaksanaan sebuah prosedur. Pada setiap prosedur harus didefinisikan keadaan awal (K.Awal) dan keadaan akhir (K.Akhir).
  • 4.
    Prosedure adalah bagiandari suatu program yang disusun secara terpisah untuk melakukan suatu tugas khusus/fungsi tertentu. Pada dasarnya ada dua macam bentuk prosedur yaitu Subrutin (subprogram) dan Fungsi. Subrutin (Subprogram) adalah bagian dari program yang dibuat terpisah untuk melaksanakan sabagian dari tugas yang harus diselesaikan oleh suatu program. Pada umumnya yang dikenal dengan nama “prosedur” sebenarnya adalah ”subprogram”.
  • 5.
    Manfaat Prosedur Manfaat pembuatanprosedur : a. Modularisasi Suatu program yang besar dan kompleks dapat dibagi kedalam beberapa prosedure sehingga setiap prosedure merupakan bagian yang mudah dikerjakan. b. Simplifikasi Dalam suatu program, sering diperlukan suatu tugas yang harus dikerjakan berulang-ulang dengan nilai-nilai variabel yang berbeda-beda. Agar tidak merepotkan maka tugas ini cukup ditulis sekali saja dalam bentuk prosedur yang kemudian dipanggil berulang-ulang sesuai kebutuhan.
  • 6.
    Mendefinisikan Prosedur • Strukturprosedur sama dengan struktur algoritma, yaitu : bagian judul, bagian deklarasi, dan badan prosedur. • Setiap prosedur memiliki nama unik (sebaiknya diawali dengan kata kerja, mis : TUKAR, HITUNG_LUAS, CARI_MAKS, dll)
  • 7.
  • 8.
    Contoh 1. Andaikan sebuahprogram menyediakan fasilitas untuk menghitung luas, keliling, dan diagonal dari sebuah persegi panjang dengan kemungkinan pemilihan melalui suatu menu. Contoh soal di atas dapat dibagi ke dalam enam prosedur, yaitu prosedur menampilkan menu, prosedur membaca dimensi persegi panjang, menghitung luas, menghitung keliling, menghitung diagonal, dan menampilkan hasil.
  • 9.
    Jawab : Algoritma Empat_persegi_panjang {Algoritmaini menunjukkan contoh pemakaian prosedur untuk menghitung luas, keliling, dan diagonal dari empat persegi panjang} Deklarasi integer pil; real panjang, lebar, hasil; {semua prosedur harus dideklarasikan} prosedur menu; prosedur baca_dimensi; prosedur hitung_luas; prosedur hitung_keliling; prosedur hitung_diagonal; prosedur tampil _hasil
  • 10.
    Deskripsi pil  0; repeat menu;{Memanggil prosedur menu} write (“Masukkan Pilihan Anda :”); read (pil); if (pil < 4) then baca_dimensi;{Memanggil prosedur baca_dimensi} endif. case(pil) 1 : hitung_luas; 2 : hitung_keliling; 3 : hitung_diagonal 4 : write (“Selesai….sampai jumpa”); default : write(Pilihan Salah, Ulangi !”); endcase.
  • 11.
    if (pil <4) then tampil_hasil; {Memanggil prosedur tampil_hasil} endif. until (pil=4). prosedur menu {menampilkan menu program} deklarasi deskripsi write (“Menu Program Empat Persegi Panjang”); write (“1. Menghitung Luas “); write (“2. Menghitung Keliling”); write (“3. Menghitung Diagonal “); write (“4. Keluar dari program”);
  • 12.
    prosedur baca_dimensi {membaca dimensipersegi panjang} deklarasi deskripsi write (“Masukkan Panjang :”); read (panjang); write (“Masukkan Lebar :”); read (lebar); prosedur hitung_luas {menghitung luas persegi panjang} deklarasi real luas; deskripsi luas  panjang * lebar; hasil  luas;
  • 13.
    prosedur hitung_keliling {Menghitung kelilingempat persegi panjang} deklarasi real keliling; deskripsi keliling  2 * (panjang + lebar); hasil  keliling; prosedur hitung_diagonal {menghitung diagonal empat persegi panjang} deklarasi real diagonal; deskripsi diagonal  sqrt (panjang^2 + lebar^2); hasil  diagonal;
  • 14.
    prosedur tampil_hasil {menampilkan hasildari program ini} deklarasi deskripsi write (“Hasil = “, hasil);
  • 15.
    Pemanggilan Prosedur • Prosedurdiakses dengan memanggil namanya dari program pemanggil (program utama atau modul program lain). • Dalam program pemanggil, prototype prosedur harus dideklarasikan supaya program pemanggil mengenal nama prosedur tersebut serta cara mengaksesnya.
  • 16.
    Nama Lokal danNama Global Nama Lokal : • Nama-nama di bagian deklarasi prosedur. • Bersifat lokal, hanya dapat digunakan di dalam prosedur yang melingkupinya. Nama Global : • Nama-nama yang dideklarasikan di program utama. • Bersifat global, dapat digunakan di bagian manapun dalam program, baik di program utama maupun di prosedur.
  • 17.
    Nama Lokal danNama Global (2) Menggunakan Nama Lokal atau Nama Global ? • Jika nama (peubah, tipe, atau tetapan) digunakan di seluruh bagian program, maka harus dideklarasikan global. • Jika nama tersebut hanya digunakan di dalam prosedur, maka sebaiknya dideklarasikan lokal. • Usahakan menggunakan nama global sedikit mungkin!  menyulitkan dalam pencarian kesalahan (debugging)
  • 18.
  • 19.
  • 20.
    Parsing Parameter Kebanyakan programmemerlukan pertukaran informasi antara prosedur (atau fungsi) dan titik di mana ia dipanggil.  parameter berfungsi sebagai media komunikasi antara modul dengan program pemanggil. Tiap item data ditransferkan antara parameter aktual dan parameter formal. • Parameter aktual : parameter yang disertakan pada waktu pemanggilan. • Parameter formal : parameter yang dideklarasikan di bagian header prosedur itu sendiri. • Saat prosedur dipanggil, parameter aktual menggantikan parameter formal. • Tiap parameter aktual berpasangan dengan parameter formal yang bersesuaian.
  • 21.
    Parsing Parameter (2) Aturanpenting yang harus diperhatikan: • Jumlah parameter aktual pada pemanggilan prosedur harus sama dengan jumlah parameter formal pada deklarasi prosedurnya. • Tiap parameter aktual harus bertipe sama dengan tipe parameter formal yang bersesuaian. • Tiap parameter aktual harus diekspresikan dalam cara yang sesuai dengan parameter formal yang bersesuaian, bergantung pada jenis parameter formal.
  • 22.
    Parsing Parameter (3) Jenisparameter formal yang disertakan dalam prosedur: • Parameter masukan (input parameter)  nilainya berlaku sebagai masukan untuk prosedur. • Parameter keluaran (output parameter)  menampung nilai keluaran yang dihasilkan prosedur. • Parameter masukan/keluaran (input/output parameter)  berfungsi sebagai masukan sekaligus keluaran dari prosedur. Pada bahasa pemrograman : • Parameter masukan  value parameter, parameter by value • Parameter keluaran & parameter masukan/keluaran  reference parameter, parameter by reference
  • 23.
    Parameter Masukan • Nilaiparameter aktual diisikan (assign) ke dalam parameter formal yang bersesuaian untuk digunakan dalam badan prosedur yang bersangkutan. • Nilai yang dinyatakan oleh parameter masukan tidak dapat dikirim ke arah sebaliknya. • Perubahan nilai parameter di dalam prosedur tidak mengubah nilai parameter aktual. • Nama parameter aktual boleh berbeda dengan nama parameter formal.
  • 24.
    Parameter Keluaran • Digunakanuntuk menampung nilai keluaran dari prosedur yang akan digunakan oleh program pemanggil. • Nama parameter aktual di program pemanggil akan menggantikan (substitute) nama parameter formal yang bersesuaian di prosedur. • Setelah pemanggilan, parameter aktual akan berisi nilai keluaran dari prosedur yang dipanggil.
  • 25.
    Parameter masukan/keluaran • Nilaiparameter aktual akan diisikan ke parameter formal yang bersesuaian untuk digunakan dalam prosedur, dan nama parameter aktual juga digunakan dalam prosedur (untuk menampung keluaran  nilainya berubah).
  • 26.
    Dalam membuat algoritma/programperlu dipikirkan : • Program dengan prosedur atau tanpa prosedur ? • Prosedur dengan parameter atau tanpa parameter ? • Parameter masukan, parameter keluaran, dan/atau parameter masukan/keluaran ?
  • 27.
  • 28.
  • 29.
    Perhatikan beberapa halyang perlu diperhatikan dalam prosedur: • Cara pendefinisian prosedur • Penggunaan parameter masukan, keluaran, dan masukan/keluaran • Parsing parameter • Tipe data parameter aktual dan formal • Nama lokal dan nama global