Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Computer Science, University of Brawijaya Putra Pandu Adikara, S.Kom Algoritma dan Struktur Data SubAlgoritma (Prosedur & Fungsi)

Presentasi serupa


Presentasi berjudul: "Computer Science, University of Brawijaya Putra Pandu Adikara, S.Kom Algoritma dan Struktur Data SubAlgoritma (Prosedur & Fungsi)"— Transcript presentasi:

1 Computer Science, University of Brawijaya Putra Pandu Adikara, S.Kom Algoritma dan Struktur Data SubAlgoritma (Prosedur & Fungsi)

2 SubAlgoritma/SubProgram  Masalah: program menjadi besar dan kompleks untuk melakukan pengecekan kesalahan menjadi sangat rumit.  Program besar dipecah-pecah menjadi prosedur- prosedur dan fungsi-fungsi.  Memudahkan dalam pengecekan kesalahan dan juga program menjadi lebih mudah dimengerti dan menghindari penulisan kode program yang berulang- ulang.

3 SubProgram  Subroutine sinonim dgn "subprogram." Istilah ini ada krn terminologi di Fortan dan bhs assembly.  Function dan Procedure juga sinonim dgn "subprogram“.  Predicate  fungsi dgn nilai balik boolean (misal sukses atau gagal)  Method atau Member function  subprogram yg digunakan dlm object-oriented programming (OOP) yg menggambarkan aksi dari suatu objek  Event handler  atau handler, subprogram yg dipanggil saat ada “event”, misal prosedur yg dijalankan ketika ada event mouse click

4 Prosedur (Procedure)  Subprogram yang dapat dipanggil di dalam program (atau subprogram lain).  Tidak menghasilkan nilai balik.  Deklarasi prosedur: procedure nama_procedure(); begin {proses} end;  Contoh: procedure Hello(); begin WriteLn(‘Hello World'); end;

5 Memanggil Prosedur  Contoh pemanggilan procedure begin Hello(); end.

6 Fungsi (Function)  Subprogram yang menghasilkan nilai balik (seperti fungsi matematis)  Deklarasi prosedur: function nama_function(): [tipedata_nilai_balik]; begin {proses} end;  Contoh function pi(): double; begin pi := 3.14; end;

7 Memanggil fungsi  Contoh pemanggilan fungsi var nilai: real; begin nilai := pi(); WriteLn(nilai); end.

8 Parameter  adalah argumen berupa nilai yg diberikan ke dalam suatu prosedur/fungsi  Prosedur bisa mempunyai parameter:  Value parameter (parameter passing by value) memasukkan nilai ke dalam parameter nilai yg dimasukkan hanya bisa berubah di dalam prosedur  Variable parameter (parameter passing by reference) Memasukkan nilai ke dalam parameter nilai yg dimasukkan berubah di dalam dan luar prosedur

9 Prosedur dgn Value parameter  Deklarasi prosedur:  Diawali reserved word procedure kemudian nama prosedur  Deklarasi parameter diapit/didalam "(" dan ")" setelah nama prosedur  Deklarasi sintaks: procedure nama_procedure([nama_param]:[tipe_data] [;dst]);

10 Contoh Value Parameter pada Prosedur  Contoh deklarasi: procedure WriteValue(text:string; nilai: int); begin WriteLn(text,'=',nilai); end;  Pemanggilan prosedur dgn value parameter: [nama_proc]([nilai/variable],[dst]); Misal: WriteValue('Isi nilai=',i);

11 Fungsi dgn Value parameter  Deklarasi fungsi:  Diawali reserved word function kemudian nama fungsi  Deklarasi parameter diapit "(" dan ")" setelah nama fungsi  Antar parameter dipisah tanda titik koma ";"  Deklarasi sintaks:  Di Pascal function nama_procedure( [nama_param]:[tipe_data] [;dst]): [tipe_data]; begin {proses} [nama_procedure] := [nilai_balik]; end;

12 Fungsi dgn Value parameter  Deklarasi sintaks:  Di Delphi function nama_procedure( [nama_param]:[tipe_data] [;dst]): [tipe_data]; begin {proses} result := [nilai_balik]; end;

13 Contoh Value Parameter pada Fungsi  Contoh deklarasi: function NilaiInteger(nilai: integer): integer; begin NilaiInteger:=nilai; //di Delphi result:=nilai end;  Pemanggilan function dgn value parameter: NilaiInteger(i);  Untuk mengisi nilai balik fungsi ke suatu variable: var a:integer; begin a = NilaiInteger(i); end;

14 Reference Parameter  Deklarasi prosedur/fungsi:  Hampir sama dengan value parameter, tapi sebelum nama parameter ditambahi keyword var  Bila memerlukan output seperti nilai balik lebih dari 2.  Deklarasi sintaks: function nama_procedure(var [nama_param]:[tipe_data] [;dst]): [tipe_data]; begin {proses} end;  Pemanggilan procedure dgn value parameter [nama_proc]([variable],[dst]);

15 Contoh Prosedur dgn Ref Parameter  Contoh deklarasi prosedur procedure WriteValue(text:string; var nilai:integer) begin nilai := 10; WriteLn(text, '=',nilai); end;  Pemanggilan prosedur dgn ref parameter Misal: WriteValue('Isi nilai=',i);  nilai i = ??

16 Contoh Fungsi dgn Ref Parameter  Contoh deklarasi fungsi function NilaiInteger(var nilai:integer):integer; begin nilai := nilai*3; NilaiInteger := nilai; end;  Pemanggilan function dgn reference parameter NilaiInteger(i); //tanpa assignment  Untuk mengisi (assign) nilai balik fungsi ke suatu variable a = NilaiInteger(i); nilai i = ??

17 Prosedur/Fungsi Overloading  Prosedur/Fungsi overloading  prosedur/fungsi dengan nama yang sama tetapi dengan tipe data fungsi dan/atau parameter yang berbeda  Diakhir deklarasi prosedur/fungsi ditambahkan identifier overload;

18 Contoh Prosedur/Fungsi Overloading  Contoh: function Convert (nilai:string; kali : integer ): integer; overload; var nilaiInt,errorCode:integer; begin Val(nilai,nilaiInt,errorCode); //di Delphi StrToInt Convert := nilaiInt * kali; end; function Convert (nilai: string):float; overload; var nilaiFloat:real; errorCode:integer; begin Val(nilai,nilaiFloat,errorCode); //di Delphi StrToFloat Convert := nilaiFloat; end;

19 Prosedur/Fungsi Rekursif  Prosedur/Fungsi rekursif  prosedur/fungsi yang memanggil dirinya sendiri terus menerus di dalam badan prosedur/fungsi tsb.  Pemanggilan akan berhenti saat suatu kondisi berhenti (tidak memanggil dirinya) ditentukan.

20 Contoh Prosedur/Fungsi Rekursif  Contoh f(n)=n! dimana n! = n *(n – 1)! Misal n = 2, maka: f(2) = 2! = 2 * (2-1)! = 2 * 1! = 2 * f(1) f(1) = 1! = 1 * (1-0)! = 1 * 0! = 1 * f(0) f(0) = 0! = 1 function Factorial(lNum:integer): LongInt; begin if (lNum < 2) then //contoh kondisi berhenti Factorial := 1 else //pemanggilan fungsi diri Factorial := lNum * Factorial(lNum - 1); end;

21


Download ppt "Computer Science, University of Brawijaya Putra Pandu Adikara, S.Kom Algoritma dan Struktur Data SubAlgoritma (Prosedur & Fungsi)"

Presentasi serupa


Iklan oleh Google