Algoritma Pertemuan 6

28
Algoritma & Pemrograman #6 by Ichsan Taufik, M.T.

description

Fungsi dan Modular C++

Transcript of Algoritma Pertemuan 6

Page 1: Algoritma Pertemuan 6

Algoritma &Pemrograman #6

by Ichsan Taufik, M.T.

Page 2: Algoritma Pertemuan 6

Modular Programming• Pemrograman Modular adalah suatu teknik pemrograman di mana

program yang biasanya cukup besar dibagi-bagi menjadi beberapa bagian program yang lebih kecil sehingga kompleksitas program menjadi lebih kecil, masalah yang kompleks dapat lebih mudah diselesaikan, dan program menjadi lebih spesifik / terarah.

• Di dalam bahasa Pascal modul-modul yang berisi bagian program yang bersifat spesifik dapat dituangkan ke dalam suatu fungsi atau procedure.

• Fungsi/function atau prosedur/procedure adalah bagian dari program yang memiliki nama tertentu, digunakan untuk mengerjakan suatu pekerjaan tertentu, serta letaknya dipisahkan dari bagian program yang menggunakan fungsi atau prosedur tersebut.

• Beberapa bahasa pemrograman menamakan subprogram dengan sebutan sub-rutin (subroutine), modul, prosedur, atau fungsi.

Page 3: Algoritma Pertemuan 6

Keuntungan Subprogram• Keuntungan menggunakan Subprogram:

– Program besar dapat dipisah menjadi program-program kecil.– Dapat dikerjakan oleh beberapa orang sehingga koordinasi mudah.– Kemudahan dalam mencari kesalahan-kesalahan karena alur logika

jelas dan kesalahan dapat dilokalisasi dalam suatu modul tertentu saja.

– Modifikasi program dapat dilakukan pada suatu modul tertentu saja tanpa mengganggu program keseluruhan.

– Fungsi – fungsi menjadikan program mempunyai struktur yang jelas. Dengan memisahkan langkah – langkah detail ke satu atau lebih fungsi – fungsi, maka program utama akan menjadi lebih pendek, jelas dan mudah dimengerti. Hal seperti ini menunjukan suatu struktur program yang baik

Page 4: Algoritma Pertemuan 6

Keuntungan Subprogram• Fungsi –fungsi yang dapat digunakan untuk menghindari

penulisan yang sama yang ditulis secara berulang – ulang. Langkah – langkah program yang sama dan sering digunakan berulang – ulang di program dapat dituliskan sekali saja secara terpisah dalam bentuk fungsi – fungsi. Selanjutnya bagian program yang membutuhkan langkah – langkah ini tidak perlu selalu menuliskannya, kita cukup memanggil fungsi – fungsi tersebut.– Mempermudah dokumentasi.– Reusability: Suatu fungsi dapat digunakan kembali oleh program atau

fungsi lain

Page 5: Algoritma Pertemuan 6

Kategori Subprogram dalam Pascal

1. Standard Library Function• Yaitu fungsi-fungsi yang telah disediakan oleh Pascal dalam file-file

unitnya. Misalnya: clrscr, gotoxy(), textcolor()Untuk function ini kita harus mendeklarasikan terlebih dahulu library yang akan digunakan, yaitu dengan menggunakan reserved word: uses crt;

2. Programmer-Defined Function• Adalah function yang dibuat oleh programmer sendiri. Function ini

memiliki nama tertentu yang unik dalam program, letaknya terpisah dari program utama, dan bisa dijadikan satu ke dalam suatu library buatan programmer itu sendiri yang kemudian juga disertakan untuk penggunaanya.

• Terdapat dua bentuk subprogram dalam Pascal, yaitu: pertama Prosedur (Procedure) dan kedua fungsi (Function)

Page 6: Algoritma Pertemuan 6

Pendefinisian Prosedur• Pendefinisian prosedur artinya menuliskan nama prosedur,

mendeklarasikan nama-nama konstanta, peubah dan tipe (jika ada), dan menjabarkan rangkaian aksi yang dilakukan.

• Pada dasarnya, struktur prosedur sama dengan struktur algoritma, yaitu ada bagian judul (header) yang terdiri atas nama prosedur dan deklarasi parameter (jika ada), bagian deklarasi untuk mengumumkan nama-nama, dan bagian algoritma yang disebut badan prosedur.

• Setiap prosedur mempunyai nama yang unik.• Nama prosedur sebaiknya diawali dengan kata kerja karena

prosedur berisi suatu aktivitas, misalnya : HitungLuas, Tukar, CariMaks, Inisialisasi, dan lain sebagainya.

Page 7: Algoritma Pertemuan 6

Parameter• Nama-nama peubah yang dideklarasikan pada

bagian header prosedur.• Kebanyakan program memerlukan pertukaran

data/informasi antara prosedur (atau fungsi) dan titik dimana ia dipanggil.

• Penggunaan parameter menawarkan mekanisme pertukaran informasi tersebut.

• Tiap item data ditransfer antara parameter aktual dan parameter formal yang bersesuaian.

Page 8: Algoritma Pertemuan 6

Parameter• Parameter Aktual (kadang-kadang disebut juga

argumen) adalah parameter yang disertakan pada waktu pemanggilan prosedur.

• Parameter Formal adalah parameter yang dideklarasikan di dalam bagian header prosedur itu sendiri.

• Ketika prosedur dipanggil, parameter aktual menggantikan parameter formal.

• Tiap-tiap paramater aktual berpasangan dengan parameter formal yang bersesuaian.

Page 9: Algoritma Pertemuan 6

ParameterAturan yang harus diperhatikan dalam korespondensi

satu-satu antara parameter aktual dan parameter formal adalah:

1. Jumlah parameter aktual pada pemanggilan prosedur harus sama dengan jumlah parameter formal pada deklarasi prosedurnya.

2. Tiap parameter aktual harus bertipe sama dengan tipa parameter formal yang bersesuaian.

3. Tiap parameter aktual harus diekspresikan dalam cara yang taat-asas dengan parameter formal yang bersesuaian, bergantung pada pada jenis parameter formal.

Page 10: Algoritma Pertemuan 6

Parameter

Terdapat tiga jenis parameter formal yang disertakan dalam prosedur:

1. Paramater masukan adalah parameter yang nilainya berlaku sebagai masukan untuk prosedur atau sering disebut parameter nilai (parameter by value).

2. Parameter keluaran adalah parameter yang menampung keluaran yang dihasilkan oleh prosedur.

3. Parameter masukan/keluaran adalah parameter yang berfungsi sebagai masukan sekaligus keluaran bagi prosedur tersebut.

Page 11: Algoritma Pertemuan 6

Notasi Algoritma Prosedurprocedure NamaProcedure (deklarasi parameter, jika ada){spesifikasi prosedur, berisi penjelasan tentang apa yang dilakukan

oleh prosedur iniK. Awal: keadaan sebelum prosedur dilaksanakan.K. Akhir: keadaan setelah prosedur dilaksanakan.}DEKLARASI{semua nama yang dipakai di dalam prosedur dan hanya berlaku

lokal di dalam prosedur didefinisikan disini}ALGORITMA:{badan prosedur, berisi urutan instruksi}

Page 12: Algoritma Pertemuan 6

Contoh Prosedur dengan parameter masukan

Prosedur HitungLuasSegitiga (input alas, tinggi:real){Menghitung luas segitiga dengan rumus Luas=(alas x tinggi)/2K. Awal : alas dan tinggi sudah terdefinisi nilainya.K. Akhir : luas segitiga tercetak.}DEKLARASI luas : integerALGORITMA: luas (alas*tinggi)/2 write(luas)

Page 13: Algoritma Pertemuan 6

Contoh Prosedur dengan parameter keluaran

Prosedur HitungLuasSegitiga (input alas, tinggi:real, output luas:real){Menghitung luas segitiga dengan rumus Luas=(alas x tinggi)/2K. Awal: alas dan tinggi sudah terdefinisi nilainyak. Akhir: luas berisi luas segitiga}DEKLARASI {tidak ada}ALGORITMA: luas (alas*tinggi)/2

Page 14: Algoritma Pertemuan 6

Contoh prosedur dengan paramater masukan/keluaran

Procedure Inc(input/output x:integer){menaikkan nilai x sebesar 1.K. Awal: x sudah terdefinisi nilainya.K. Akhir: nilai x bertambah 1}DEKLARASI{tidak ada}ALGORITMA: x x + 1

Page 15: Algoritma Pertemuan 6

PROGRAM Segitiga…HitLsSg3(a, t, L)…

procedure HitLsSg3(input alas, tinggi:real, output luas:real)

…luas (alas * tinggi)/2…

Page 16: Algoritma Pertemuan 6

PROGRAM Cetak0Sampai10…Inc(x)…

procedure Inc(input/output x : integer)…x x + 1…

Page 17: Algoritma Pertemuan 6

Cara Memanggil Prosedur• Tanpa Parameter

NamaProsedur;• Dengan Parameter

NamaProsedur(parameter aktual);

Page 18: Algoritma Pertemuan 6

Nama Global, Lokal, dan Lingkup

• Nama-nama (konstanta, peubah, tipe, dll) yang dideklarasikan di dalam prosedur (termasuk parameter, jika ada) hanya “dikenal” di dalam prosedur tersebut dikatan lingkupnya (scope) “lokal”.

• Nama-nama (konstanta, peubah, tipe, dll) yang dideklarasikan di dalam program utama dikatakan lingkupnya (scope) “global”.

Page 19: Algoritma Pertemuan 6

Peubah lokal atau global?• Keputusan apakah suatu peubah akan

dideklarasikan global atau lokal bergantung kepada penggunaan nama tersebut.

• Usahakanlah menggunakan peubah global sesedikit mungkin.

• Prosedur yang baik adalah prosedur yang independen dari program pemanggilnya. Pernyataan ini menyiratkan bahwa prosedur yang baik tidak menggunakan peubah-peubah global di dalam badan prosedurnya.

Page 20: Algoritma Pertemuan 6

Latihan ProsedurProcedure HitungRatarata(input N:integer, output u:real){menghitung rata-rata N buah bilangan bulat dari piranti masukan}DEKLARASI x,k,jumlah : integerALGORITMA:

jumlah ← 0 {inisialisasi}for k ← 1 to N do read(x) jumlah ← jumlah+xendforu ← jumlah/N

Page 21: Algoritma Pertemuan 6

Latihan ProsedurProcedure TambahEmpat(input/output x:integer, input y:integer){menambahkan nilai x dan y masing-masing dengan 4}DEKLARASI {tidak ada}ALGORITMA:

x ← x + 4 y ← y + 4write(‘Nilai x dan y di akhir prosedur TambahEmpat: ’)write(‘ x = ’,x)write(‘ y = ’,y)

Page 22: Algoritma Pertemuan 6

Fungsi• Fungsi adalah subprogram yang

memberikan/mengembalikan (return) sebuah nilai dari tipe tertentu (tipe dasar atau tipe bentukan).

• Definisi fungsi di dalam program bersesuaian dengan definisi fungsi di dalam matematika.

• Contoh : f(x)= 2x2 +5x – 8, H(x,y) =3x-y+xy• Nilai yang diberikan oleh fungsi bergantung

pada masukan parameter

Page 23: Algoritma Pertemuan 6

Pendefinisian fungsi• Struktur fungsi sama dengan struktur algoritma sudah dikenal: ada

bagian header yang berisi nama fungsi(beserta parameter masukan jika ada) dan spesifikasi tentang fungsi tersebut, bagian deklarasi, dan badan fungsi.

• Tipe menspesifikasikan tipe nilai yang diberikan oleh fungsi. Nilai yang diberikan oleh fungsi bertipe dasar maupun bertipe bentukan.

• Parameter formal selalu berjenis parameter masukan sehingga deklarasi nama parameter selalu diawali dengan kata input.

• Semua nama peubah/konstanta yang hanya berlaku di dalam fungsi saja diumumkan di bagian deklarasi. 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.

• Pernyataan return ekspresi di dalam fungsi bertujuan mengembalikan nilai yang dihasilkan oleh fungsi tersebut. Ekspresi dapat berupa konstanta, atau sebuah peubah, atau sebuah rumus.

Page 24: Algoritma Pertemuan 6

Notasi Algoritma Fungsifunction NamaFungsi (input deklarasi parameter, jika ada) → tipe{spesifikasi fungsi, menjelaskan tentang apa yang dilakukan dan

yang dikembalikan oleh fungsi.}DEKLARASI{semua nama yang dipakai di dalam fungsi dan hanya berlaku lokal

di dalam fungsi didefinisikan disini}ALGORITMA:{badan fungsi, berisi urutan instruksi untuk menghasilkan nilai

yang akan dikembalikan oleh fungsi} return ekspresi {pengembalian nilai yang dihasilkan fungsi}

Page 25: Algoritma Pertemuan 6

Contoh FungsiFunction F(input x:real) → real{mengembalikan nilai F(x)=2x2 + 5x -8, x R}DEKLARASI {tidak ada}ALGORITMA: return 2*x*x+ 5*x – 8

Page 26: Algoritma Pertemuan 6

Contoh FungsiFunction H(input u,v,w:integer) → integer{mengembalikan nilai H(u,v,w)=2uv2 + 3vw + 10v}DEKLARASI {tidak ada}ALGORITMA: return 2*u*v*v+ 3*v*w + 10*v

Page 27: Algoritma Pertemuan 6

Latihan FungsiFunction NamaBulan(input bln:integer)→string{mengembalikan nama bulan berdasarkan nomor bln}DEKLARASI {tidak ada}ALGORITMA: case bln

1: return ‘Januari’2: return ‘Februari’3: return ‘Maret’4: return ‘April’5: return ‘Mei’6: return ‘Juni’7: return ‘Juli’8: return ‘Agustus’9: return ‘September’10: return ‘Oktober’11: return ‘November’12: return ‘Desember’

endcase

Page 28: Algoritma Pertemuan 6

Latihan FungsiFunction Maks(input a, b:integer)→integer{mengembalikan nilai terbesar dari a dan b}DEKLARASI {tidak ada}ALGORITMA:

If a>= b thenreturn a

elsereturn b

endif