• Tidak ada hasil yang ditemukan

Algoritma Pemrograman

N/A
N/A
Protected

Academic year: 2021

Membagikan "Algoritma Pemrograman"

Copied!
11
0
0

Teks penuh

(1)

S1 Teknik Informatika-Unijoyo 1

Algoritma Pemrograman

Pertemuan Ke-10

(Fungsi)

::

Noor Ifada

::

Sub Pokok Bahasan

Pendahuluan

Pendefinisian Fungsi

Pemanggilan Fungsi

(2)

S1 Teknik Informatika-Unijoyo 3

Seperti halnya prosedur, fungsi juga merupakan modul

program yang mempunyai tujuan spesifik

Fungsi adalah modul program yang

memberikan/mengembalikan (

return

) sebuah nilai dan

tipe tertentu (tipe dasar atau tipe bentukan)

Pendahuluan

Sebagaimana halnya dengan prosedur, fungsi diakses dengan

memanggil namanya. Selain itu, fungsi juga dapat mengandung daftar parameter formal

Parameter pada fungsi selalu merupakan parameter masukan.

Jenis parameter masukan pada fungsi disebabkan oleh kenyataan bahwa parameter pada fungsi merupakan masukan yang digunakan oleh fungsi tersebut untuk menghasilkan nilai

Struktur fungsi sama dengan struktur algoritma yang sudah

dikenal sebelumnya:

ada bagianheader yang berisi nama fungsi dan spesifikasi fungsi bagian Deklarasi

badanfungsi

(3)

S1 Teknik Informatika-Unijoyo 5

Notasi algoritma untuk mendefinisikan

fungsi

function NamaFungsi(input daftar parameter formal)→→→→tipe hasil

{ Spesifikasi fungsi, menjelaskan apa yang dilakukan dan yang dikembalikan oleh fungsi. }

DEKLARASI

{ semua nama yang dipakai dalam algoritma fungsi

dideklarasikan di sini. Nama yang didefinisikan di dalam Deklarasi lokal hanya dikenal dan dipakai di dalam fungsi ini saja }

DESKRIPSI:

{ badan fungsi, berisi kumpulan instruksi untuk menghasilkan nilai yang akan dikembalikan oleh fungsi }

return hasil { pengembalian nilai yang dihasilkan fungsi }

Tipe hasil menspesifikasikan tipe nilai yang diberikan oleh

fungsi. Nilai yang diberikan oleh fungsi dapat bertipe dasar maupun bertipe bentukan. Sebagaimana halnya pada prosedur, parameter fungsi pada fungsi tidak selalu harus ada

Semua nama peubah/konstanta yang hanya berlaku di

dalam fungsi saja dideklarasikan di dalam bagian Deklarasi (lokal). Nama yang didefinisikan di dalam bagian Deklarasi fungsi hanya dikenal dan berlaku di dalam fungsi yang bersangkutan saja, fungsi lain atau program utama tidak dapat menggunakannya

(4)

S1 Teknik Informatika-Unijoyo 7

Fungsi diakses dengan cara memanggil namanya dari

program pemanggil, diikuti dengan daftar parameter aktual (bila ada)

Karena fungsi menghasilkan nilai, maka nilai tersebut

dapat ditampung dalam sebuah peubah yang bertipe sama dengan tipe fungsi atau nilai yang dikembalikan oleh fungsi dapat langsung dimanipulasi. Parameter aktual dapat berupa konstanta, nama konstanta, atau nama peubah

Pemanggilan Fungsi

function F(input x:real) → real

{ Mengembalikan nilai F(x) = x2 + 2x – 3, x Є R } DEKLARASI { tidak ada } DESKRIPSI: return x*x + 2*x – 3 Keterangan :

Fadalah nama fungsi, tipenya real • xadalah parameter (by value) formal

• Di dalam badan fungsi, nilai yang dihasilkan oleh fungsi

dikembalikan (return) ke titik pemanggilan:

return x*x + 2*x – 3

(5)

S1 Teknik Informatika-Unijoyo 9

Fungsi dapat dipanggil dari program utama atau dari modul program

lain. Di dalam DEKLARASI program pemanggil harus dideklarasikan prototip atau header fungsi yang digunakan. Pendeklarasian prototip fungsi di dalam DEKLARASI diperlukan agar fungsi tersebut dikenal oleh program pemanggil serta cara fungsi dipanggil

Fungsi dariContoh 1dapat dipanggil untuk menampilkan tabel

nilai-nilai xdan F(x)di dalam selang [10,15] dengan ∆x = 0.5

seperti contoh berikut:

Contoh 2:

Pemanggilan Fungsi F(x)= x2+2x–3, xЄR

Algoritma CONTOH_PEMANGGILAN_FUNGSI

{ Program utama untuk pemanggilan fungsi F }

DEKLARASI

x : real

function F(input x:real) → real { Mengembalikan nilai F(x) = x2 + 2x – 3, x Є R } return x*x + 2*x - 3 DESKRIPSI: write(‘---‘) write(‘ x F(x) ‘) write(‘---‘) x ← 10.0 while x ≤ 15.0 do write(x,‘ ‘,F(x)) xx + 0.5 endwhile write(‘---‘) Program CONTOH_PEMANGGILAN_FUNGSI; var x : real;

function F(x : real) : real;

begin F := x*x + 2*x - 3 end; begin writeln(‘---‘); writeln(‘ x F(x) ‘); writeln(‘---‘); x := 10.0; while x <= 15.0 do begin writeln(x:6:2,‘ ‘,F(x) :6:2); x := x + 0.5; end; writeln(‘---‘); end.

(6)

S1 Teknik Informatika-Unijoyo 11

Fungsi lebih tepat digunakan apabila modul program

mengembalikan sebuah nilai, sementara prosedur digunakan bila modul menghasilkan efek netto dari (satu atau)

sekumpulan aksi. Namun dalam praktek, seringkali perbedaan antara keduanya tidak jelas, karena sebuah prosedur dapat juga ditulis sebagai fungsi, demikian pula sebaliknya. Pemilihan apakah sebuah modul direalisasikan sebagai fungsi atau prosedur bergantung pada kebutuhan dan seni memprogram

Fungsi dapat dikonversikan sebagai prosedur dengan

menyatakan nilai yang dikembalikan oleh fungsi tersebut sebagai parameter keluaran prosedur. Demikian juga, prosedur yang mempunyai satu buah parameter keluaran dapat ditulis sebagai fungsi dengan menyatakan parameter keluaran sebagai nilai yang dikembalikan oleh fungsi

Penggunaan Prosedur atau Fungsi?

(a) Mengubah

fungsi menjadi

prosedur

Contoh: fungsiMaks

dan program utama untuk menentukan bilangan terbesar di antara dua buah bilangan

Algoritma MENENTUKAN_MAKSIMUM

{ Program utama yang memanggil fungsi MAKS untuk menentukan nilai maksimum dari dua buah bilangan buat a dan b. }

DEKLARASI (* Program Utama *)

a, b : integer

function Maks(input a,b : integer)→ integer

{ Mengembalikan harga terbesar dari a dan b } DEKLARASI (* Fungsi *) { tidak ada } DESKRIPSI : (* Fungsi *) if ab then return a else return b endif

DESKRIPSI : (* Program Utama *) read(a,b)

(7)

S1 Teknik Informatika-Unijoyo 13 Program CONTOH_PEMANGGILAN_FUNGSI;

var

a : integer; b : integer;

function Maks(a, b : integer) : integer; begin if a >= b then Maks := a else Maks := b; end; begin

write(‘Masukkan nilai a ? ‘); readln(a);

write(‘Masukkan nilai b ? ‘); readln(b);

writeln(‘Nilai yang terbesar adalah : ‘,Maks(a,b)); end.

Di samping sebagai

fungsi, fungsi Maks

juga dapat dituliskan sebagai prosedur

TentukanMaks dan program utama

Algoritma MENENTUKAN_MAKSIMUM

{ Program utama yang memanggil prosedur TentukanMaks untuk menentukan nilai maksimum dua buah bilangan bulat a dan b }

DEKLARASI (* Program Utama *)

a, b, m : integer

procedure TentukanMaks(input a,b : integer, output

maks : integer)

{ Menentukan nilai terbesar dari a dan b } { K.awal: a dan b sudah terdefinisi nilai }

{ K.akhir: maks berisi nilai terbesar dari a atau b }

DEKLARASI (* Prosedur *) { tidak ada } DESKRIPSI : (* Prosedur *) ifabthen maks a else maks b endif

DESKRIPSI : (* Program Utama *) read(a,b)

(8)

S1 Teknik Informatika-Unijoyo 15 Program CONTOH_PEMANGGILAN_FUNGSI; var a : integer; b : integer; m : integer;

procedure Tentukan_Maks(a,b:integer; var maks:integer); begin if a >= b then Maks := a else Maks := b; end; begin

write(‘Masukkan nilai a ? ‘); readln(a);

write(‘Masukkan nilai b ? ‘); readln(b);

Tentukan_Maks(a,b,m);

writeln(‘Nilai yang terbesar adalah : ‘,m); end.

(b) Mengubah

prosedur menjadi

fungsi

Contoh: prosedur HitungRataRata

dan program utama untuk menghitung nilai rata-rata dari sejumlah data bilangan bulat

Algoritma MENGHITUNG_RATA_RATA

{ Program utama untuk menghitung nilai rata-rata N buah bilangan bulat yang dibaca dari piranti masukan} DEKLARASI (* Program Utama *)

Ndata : integer

rerata : real

procedure HitungRataRata(input N : integer, output

rata : real)

{ Menghitung nilai rata-rata N buah bilangan bulat } { K.awal: N berisi banyaknya bilangan bulat, N > 0 } { K.awal: rata berisi rata-rata seluruh bilangan } DEKLARASI (* Prosedur *)

x : integer { data bilangan bulat yang dibaca dari piranti masukan }

k : integer { pencacah banyak bilangan }

jumlah : integer { jumlah seluruh bilangan } DESKRIPSI : (* Prosedur *)

jumlah ←0 { inisialisasi penjumlah } for k ←1 to N do

read(x)

jumlah← jumlah + x

endfor

ratajumlah/N { rata-rata seluruh bilangan } DESKRIPSI : (* Program Utama *)

read(Ndata)

(9)

S1 Teknik Informatika-Unijoyo 17 Program MENGHITUNG_RATA_RATA;

var

Ndata : integer; rerata : real;

procedure HitungRataRata(N : integer; var rata : real); var x, k, jumlah : integer; begin jumlah := 0; for k := 1 to N do begin write(‘Nilai x ? ‘); readln(x); jumlah := jumlah + x; end; rata := jumlah/N; end; begin

writeln(‘Menghitung rata-rata N buah bilangan bulat’); write(‘Masukkan banyaknya data ? ’);

readln(Ndata);

HitungRataRata(Ndata,rerata); writeln(‘Nilai rata-rata = ‘,rerata) end.

Algoritma MENGHITUNG_RATA_RATA

{ Program utama untuk menghitung nilai rata-rata N buah bilangan bulat yang dibaca dari piranti masukan }

DEKLARASI (* Program Utama *) Ndata : integer

rerata : real

function RataRata(input N : integer) → real

{ Menghitung nilai rata-rata N buah bilangan bulat yang dibaca dari piranti masukan. Rata-rata bilangan merupakan nilai yang dikembalikan oleh fungsi }

DEKLARASI (* Fungsi *)

x : integer {data bilangan bulat} k : integer {pencacah banyak bilangan} jumlah : integer {jumlah seluruh bilangan}

DESKRIPSI : (* Fungsi *)

jumlah0 { inisialisasi penjumlah } for k ← 1 to N do

read(x)

jumlahjumlah + x endfor

return jumlah/N {rata-rata seluruh bilangan}

DESKRIPSI : (* Program Utama *) read(Ndata)

Prosedur HitungRataRata

memiliki satu parameter keluaran, karena itu ia dapat diubah menjadi fungsi. Apabila ditulis sebagai fungsi, maka parameter keluaran rata tidak

diperlukan lagi, karena nilai rata merupakan nilai yang dihasilkan (return value) oleh fungsi

(10)

S1 Teknik Informatika-Unijoyo 19 Program CONTOH_PEMANGGILAN_FUNGSI;

var

Ndata : integer; rerata : real;

function RataRata(N : integer) : real; var x, k, jumlah : integer; begin jumlah := 0; for k := 1 to N do begin write(‘Nilai x ? ‘); readln(x); jumlah := jumlah + x; end; RataRata := jumlah/N; end; begin

writeln(‘Menghitung rata-rata N buah bilangan bulat’); write(‘Masukkan banyaknya data ? ’); readln(Ndata); writeln(‘Nilai rata-rata = ‘,RataRata(Ndata)) end.

• Fungsi adalah modul program yang memberikan/mengembalikan (return) sebuah nilai dan tipe tertentu (tipe dasar atau tipe bentukan) • Struktur fungsi terdiri dari bagian header, bagian Deklarasi dan badan

fungsi

• Semua nama peubah/konstanta yang hanya berlaku di dalam fungsi saja dideklarasikan di dalam bagian Deklarasi (lokal). Nama yang didefinisikan di dalam bagian Deklarasi fungsi hanya dikenal dan berlaku di dalam fungsi yang bersangkutan saja, fungsi lain atau program utama tidak dapat menggunakannya

• Fungsi diakses dengan cara memanggil namanya dari program pemanggil, diikuti dengan daftar parameter aktual (bila ada)

• Fungsi dapat dikonversikan sebagai prosedur, demikian juga prosedur yang mempunyai satu buah parameter keluaran dapat ditulis sebagai

(11)

S1 Teknik Informatika-Unijoyo 21

Jogiyanto HM [1989].

Turbo Pascal

, Yogyakarta: Andi

Offset.

Noor Ifada [2005].

Diktat Matakuliah Algoritma

Pemrograman (Hibah Kompetisi A1)

, Bangkalan:

Jurusan Teknik Informatika, Universitas Trunojoyo.

Rinaldi Munir [2003].

Algoritma dan Pemrograman

dengan Pascal dan C edisi Kedua

, Bandung: Informatika.

Referensi

Dokumen terkait

komunikasi yang dihasilkan oleh mahasiswa tersebut akan menjadi

2.2.10 Perceived Usefulness, Perceived Ease of Use dan Faktor Sosial Terhadap Minat Pemanfaatan Sistem Informasi dan Penggunaan Teknologi Sistem Informasi

Estimasi korelasi genetik yang bernilai positip dan berderajat sedang antara sifat lahir dengan sapih maupun dengan setahunan menunjukkan bahwa seleksi

Faktor yang mempengaruhi peningkatan dan penyebaran kasus Demam Berdarah Dengue sangat kompleks, yaitu (1) Pertumbuhan penduduk yang tinggi (2) Urbanisasi yang

Dari table diatas dapat dilihat bahwa nigeria mengekspor produk perhiasan dalam jumlah yang tidak terbilang kecil, jenis produk perhiasan Nigeria yang

Sebagaimana yang kita ketahui bahwa madrasah adalah salah satu dari Tripusat pendidikan yang dituntut untuk mampu menjadikan output yang unggul, mengutib pendapat

Untuk efisiensi volume limbah cair yang disalurkan, pada sistem traktor-tangki kemungkinan kehilangan limbah cair selama penyaluran sangat kecil, baik pada saat

Hindari penggunaan alternative jawaban yang berbunyi semua jawaban benar atau semua jawaban salah.. Contoh: