PROSEDUR MINGGU KE: 2 TUJUAN: Mahasiswa dapat memahami penggunaan prosedur. Mahasiswa dapat membuat prosedur. Mahasiswa dapat memahami iabel lokal dan iabel global TEORI PENGANTAR: Prosedur adalah modul program yang mengerjakan tugas/aktivitas yang spesifik dan menghasilkan suatu efek dengan membandingkan keadaan awal (K.Awal) dan keadaaan akhir (K.Akhir). Pendefinisian Prosedur Notasi algoritmik untuk mendefinisikan prosedur adalah: procedure NamaProsedur (deklarasi parameter, jika ada) {Spesifikasi prosedur, berisi penjelasan tentang apa yang dilakukan oleh prosedur ini K.Awal: keadaan sebelum prosedur dilaksanakan. K.Akhir: keadaan setelah prosedur dilaksanakan.} {semua nama yang dipakai di dalam prosedur dan hanya berlaku lokal di dalam prosedur didefinisikan di sini} {badan prosedur, berisi urutan instruksi} Contoh 1: Prosedur yang membaca panjang alas dan tinggi segitiga, menghitung luas segitiga dengan rumus luas = (alas x tinggi)/2, dan mencetak luas segitiga tersebut. { Menghitung luas segitiga dengan rumus Luas = alas : real tinggi : real luas (alas * tinggi)/2
Pemanggilan Prosedur Prosedur bukan program yang berdiri sendiri, jadi ia tidak dapat dieksekusi secara langsung. Prosedur diakses dengan cara memanggil namanya dari program pemanggil dengan namanya saja: NamaProsedur Terkait prosedur, maka program pemanggilnya adalah sebagai beriku: {Menghitung luas segitiga dengan rumus L = for i 1 to N do Nama Global, Nama Lokal, dan Lingkup Nama-nama (konstanta, peubah, tipe, dan lain) yang dideklarasikan di dalam prosedur hanya dikenal di dalam badan prosedur yang bersangkutan, dikatakan lingkupnya lokal. Sedangkan nama-nama (konstanta, peubah, tipe, dan lain-lain) yang dideklarasikan di dalam program utama dikatakan lingkupnya global. Berikut ini modifikasi prosedur dengan mengubah peubah alas dan tinggi dari peubah lokal menjadi peubah global Contoh 2: { Menghitung luas segitiga dengan rumus Luas = luas (alas * tinggi)/2 Dan program utama menjadi sebagai berikut
alas, tinggi : real {Menghitung luas segitiga dengan rumus L = for i 1 to N do Perbandingan Contoh 1 dan Contoh 2 Contoh 1: Variabel lokal { Menghitung luas segitiga dengan rumus Luas = alas : real tinggi : real luas (alas * tinggi)/2 {Menghitung luas segitiga dengan rumus L = for i 1 to N do Contoh 2: Variabel global { Menghitung luas segitiga dengan rumus Luas = luas (alas * tinggi)/2 alas, tinggi : real {Menghitung luas segitiga dengan rumus L = for i 1 to N do Apakah Menggunakan Peubah Global atau Peubah Lokal
Bila suatu peubah digunakan di seluruh bagian program (termasuk dalam prosedur), maka peubah tersebut harus dideklarasikan global. Tetapi bila peubah tersebut hanya digunakan di dalam prosedur saja, maka nama peubah sebaiknya dideklarasikan sebagai peubah lokal. Usahakan menggunakan peubah global sesedikit mungkin. Prosedur yang baik adalah prosedur yang independen dari program pemanggilnya. PRAKTIKUM: Program Delphi untuk Contoh 1 & Contoh 2: FORM KOMPONEN CODING: Contoh 1 (Tanpa looping) unit Unit1; interface Nama Tipe Properti Edit1 Edit Text: Blank Edit2 Edit Text: Blank Button1 Button Caption: Proses Edit3 Edit Text: Blank Contoh 2 (Tanpa looping) unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(tform) Label1: TLabel; Label2: TLabel; Edit1: TEdit; Edit2: TEdit; Button1: TButton; uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(tform) Label1: TLabel; Label2: TLabel; Edit1: TEdit; Edit2: TEdit; Button1: TButton;
Edit3: TEdit; Label3: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); procedure MenghitungLuasSegitiga; alas,tinggi:integer; luas: real; alas:=strtoint(edit1.text); tinggi:=strtoint(edit2.text); luas:=(alas*tinggi)/2; Edit3.Text:=FloatToStr(luas); MenghitungLuasSegitiga; end. Edit3: TEdit; Label3: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); alas,tinggi:integer; luas:real; procedure MenghitungLuasSegitiga; luas:=(alas*tinggi)/2; alas:=strtoint(edit1.text); tinggi:=strtoint(edit2.text); MenghitungLuasSegitiga; Edit3.Text:=FloatToStr(luas); end. TUGAS: 1. Buat algoritma dengan prosedure beserta parameter lokal untuk menghitung luas lingkaran. Buat juga program Delphinya. 2. Buat algoritma dengan prosedure beserta parameter global untuk menghitung luas lingkaran. Buat juga program Delphinya.