Adam Mukharil Bachtiar English Class Informatics Engineering 2011 Algorithms and Programming Procedure and Function
Steps of the Day Let’s Start Modular Programming Procedure Function
Modular Programming Definition and Types of Modular Programming
BackgroundofModular Programming Make a program to solve all problems in your calculus book! WHAT WILL YOU DO?
ThinkinginModular Programming Breakdown a big problem into several small problems. Small Problems can be reconstructed to solve the big problem.
ThinkinginModular Programming MainProgram Sub Program 1 Sub Program 2 Sub Program 3
WhatisModularProgramming Programming technique that break main program into several sub program.
BenefitsofModular Programming • Eliminate repetition of same syntax in program or algorithm. • Can find syntax error easily. • Easy to make big program.
TypesofLoopingStructure • Procedure • Function
Procedure Definition and Structures of Procedure
WhatisProcedure Instruction block that was made specially to do specific job.
ExampleofProcedure (SleepProcedure) • Brush your teeth • Go to bed • Pray • Cover your body with bedcover • Count the sheep (if you are insomnia) • Start to dream • Wake up (if you are not death) • Pray again
Format of Procedure (Algorithm Notation) Procedure NamaProsedur (Parameter jika ada) {I.S.: Keadaan awal sebelum prosedur dijalankan} {F.S.: Keadaan akhir sesudah prosedur dijalankan} Kamus: {Variabel, konstanta, tipe buatan lokal} Algoritma: {Badan Prosedur, Berisi instruksi} EndProcedure
Format of Procedure (Pascal Notation) procedure NamaProsedur (Parameter jika ada); {Variabel, konstanta, tipe buatan} begin {Badan Prosedur, Berisi instruksi} end;
Example of Procedure (Algorithm) 1 2 3 4 5 6 7 8 9 10 11 12 13 Procedure HitungLuasPersegi {I.S: Diinputkan sisi oleh pengguna} {F.S: Menampilkan hasil perhitungan luas persegi di layar} Kamus: sisi:integer luas:integer Algoritma: input(sisi) luas  sisi * sisi output(‘Luas Persegi = ‘,luas) EndProcedure
Example of Procedure (Pascal) 1 2 3 4 5 6 7 8 9 10 11 12 13 procedure HitungLuasPersegi; var sisi:integer; luas:integer; begin write(‘Masukan sisi : ‘);readln(sisi); luas  sisi * sisi; writeln(‘Luas Persegi = ‘,luas); write(‘Tekan sembarang tombol untuk keluar...’); readkey(); end;
CalltheProcedure Procedure was useless until you call it in main algorithm, main program, or the other modul.
Format of Calling Procedure (Algorithm) NamaProsedur Atau NamaProsedur(parameter jika ada)
Format of Calling Procedure (Algorithm) NamaProsedur; Atau NamaProsedur(parameter jika ada);
Example of Calling Procedure (Algorithm) 1 2 3 4 5 6 7 8 9 10 11 12 Algoritma PanggilHitungLuasPersegi {I.S: Diinputkan sebuah bilangan oleh pengguna} {F.S: Memanggil prosedur sebanyak bilangan} Kamus: i,bil:integer {kamus global} procedure HitungLuasPersegi {Cukup Headernya saja} Algoritma: input(bil) for i  1 to bil do HitungLuasPersegi {memanggil prosedur} endfor
Example of Calling Procedure (Pascal) 1 2 3 4 5 6 7 8 9 10 11 12 13 program PanggilHitungLuasPersegi; uses crt; var bil:integer; {Prosedur HitungLuasPersegi kamu diletakkan di sini} begin write(‘Masukan bilangan = ‘);readln(bil); for i  1 to bil do HitungLuasPersegi; {memanggil prosedur} {Baris penutup jangan sampai lupa!!!} end.
TypesofVariable • Global Variable • Local Variable
GlobalVariable Varible that was known by entire program or algorithm. This variable was declared in main program or main algorithm.
LocalVariable Varible that was known only by its owner. This variable was declared inside procedure or function.
Local Variable (Algorithm Notation) Procedure NamaProsedur (Parameter jika ada) {I.S.: Keadaan awal sebelum prosedur dijalankan} {F.S.: Keadaan akhir sesudah prosedur dijalankan} Kamus: {Identifier lokal diletakkan di sini} Algoritma: {Badan Prosedur, Berisi instruksi} EndProcedure FORMAL PARAMETER
Global Variable (Algorithm Notation) Algoritma judul_algoritma {I.S.: diisi keadaan yang terjadi di awal algoritma} {F.S.: diisi keadaan yang terjadi di akhir algoritma} Kamus/Deklarasi: {Identifier global diletakkan di sini} Algoritma/Deskripsi: {diisi dengan input, proses, dan output}
Local and Global Variable (Pascal Notation) program nama_program; var {identifier global di sini} procedure nama_prosedur (parameter jika ada); var {identifier lokal di sini} begin end; begin end.
OrdinaryCommunicationBetween ProcedureandMainAlgorithm
WhatisParameter Variable that allow us to have more than just ordinary communication to procedure or function.
TypesofParameter • Input Parameter • Output Parameter • Input/Output Parameter : means parameter by value : means parameter by reference
CommunicationUsingInput Parameter
Input Parameter (Algorithm Notation) Procedure NamaProsedur (Input NamaVariabel:TipeData) {I.S.: Keadaan awal sebelum prosedur dijalankan} {F.S.: Keadaan akhir sesudah prosedur dijalankan} Kamus: {Identifier lokal diletakkan di sini} Algoritma: {Badan Prosedur, Berisi instruksi} EndProcedure
Calling Input Parameter (Algorithm Notation) Algoritma NamaProsedur {I.S.: Keadaan awal sebelum algoritma dijalankan} {F.S.: Keadaan akhir sesudah algoritma dijalankan} Kamus: {Identifier global diletakkan di sini} Procedure NamaProsedur (Input NamaVariabel:TipeData) Algoritma: NamaProsedur(NamaVariabel) {pemanggilan prosedur} EndProcedure ACTUAL PARAMETER
Input Parameter (Pascal Notation) program nama_program; var {identifier global di sini} procedure nama_prosedur (variabel:tipedata); var {identifier lokal di sini} begin end; Begin nama_prosedur(variabel);{pemanggilan prosedur} end.
Example of Input Parameter (Algorithm) 1 2 3 4 5 6 7 8 9 10 11 12 Procedure Persegi(Input sisi:integer) {I.S: Menerima input berupa sisi} {F.S: Menampilkan luas dan keliling persegi} Kamus: luas,keliling:integer Algoritma: luas  sisi * sisi keliling  4 * sisi output(luas,keliling) EndProcedure
Example of Calling Input Parameter (Algorithm) 1 2 3 4 5 6 7 8 9 10 11 Algoritma PanggilHitungLuasPersegi {I.S: Diinputkan sisi oleh pengguna} {F.S: Memanggil prosedur persegi} Kamus: sisi:integer procedure Persegi(Input sisi:integer) Algoritma: input(sisi) Persegi(sisi)
Example of Input Parameter (Pascal) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 program HitungPersegi; uses crt; var sisi:integer; procedure persegi(sisi:integer); var luas,keliling:integer; begin luas := sisi * sisi; keliling := 4 * sisi; writeln(‘Luas Persegi : ‘,luas); {bersambung}
Example of Input Parameter (Pascal) 15 16 17 18 19 20 21 22 23 24 writeln(‘Keliling persegi : ‘,keliling); end; begin write(‘Masukan sisi persegi= ‘);readln(sisi); persegi(sisi); writeln(); write(‘Tekan sembarang tombol untuk menutup...’); readkey(); end.
CommunicationUsingOutput Parameter
Output Parameter (Algorithm Notation) Procedure NamaProsedur (Output NamaVariabel:TipeData) {I.S.: Keadaan awal sebelum prosedur dijalankan} {F.S.: Keadaan akhir sesudah prosedur dijalankan} Kamus: {Identifier lokal diletakkan di sini} Algoritma: {Badan Prosedur, Berisi instruksi} EndProcedure
Calling Output Parameter (Algorithm Notation) Algoritma NamaProsedur {I.S.: Keadaan awal sebelum algoritma dijalankan} {F.S.: Keadaan akhir sesudah algoritma dijalankan} Kamus: {Identifier global diletakkan di sini} Procedure NamaProsedur (Output NamaVariabel:TipeData) Algoritma: NamaProsedur(NamaVariabel) {pemanggilan prosedur} EndProcedure
Output Parameter (Pascal Notation) program nama_program; var {identifier global di sini} procedure nama_prosedur (var variabel:tipedata); var {identifier lokal di sini} begin end; Begin nama_prosedur(variabel);{pemanggilan prosedur} end.
Example of Output Parameter (Algorithm) 1 2 3 4 5 6 7 8 9 10 11 12 Procedure Persegi(Output luas,keliling:integer) {I.S: Meminta input sisi dari pengguna} {F.S: Mengirimkan nilai luas dan keliling persegi} Kamus: sisi:integer Algoritma: input(sisi) luas  sisi * sisi keliling  4 * sisi EndProcedure
Example of Calling Output Parameter (Algorithm) 1 2 3 4 5 6 7 8 9 10 11 Algoritma PanggilHitungLuasPersegi {I.S: Memanggil prosedur persegi} {F.S: Menampilkan nilai dari prosedur persegi} Kamus: luas,keliling:integer Procedure Persegi(Output luas,keliling:integer) Algoritma: Persegi(luas,keliling) output(luas,keliling)
Example of Output Parameter (Pascal) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 program HitungPersegi; uses crt; var luas,keliling:integer; procedure persegi(var luas,keliling:integer); var sisi:integer; begin write(‘Masukan sisi persegi= ‘);readln(sisi); luas := sisi * sisi; keliling := 4 * sisi; {bersambung}
Example of Output Parameter (Pascal) 15 16 17 18 19 20 21 22 23 24 end; begin persegi(luas,keliling); writeln(‘Keliling persegi : ‘,keliling); writeln(‘Luas Persegi : ‘,luas); writeln(); write(‘Tekan sembarang tombol untuk menutup...’); readkey(); end.
CommunicationUsing Input/OutputParameter
Input/Output Parameter (Algorithm Notation) Procedure NamaProsedur (I/O NamaVariabel:TipeData) {I.S.: Keadaan awal sebelum prosedur dijalankan} {F.S.: Keadaan akhir sesudah prosedur dijalankan} Kamus: {Identifier lokal diletakkan di sini} Algoritma: {Badan Prosedur, Berisi instruksi} EndProcedure
Calling Input/Output Parameter (Algorithm Notation) Algoritma NamaProsedur {I.S.: Keadaan awal sebelum algoritma dijalankan} {F.S.: Keadaan akhir sesudah algoritma dijalankan} Kamus: {Identifier global diletakkan di sini} Procedure NamaProsedur (I/O NamaVariabel:TipeData) Algoritma: NamaProsedur(NamaVariabel) {pemanggilan prosedur} EndProcedure
Input/Ouput Parameter (Pascal Notation) program nama_program; var {identifier global di sini} procedure nama_prosedur (var variabel:tipedata); var {identifier lokal di sini} begin end; Begin nama_prosedur(variabel);{pemanggilan prosedur} end.
Example of Input/Output Parameter (Algorithm) 1 2 3 4 5 6 7 8 9 10 11 Procedure Persegi(I/O sisi:integer,Output luas,keliling:integer) {I.S: Menerima input sisi} {F.S: Mengirimkan nilai sisi, luas, dan keliling persegi} Kamus: Algoritma: luas  sisi * sisi keliling  4 * sisi sisi  sisi + 1; {lihat apa yang terjadi} EndProcedure
Example of Calling Output Parameter (Algorithm) 1 2 3 4 5 6 7 8 9 10 11 12 Algoritma PanggilHitungLuasPersegi {I.S: Memanggil prosedur persegi} {F.S: Menampilkan nilai dari prosedur persegi} Kamus: sisi,luas,keliling:integer Procedure Persegi(I/O sisi:integer,Output luas,keliling:integer) Algoritma: input(sisi) Persegi(sisi,luas,keliling) output(sisi,luas,keliling) {Berapa nilai sisinya?}
Example of Input/Output Parameter (Pascal) 1 2 3 4 5 6 7 8 9 10 11 12 program HitungPersegi; uses crt; var luas,keliling:integer; procedure persegi(sisi:integer;var luas,keliling:integer); begin luas := sisi * sisi; keliling := 4 * sisi; sisi := sisi + 1; {Lihat apa yang terjadi} end;
Example of Input/Output Parameter (Pascal) 13 14 15 16 17 18 19 20 21 22 begin write(‘Masukan sisi persegi= ‘);readln(sisi); persegi(sisi,luas,keliling); writeln(‘Keliling persegi : ‘,keliling); writeln(‘Luas Persegi : ‘,luas); writeln(‘Sisi persegi : ‘,sisi); writeln(); write(‘Tekan sembarang tombol untuk menutup...’); readkey(); end.
Function Definition and Structures of Function
WhatisFunction Instruction block that was made specially to do specific job and return a value. Such as: F(x)= 2x+4  it will return 6 for x=1.
DifferenceBetweenProcedure andFunction Procedure was not made to return a value (only do specific job) but function was made to return a value (More specific than procedure).
Format of Function (Algorithm Notation) FUnction NamaFungsi (Parameter jika ada)  tipefungsi {I.S.: Keadaan awal sebelum fungsi dijalankan} {F.S.: Keadaan akhir sesudah fungsi dijalankan} Kamus: {Variabel, konstanta, tipe buatan lokal} Algoritma: {Badan fungsi, Berisi instruksi} return VALUE {tipenya sama dengan tipe fungsi} EndFunction
Format of Procedure (Pascal Notation) function NamaFungsi (Parameter jika ada):tipefungsi; {Variabel, konstanta, tipe buatan} begin {Badan Fungsi, Berisi instruksi} NamaFungsi := VALUE; (tipenya sama dengan tipe fungsi} end;
Example of Function (Algorithm) 1 2 3 4 5 6 7 8 9 Function LuasPersegi(Input sisi:integer)  integer {I.S: Menerima input berupa sisi} {F.S: Menampilkan luas dan keliling persegi} Kamus: Algoritma: return sisi * sisi EndFunction
Example of Function (Algorithm) 1 2 3 4 5 6 7 8 9 10 11 12 Algoritma PanggilLuasPersegi {I.S: Diinputkan sisi oleh pengguna} {F.S: Menampilkan nilai fungsi luas persegi} Kamus: sisi,luas:integer Function LuasPersegi(Input sisi:integer)  integer Algoritma: input(sisi) luas  LuasPersegi(sisi) output(luas)
Example of Function (Pascal) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 program HitungPersegi; uses crt; var sisi,luas:integer; function LuasPersegi(sisi:integer):integer; begin LuasPersegi := sisi * sisi; end; begin write(‘Masukan sisi persegi= ‘);readln(sisi); luas := LuasPersegi(sisi); {Pemanggilan Function}
Example of Function (Pascal) 15 16 17 18 19 write(‘Luas persegi : ‘,luas); writeln(); write(‘Tekan sembarang tombol untuk menutup...’); readkey(); end.
Contact Person: Adam Mukharil Bachtiar Informatics Engineering UNIKOM Jalan Dipati Ukur Nomor. 112-114 Bandung 40132 Email: adfbipotter@gmail.com Blog: http://adfbipotter.wordpress.com Copyright © Adam Mukharil Bachtiar 2011

Algorithm and Programming (Procedure and Function)

  • 1.
    Adam Mukharil Bachtiar EnglishClass Informatics Engineering 2011 Algorithms and Programming Procedure and Function
  • 2.
    Steps of theDay Let’s Start Modular Programming Procedure Function
  • 3.
    Modular Programming Definition andTypes of Modular Programming
  • 4.
    BackgroundofModular Programming Make a programto solve all problems in your calculus book! WHAT WILL YOU DO?
  • 6.
    ThinkinginModular Programming Breakdown a bigproblem into several small problems. Small Problems can be reconstructed to solve the big problem.
  • 7.
  • 8.
    WhatisModularProgramming Programming technique thatbreak main program into several sub program.
  • 9.
    BenefitsofModular Programming • Eliminate repetitionof same syntax in program or algorithm. • Can find syntax error easily. • Easy to make big program.
  • 10.
  • 11.
  • 12.
    WhatisProcedure Instruction block thatwas made specially to do specific job.
  • 13.
    ExampleofProcedure (SleepProcedure) • Brushyour teeth • Go to bed • Pray • Cover your body with bedcover • Count the sheep (if you are insomnia) • Start to dream • Wake up (if you are not death) • Pray again
  • 14.
    Format of Procedure(Algorithm Notation) Procedure NamaProsedur (Parameter jika ada) {I.S.: Keadaan awal sebelum prosedur dijalankan} {F.S.: Keadaan akhir sesudah prosedur dijalankan} Kamus: {Variabel, konstanta, tipe buatan lokal} Algoritma: {Badan Prosedur, Berisi instruksi} EndProcedure
  • 15.
    Format of Procedure(Pascal Notation) procedure NamaProsedur (Parameter jika ada); {Variabel, konstanta, tipe buatan} begin {Badan Prosedur, Berisi instruksi} end;
  • 17.
    Example of Procedure(Algorithm) 1 2 3 4 5 6 7 8 9 10 11 12 13 Procedure HitungLuasPersegi {I.S: Diinputkan sisi oleh pengguna} {F.S: Menampilkan hasil perhitungan luas persegi di layar} Kamus: sisi:integer luas:integer Algoritma: input(sisi) luas  sisi * sisi output(‘Luas Persegi = ‘,luas) EndProcedure
  • 18.
    Example of Procedure(Pascal) 1 2 3 4 5 6 7 8 9 10 11 12 13 procedure HitungLuasPersegi; var sisi:integer; luas:integer; begin write(‘Masukan sisi : ‘);readln(sisi); luas  sisi * sisi; writeln(‘Luas Persegi = ‘,luas); write(‘Tekan sembarang tombol untuk keluar...’); readkey(); end;
  • 19.
    CalltheProcedure Procedure was uselessuntil you call it in main algorithm, main program, or the other modul.
  • 20.
    Format of CallingProcedure (Algorithm) NamaProsedur Atau NamaProsedur(parameter jika ada)
  • 21.
    Format of CallingProcedure (Algorithm) NamaProsedur; Atau NamaProsedur(parameter jika ada);
  • 23.
    Example of CallingProcedure (Algorithm) 1 2 3 4 5 6 7 8 9 10 11 12 Algoritma PanggilHitungLuasPersegi {I.S: Diinputkan sebuah bilangan oleh pengguna} {F.S: Memanggil prosedur sebanyak bilangan} Kamus: i,bil:integer {kamus global} procedure HitungLuasPersegi {Cukup Headernya saja} Algoritma: input(bil) for i  1 to bil do HitungLuasPersegi {memanggil prosedur} endfor
  • 24.
    Example of CallingProcedure (Pascal) 1 2 3 4 5 6 7 8 9 10 11 12 13 program PanggilHitungLuasPersegi; uses crt; var bil:integer; {Prosedur HitungLuasPersegi kamu diletakkan di sini} begin write(‘Masukan bilangan = ‘);readln(bil); for i  1 to bil do HitungLuasPersegi; {memanggil prosedur} {Baris penutup jangan sampai lupa!!!} end.
  • 25.
  • 26.
    GlobalVariable Varible that wasknown by entire program or algorithm. This variable was declared in main program or main algorithm.
  • 27.
    LocalVariable Varible that wasknown only by its owner. This variable was declared inside procedure or function.
  • 28.
    Local Variable (AlgorithmNotation) Procedure NamaProsedur (Parameter jika ada) {I.S.: Keadaan awal sebelum prosedur dijalankan} {F.S.: Keadaan akhir sesudah prosedur dijalankan} Kamus: {Identifier lokal diletakkan di sini} Algoritma: {Badan Prosedur, Berisi instruksi} EndProcedure FORMAL PARAMETER
  • 29.
    Global Variable (AlgorithmNotation) Algoritma judul_algoritma {I.S.: diisi keadaan yang terjadi di awal algoritma} {F.S.: diisi keadaan yang terjadi di akhir algoritma} Kamus/Deklarasi: {Identifier global diletakkan di sini} Algoritma/Deskripsi: {diisi dengan input, proses, dan output}
  • 30.
    Local and GlobalVariable (Pascal Notation) program nama_program; var {identifier global di sini} procedure nama_prosedur (parameter jika ada); var {identifier lokal di sini} begin end; begin end.
  • 31.
  • 32.
    WhatisParameter Variable that allowus to have more than just ordinary communication to procedure or function.
  • 33.
    TypesofParameter • Input Parameter •Output Parameter • Input/Output Parameter : means parameter by value : means parameter by reference
  • 34.
  • 35.
    Input Parameter (AlgorithmNotation) Procedure NamaProsedur (Input NamaVariabel:TipeData) {I.S.: Keadaan awal sebelum prosedur dijalankan} {F.S.: Keadaan akhir sesudah prosedur dijalankan} Kamus: {Identifier lokal diletakkan di sini} Algoritma: {Badan Prosedur, Berisi instruksi} EndProcedure
  • 36.
    Calling Input Parameter(Algorithm Notation) Algoritma NamaProsedur {I.S.: Keadaan awal sebelum algoritma dijalankan} {F.S.: Keadaan akhir sesudah algoritma dijalankan} Kamus: {Identifier global diletakkan di sini} Procedure NamaProsedur (Input NamaVariabel:TipeData) Algoritma: NamaProsedur(NamaVariabel) {pemanggilan prosedur} EndProcedure ACTUAL PARAMETER
  • 37.
    Input Parameter (PascalNotation) program nama_program; var {identifier global di sini} procedure nama_prosedur (variabel:tipedata); var {identifier lokal di sini} begin end; Begin nama_prosedur(variabel);{pemanggilan prosedur} end.
  • 39.
    Example of InputParameter (Algorithm) 1 2 3 4 5 6 7 8 9 10 11 12 Procedure Persegi(Input sisi:integer) {I.S: Menerima input berupa sisi} {F.S: Menampilkan luas dan keliling persegi} Kamus: luas,keliling:integer Algoritma: luas  sisi * sisi keliling  4 * sisi output(luas,keliling) EndProcedure
  • 40.
    Example of CallingInput Parameter (Algorithm) 1 2 3 4 5 6 7 8 9 10 11 Algoritma PanggilHitungLuasPersegi {I.S: Diinputkan sisi oleh pengguna} {F.S: Memanggil prosedur persegi} Kamus: sisi:integer procedure Persegi(Input sisi:integer) Algoritma: input(sisi) Persegi(sisi)
  • 41.
    Example of InputParameter (Pascal) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 program HitungPersegi; uses crt; var sisi:integer; procedure persegi(sisi:integer); var luas,keliling:integer; begin luas := sisi * sisi; keliling := 4 * sisi; writeln(‘Luas Persegi : ‘,luas); {bersambung}
  • 42.
    Example of InputParameter (Pascal) 15 16 17 18 19 20 21 22 23 24 writeln(‘Keliling persegi : ‘,keliling); end; begin write(‘Masukan sisi persegi= ‘);readln(sisi); persegi(sisi); writeln(); write(‘Tekan sembarang tombol untuk menutup...’); readkey(); end.
  • 43.
  • 44.
    Output Parameter (AlgorithmNotation) Procedure NamaProsedur (Output NamaVariabel:TipeData) {I.S.: Keadaan awal sebelum prosedur dijalankan} {F.S.: Keadaan akhir sesudah prosedur dijalankan} Kamus: {Identifier lokal diletakkan di sini} Algoritma: {Badan Prosedur, Berisi instruksi} EndProcedure
  • 45.
    Calling Output Parameter(Algorithm Notation) Algoritma NamaProsedur {I.S.: Keadaan awal sebelum algoritma dijalankan} {F.S.: Keadaan akhir sesudah algoritma dijalankan} Kamus: {Identifier global diletakkan di sini} Procedure NamaProsedur (Output NamaVariabel:TipeData) Algoritma: NamaProsedur(NamaVariabel) {pemanggilan prosedur} EndProcedure
  • 46.
    Output Parameter (PascalNotation) program nama_program; var {identifier global di sini} procedure nama_prosedur (var variabel:tipedata); var {identifier lokal di sini} begin end; Begin nama_prosedur(variabel);{pemanggilan prosedur} end.
  • 48.
    Example of OutputParameter (Algorithm) 1 2 3 4 5 6 7 8 9 10 11 12 Procedure Persegi(Output luas,keliling:integer) {I.S: Meminta input sisi dari pengguna} {F.S: Mengirimkan nilai luas dan keliling persegi} Kamus: sisi:integer Algoritma: input(sisi) luas  sisi * sisi keliling  4 * sisi EndProcedure
  • 49.
    Example of CallingOutput Parameter (Algorithm) 1 2 3 4 5 6 7 8 9 10 11 Algoritma PanggilHitungLuasPersegi {I.S: Memanggil prosedur persegi} {F.S: Menampilkan nilai dari prosedur persegi} Kamus: luas,keliling:integer Procedure Persegi(Output luas,keliling:integer) Algoritma: Persegi(luas,keliling) output(luas,keliling)
  • 50.
    Example of OutputParameter (Pascal) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 program HitungPersegi; uses crt; var luas,keliling:integer; procedure persegi(var luas,keliling:integer); var sisi:integer; begin write(‘Masukan sisi persegi= ‘);readln(sisi); luas := sisi * sisi; keliling := 4 * sisi; {bersambung}
  • 51.
    Example of OutputParameter (Pascal) 15 16 17 18 19 20 21 22 23 24 end; begin persegi(luas,keliling); writeln(‘Keliling persegi : ‘,keliling); writeln(‘Luas Persegi : ‘,luas); writeln(); write(‘Tekan sembarang tombol untuk menutup...’); readkey(); end.
  • 52.
  • 53.
    Input/Output Parameter (AlgorithmNotation) Procedure NamaProsedur (I/O NamaVariabel:TipeData) {I.S.: Keadaan awal sebelum prosedur dijalankan} {F.S.: Keadaan akhir sesudah prosedur dijalankan} Kamus: {Identifier lokal diletakkan di sini} Algoritma: {Badan Prosedur, Berisi instruksi} EndProcedure
  • 54.
    Calling Input/Output Parameter(Algorithm Notation) Algoritma NamaProsedur {I.S.: Keadaan awal sebelum algoritma dijalankan} {F.S.: Keadaan akhir sesudah algoritma dijalankan} Kamus: {Identifier global diletakkan di sini} Procedure NamaProsedur (I/O NamaVariabel:TipeData) Algoritma: NamaProsedur(NamaVariabel) {pemanggilan prosedur} EndProcedure
  • 55.
    Input/Ouput Parameter (PascalNotation) program nama_program; var {identifier global di sini} procedure nama_prosedur (var variabel:tipedata); var {identifier lokal di sini} begin end; Begin nama_prosedur(variabel);{pemanggilan prosedur} end.
  • 57.
    Example of Input/OutputParameter (Algorithm) 1 2 3 4 5 6 7 8 9 10 11 Procedure Persegi(I/O sisi:integer,Output luas,keliling:integer) {I.S: Menerima input sisi} {F.S: Mengirimkan nilai sisi, luas, dan keliling persegi} Kamus: Algoritma: luas  sisi * sisi keliling  4 * sisi sisi  sisi + 1; {lihat apa yang terjadi} EndProcedure
  • 58.
    Example of CallingOutput Parameter (Algorithm) 1 2 3 4 5 6 7 8 9 10 11 12 Algoritma PanggilHitungLuasPersegi {I.S: Memanggil prosedur persegi} {F.S: Menampilkan nilai dari prosedur persegi} Kamus: sisi,luas,keliling:integer Procedure Persegi(I/O sisi:integer,Output luas,keliling:integer) Algoritma: input(sisi) Persegi(sisi,luas,keliling) output(sisi,luas,keliling) {Berapa nilai sisinya?}
  • 59.
    Example of Input/OutputParameter (Pascal) 1 2 3 4 5 6 7 8 9 10 11 12 program HitungPersegi; uses crt; var luas,keliling:integer; procedure persegi(sisi:integer;var luas,keliling:integer); begin luas := sisi * sisi; keliling := 4 * sisi; sisi := sisi + 1; {Lihat apa yang terjadi} end;
  • 60.
    Example of Input/OutputParameter (Pascal) 13 14 15 16 17 18 19 20 21 22 begin write(‘Masukan sisi persegi= ‘);readln(sisi); persegi(sisi,luas,keliling); writeln(‘Keliling persegi : ‘,keliling); writeln(‘Luas Persegi : ‘,luas); writeln(‘Sisi persegi : ‘,sisi); writeln(); write(‘Tekan sembarang tombol untuk menutup...’); readkey(); end.
  • 61.
  • 62.
    WhatisFunction Instruction block thatwas made specially to do specific job and return a value. Such as: F(x)= 2x+4  it will return 6 for x=1.
  • 63.
    DifferenceBetweenProcedure andFunction Procedure was notmade to return a value (only do specific job) but function was made to return a value (More specific than procedure).
  • 64.
    Format of Function(Algorithm Notation) FUnction NamaFungsi (Parameter jika ada)  tipefungsi {I.S.: Keadaan awal sebelum fungsi dijalankan} {F.S.: Keadaan akhir sesudah fungsi dijalankan} Kamus: {Variabel, konstanta, tipe buatan lokal} Algoritma: {Badan fungsi, Berisi instruksi} return VALUE {tipenya sama dengan tipe fungsi} EndFunction
  • 65.
    Format of Procedure(Pascal Notation) function NamaFungsi (Parameter jika ada):tipefungsi; {Variabel, konstanta, tipe buatan} begin {Badan Fungsi, Berisi instruksi} NamaFungsi := VALUE; (tipenya sama dengan tipe fungsi} end;
  • 67.
    Example of Function(Algorithm) 1 2 3 4 5 6 7 8 9 Function LuasPersegi(Input sisi:integer)  integer {I.S: Menerima input berupa sisi} {F.S: Menampilkan luas dan keliling persegi} Kamus: Algoritma: return sisi * sisi EndFunction
  • 68.
    Example of Function(Algorithm) 1 2 3 4 5 6 7 8 9 10 11 12 Algoritma PanggilLuasPersegi {I.S: Diinputkan sisi oleh pengguna} {F.S: Menampilkan nilai fungsi luas persegi} Kamus: sisi,luas:integer Function LuasPersegi(Input sisi:integer)  integer Algoritma: input(sisi) luas  LuasPersegi(sisi) output(luas)
  • 69.
    Example of Function(Pascal) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 program HitungPersegi; uses crt; var sisi,luas:integer; function LuasPersegi(sisi:integer):integer; begin LuasPersegi := sisi * sisi; end; begin write(‘Masukan sisi persegi= ‘);readln(sisi); luas := LuasPersegi(sisi); {Pemanggilan Function}
  • 70.
    Example of Function(Pascal) 15 16 17 18 19 write(‘Luas persegi : ‘,luas); writeln(); write(‘Tekan sembarang tombol untuk menutup...’); readkey(); end.
  • 71.
    Contact Person: Adam MukharilBachtiar Informatics Engineering UNIKOM Jalan Dipati Ukur Nomor. 112-114 Bandung 40132 Email: adfbipotter@gmail.com Blog: http://adfbipotter.wordpress.com Copyright © Adam Mukharil Bachtiar 2011