Procedure dan Function adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai sub-program (modul program) yang merupakan sebuah program kecil untuk memproses sebagian dari pekerjaan program utama. Masalah : Ingin menggambar gambar orang seperti disamping Analisis : Dibutuhkan 4 komponen untuk menggambar orang, yaitu lingkaran (1), garis mendatar (1), garis berpotongan(2) 3 Design/Perancangan: Algoritma : 1. Gambar lingkaran 2. Gambar segitiga 2.1. Gambar garis berpotongan 2.2. Gambar garis mendatar 3. Gambar garis berpotongan Structure Chart : Masalah Utama Submasalah Gambar Orang Gambar Lingkaran Gambar Segitiga Gambar Garis Berpotongan Sub-submasalah Gambar Garis Berpotongan Gambar Garis Mendatar 4 Prosedur diawali dengan kata cadangan Procedure di dalam bagian deklarasi prosedur. Prosedur dipanggil dan digunakan di dalam blok program yang lainnya dengan menyebutkan judul prosedurnya. Prosedur banyak digunakan pada program yang terstruktur, karena : 1. Merupakan penerapan konsep program modular, yaitu memecah-mecah program yang rumit menjadi programprogram bagian yang lebih sederhana dalam bentuk prosedur-prosedur. 2. Untuk hal-hal yang sering dilakukan berulang-ulang, cukup dituliskan sekali saja dalam prosedur dan dapat dipanggil atau dipergunakan sewaktu-waktu bila diperlukan. Bentuk Umum Penulisan Procedure PROCEDURE nama; Atau PROCEDURE nama (formal parameter : tipedata); Jadi bisa diambil kesimpulan bahwa procedure bisa berbentuk : Procedure tanpa argumen. Procedure dengan argumen. Contoh Program Procedure tanpa argumen: //program procedure procedure ulang; var i:Integer; begin for i:=1 to 5 do begin Writeln('procedure'); end; end; //program Utama begin ulang; end. Contoh Program Procedure dengan argumen: //program procedure procedure ulang(s:string); var i:Integer; begin for i:=1 to 5 do begin Writeln(s); end; end; //program Utama begin ulang(‘Procedure dengan argumen’); end. Blok fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya atau jenis hasilnya. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi. Bentuk Umum Penulisan Function FUNCTION nama : jenis hasil; Atau FUNCTION nama (formal parameter : tipedata ) : jenishasiltipe; Jadi bisa diambil kesimpulan bahwa function bisa berbentuk : Function tanpa argumen. Function dengan argumen. Contoh Program Function tanpa argumen: //program function function cetak:Integer; begin cetak:=100; end; //program Utama begin Write(cetak); end. Contoh Program Function dengan argumen: //program function function cetak(s:Integer):Integer; begin cetak:=s; end; //program Utama begin Write(cetak(100)); end. Pada fungsi, nilai yang dikirimkan balik terdapat pada nama fungsinya (kalau pada prosedur pada parameter yang dikirimkan secara acuan nilai baliknya). Jadi pada function, nama fungsi bisa dijadikan nilai balik. Pada procedure, nama procedure tidak bisa dijadikan nilai balik, hanya parameternya yang mengandung nilai balik.