it132 dasar-dasar pemrograman filemerupakan penerapan konsep modular, yaitu memecah program menjadi...
TRANSCRIPT
IT132 – Dasar-Dasar Pemrograman
Ramos Somya
Dalam program yang kompleks kode program panjang.
Sulit dalam memahami program (jalannya program).
Solusi: memecah program tersebut menjadi modul-modulsehingga lebih ringkas.
Untuk memecah program yang kompleks, kitamembutuhkan procedure dan function.
Berdasarkan penjelasan sebelumnya, prosedur ataufungsi yaitu suatu bagian/modul program yang terpisahdari program utama, diletakkan dalam blok tersendiriyang berfungsi sebagai bagian dari program.
Merupakan penerapan konsep modular, yaitu memecahprogram menjadi modul-modul atau subprogram-subprogam yang lebih sederhana.
Untuk hal-hal yang sering dilakukan berulang-ulang,cukup dituliskan sekali saja dalam prosedur dan dapatdipanggil atau dipergunakan sewaktu-waktu biladiperlukan.
Terdapat pola:
Cara manual:print*; print*; print*; prints; prints; prints; print*; print*;print*; NL;prints; prints; prints; print*; print*; print*; NLprint*; print*; print*; prints; prints; prints; print*; print*;print*; NL;
Caranya: Lihat pola yang sama.
Buat definisi:
def tigabintang()= print*; print*; print*; enddef
def tigaspasi()= prints; prints; prints; enddef
Perintah menjadi:
tigabintang();tigaspasi();tigabintang();NL;
tigaspasi();tigabintang(); NL;
tigabintang();tigaspasi();tigabintang();
Buatlah program untuk mencetak huruf HELLO dalam posisi vertikal. Ukuran tiap huruf 5x5.(Gunakan procedure)
def pola1() = print*;prints;prints;prints;print*;NL; enddef def pola2() = print*;print* print*;print*; print*;NL;
enddef def pola3() = print*;NL; enddef
Perintah menggunakan procedure:pola1();pola1();pola2();pola1();pola1();NL;pola2();pola3();pola2();pola3();pola2();NL;pola3();pola3();pola3();pola3();pola2();NL;pola3();pola3();pola3();pola3();pola2();NL;Pola2();pola1();pola1();pola1();pola2();NL;
def hello() =def H() = pola1();pola1();pola2();pola1();pola1();NL; enddef
def E() = pola2();pola3();pola2();pola3();pola2();NL; enddef
def L() = pola3();pola3();pola3();pola3();pola2();NL; enddef
def O() = pola2();pola1();pola1();pola1();pola2();NL; enddef
def pola1() = print*;prints;prints;prints;print*;NL; enddef
def pola2() = print*;print* print*;print*; print*;NL; enddef
def pola3() = print*;NL; enddef
H();E();L();L();O();
enddef
Pemanggilan: hello();
def pola3() = print*;NL; enddef Procedure di atas bila dipanggil hasilnya selalu sama, karena
tidak ada parameter. Dengan paramater memungkinkanmemberikan hasil output yang berbeda tergantungparameter yang dipassingkan.
Misal:def r3(p) = p();p();p() ; enddefdef one() = p*; enddefdef two() = NL; enddefdef three() = NL; p*;p*;p*; enddefr3(one); r3(two); r3(three)
Merupakan sub program yang tidak mengembalikan nilaisecara langsung.
Prosedur memiliki struktur yang sama dengan strukturprogram, yaitu terdiri dari nama prosedur, deklarasi-deklarasi dan bagian deskripsi (statement atau aksi didalam prosedur).
Semua deklarasi di dalam prosedur bersifat lokal sehinggahanya bisa digunakan oleh prosedur itu saja, sedangkandeklarasi di dalam program utama bersifat globalsehingga dapat dikenali di seluruh bagian program.
PROCEDURE mempunyai judul_prosedur sedangkanProgram utama tidak.
Untuk tanda berakhirnya Procedure diakhiri dengantanda End; sedangkan Program Utama End.
Penggunaan prosedur selalu diawali dengan kata Procedure. Struktur umum prosedur adalah sebagai berikut :
Procedure Nama_Prosedur (param_formal1:tipe_param1, param_formal2:tipe_param2,…);{Jika prosedur tidak memiliki parameter, tanda kurung tidak disertakan}var{bagian deklarasi prosedur, sifatnya lokal}begin
statement-1;statement-2;…………Statement-n;
end;
Struktur blok program utama beserta prosedur:
Program judul_program;var{bagian deklarasi prosedur, sifatnya global}
Procedure Nama_Prosedur; {Jika prosedur tidak memiliki parameter, tanda kurung tidak disertakan}var{bagian deklarasi prosedur, sifatnya lokal}begin
statement-1;statement-2;…………Statement-n;
end;
{program utama}begin
Nama_Prosedur;end.
uses crt;
procedure cetakBintang;begin
writeln('****');end;
beginclrscr;cetakBintang();cetakBintang();cetakBintang();cetakBintang();readkey;
end.
uses crt;
procedure Tanya_hitung;varX, Y : real;begin
write ('Nilai X =');readln (X) ;Y := X * X;
end;
beginTanya_hitung;writeln ('NilaiY =', Y);
end.
Bila program dikompilasi, akan dideteksi kesalahan olehcompiler, karena variable Y yang sifatnya local diprocedure Tanya_hitung digunakan pada program utama.
Agar nilai-nilai variable dapat digunakan di modul lainnyayang membutuhkan, maka dapat dilakukan denganbeberapa cara, yaitu :- Dibuat global- Dikirimkan sebagai parameter ke modul lainnya.
uses crt;
var
Y: real;
procedure Tanya_hitung;
var
X: real;
begin
write ('Nilai X = ');
readln (X) ;
Y := X * X;
end;
begin
clrscr;
Tanya_hitung;
writeln ('Nilai Y = ', Y: 2: 2);
readkey;
end.
Pengertian hampir sama dengan procedure (sama-samasub program / bagian dari program).
Bedanya:- Fungsi memiliki tipe data.- Fungsi memberikan nilai balik, procedure tidak.- Harus ada NamaFungsi di dalam tubuh fungsi, karena
digunakan untuk menyimpan output.- Penulisannya menggunakan kata Function
Function Nama_Fungsi : tipe_hasil;
var
{bagian deklarasi fungsi, sifatnya lokal}
begin
statement-1;
statement-2;
…………
Statement-n;
Nama_Fungsi:=hasil;
end;
uses crt;
function cetakBintang:string;begin
cetakBintang:= '****';end;
beginclrscr;writeln(cetakBintang);writeln(cetakBintang);writeln(cetakBintang);writeln(cetakBintang);readkey;end.
Suatu variable yang berfungsi sebagai penampung nilai pada procedure atau function, yang diberikan oleh pemanggil procedure atau function.
Contoh:Procedur nama_pro(parameter,parameter:tipe_data);Procedur hitung(angka1,angka2:integer);Procedur bagi(angka1:integer; angka2:real);
Parameter yang dikirmkan dari modul utama ke modulprosedur disebut dengan parameter nyata (actualparameter) dan parameter yang ada dan dituliskan padajudul prosedur disebut dengan parameter formal (formalparameter).
Proses pengiriman data lewat parameter nyata keparameter formal disebut dengan parameter passing.
Parameter nyata dan parameter formal harus dengan tipeyang sama.
Pass by Value Pass by Reference
Parameter yang dikirimkan berupa nilai (value)nya saja.Jadi apabila terjadi pengubahan nilai pada prosedurataupun function tidak akan mempengaruhi nilai padavariabel yang dipassingkan, atau yang dikirimkan.
uses crt;
var angka1,angka2,hasil : integer;
procedure dua(a,b,c : integer);
begin
c:=a+b;
writeln('Hasil = ', c);
end;
Begin
clrscr;
angka1:=10;
angka2:=5;
dua(angka1, angka2, hasil);
writeln;
writeln('angka1 = ', angka1);
writeln('angka2 = ', angka2);
writeln('hasil = ', hasil);
readln;
end.
Parameter yang dikirimkan berupa acuan. Jadi apabilaterjadi pengubahan nilai pada prosedur ataupun functionakan mempengaruhi nilai pada variabel yangdipassingkan, atau yang dikirimkan. Kata kuncinyapemberian tambahan kata var pada pendeklarasianparameter.
uses crt;
var angka1,angka2,hasil : integer;
procedure dua(var a,b,c : integer);
begin
c:=a+b;
writeln('Hasil = ', c);
end;
begin
clrscr;
angka1 :=10;
angka2:=5;
dua(angka1, angka2, hasil);
writeln;
writeln('angka1= ', angka1);
writeln('angka2= ', angka2);
writeln('hasil = ', hasil);
readln;
end.
Buatlah program kalkulator untuk operasi penjumlahan,pengurangan, perkalian dan pembagian menggunakaninputan dari keyboard.
Setiap operasi HARUS menggunakan procedure ataufunction (Pakai Parameter).