it132 dasar-dasar pemrograman filemerupakan penerapan konsep modular, yaitu memecah program menjadi...

Post on 03-May-2019

223 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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).

top related