materi 6: modular web viewfungsi adalah sekumpulan perintah operasi program yang dapat menerima...

12
6. Materi 6: Modular 6.1. Sekilas tentang Pemrograman Modular Ada sebuah pernyataan dari Al-Khawarizmi: Untuk mencapai suatu tujuan besar, maka tujuan tersebut harus dibagi-bagi menjadi tujuan kecil sampai tujuan kecil itu merupakan tujuan yang dapat dicapai berdasarkan kondisi dan potensi yang dimiliki saat itu. Pernyataan Al-Khawarizmi dapat dijadikan analogi mengenai pemrograman modular. Pemrograman modular adalah memprogram dengan membagi program menjadi beberapa bagian procedure (prosedur) dan function (fungsi). Prosedur adalah bagian program yang tidak mengembalikan hasil proses ke bagian pemanggilnya. Sedangkan fungsi adalah bagian program yang akan mengembalikan suatu nilai hasil dari proses ke bagian pemanggilnya. Namun, pemrograman dalam bahasa C maupun C++ istilah prosedur tidak digunakan, bagian-bagian program tersebut hanya disebut dengan fungsi. Fungsi adalah sekumpulan perintah operasi program yang dapat menerima argumen input dan dapat memberikan hasil output yang dapat berupa nilai ataupun sebuah hasil operasi. Hasil akhir fungsi akan berupa sebuah nilai balik (return) . Nama fungsi yang didefinisikan sendiri oleh pemrogram tidak boleh sama dengan nama build-in function pada compiler C++. Keuntungan menggunakan fungsi

Upload: buidung

Post on 01-Feb-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Materi 6: Modular Web viewFungsi adalah sekumpulan perintah operasi program yang dapat menerima argumen input dan dapat ... yang rendah, makin sedikit tugas yang ... Contoh dalam program:

6. Materi 6: Modular6.1. Sekilas tentang Pemrograman Modular

Ada sebuah pernyataan dari Al-Khawarizmi:

Untuk mencapai suatu tujuan besar, maka tujuan tersebut harus dibagi-bagi menjadi

tujuan kecil sampai tujuan kecil itu merupakan tujuan yang dapat dicapai

berdasarkan kondisi dan potensi yang dimiliki saat itu.

Pernyataan Al-Khawarizmi dapat dijadikan analogi mengenai pemrograman

modular. Pemrograman modular adalah memprogram dengan membagi program

menjadi beberapa bagian procedure (prosedur) dan function (fungsi). Prosedur adalah

bagian program yang tidak mengembalikan hasil proses ke bagian pemanggilnya.

Sedangkan fungsi adalah bagian program yang akan mengembalikan suatu nilai hasil

dari proses ke bagian pemanggilnya. Namun, pemrograman dalam bahasa C maupun

C++ istilah prosedur tidak digunakan, bagian-bagian program tersebut hanya disebut

dengan fungsi.

Fungsi adalah sekumpulan perintah operasi program yang dapat menerima

argumen input dan dapat memberikan hasil output yang dapat berupa nilai ataupun

sebuah hasil operasi. Hasil akhir fungsi akan berupa sebuah nilai balik (return) .

Nama fungsi yang didefinisikan sendiri oleh pemrogram tidak boleh sama

dengan nama build-in function pada compiler C++.

Keuntungan menggunakan fungsi

1. Rancangan Top - down dengan teknik Sub goal, program besar dapat dibagi

menjadi modul-modul yang lebih kecil.

2. Dapat dikerjakan oleh lebih dari satu orang dengan koordinasi yang relatif

mudah.

3. Mencari kesalahan relatif lebih mudah karena alur logika lebih jelas, dan

kesalahan dapat dilokalisir dalam satu modul.

4. Modifikasi dapat dilakukan, tanpa mengganggu program secara keseluruhan.

5. Mempermudah dokumentasi.

Contoh pembagian program menjadi beberapa subprogram

Page 2: Materi 6: Modular Web viewFungsi adalah sekumpulan perintah operasi program yang dapat menerima argumen input dan dapat ... yang rendah, makin sedikit tugas yang ... Contoh dalam program:

Sifat-sifat fungsi yang baik adalah :

Fan-In yang tinggi, yaitu makin sering suatu fungsi dipanggil oleh pengguna,

makin tinggi nilai fan-in.

Fan-Out yang rendah, makin sedikit tugas yang dilakukan oleh suatu fungsi

makin rendah nilai fan-out. Dengan demikian, makin spesifik tugas yang

dikerjakan oleh modul tersebut.

Self-Contained, atau memenuhi kebutuhannya sendiri.

Contoh fungsi untuk menuliskan garis:

Output dari program diatas adalah:

6.2. Deklarasi Fungsi

Fungsi dalam bahasa C dan C++ dapat ditulis dengan sintaks berikut:type function_name(<argument_list>){

<statement_list>return value

}

type → tipe data dari return value.

Page 3: Materi 6: Modular Web viewFungsi adalah sekumpulan perintah operasi program yang dapat menerima argumen input dan dapat ... yang rendah, makin sedikit tugas yang ... Contoh dalam program:

function_name → nama fungsi

argument_list → variable input

statement_list → kumpulan instruksi

6.3. Prototipe Fungsi

Sebuah fungsi tidak dapat dipanggil kecuali sudah dideklaraikan, deklarasi

fungsi dikenal dengan sebutan prototipe fungsi.

Prototipe fungsi berupa :

1. Nama Fungsi

2. Tipe nilai fungsi

3. Jumlah dan tipe parameter

4. Dan diakhiri dengan titik koma, sebagaimana pada pendeklarasian variabel.

Contoh:

1. long kuadrat (long l) ;

Fungsi kuadrat ( ) mempunyai argumen bertipe long dan nilai balik bertipe

long.

2. void garis ( );

Fungsi garis ( ) tidak memiliki argumen dan nilai baliknya tidak ada (void).

3. double maks (double x, double y)

Fungsi maks( ) mempunyai dua buah argumen, dengan masing-masing

argumen bertipe double.

Page 4: Materi 6: Modular Web viewFungsi adalah sekumpulan perintah operasi program yang dapat menerima argumen input dan dapat ... yang rendah, makin sedikit tugas yang ... Contoh dalam program:

Contoh dalam program:

6.4. Variable Lokal dan Variable GlobalGlobal Identifier:Ciri-ciri variable global adalah:

- Identifier yang dideklarasikan di luar fungsi dan ditempatkan di atas semua

fungsi dalam suatu program.

- Jangkauan meliputi seluruh program.

- Identifier yang dideklarasikan secara global, dapat dideklarasikan kembali

(redeclared) di subprogram.

Ciri-ciri variable lokal adalah:

- Identifier yang dideklarasikan di dalam fungsi, termasuk daftar parameter.

- Jangkauan terbatas pada fungsi itu sendiri.

Lebar jangkauan antara variable global dan lokal adalah:

Page 5: Materi 6: Modular Web viewFungsi adalah sekumpulan perintah operasi program yang dapat menerima argumen input dan dapat ... yang rendah, makin sedikit tugas yang ... Contoh dalam program:

6.5. Passing value

7. Ada 2 jenis cara untuk mengirimkan argumen yaitu:

1. Passing by Value

yang dikirimkan adalah nilai (value) dari variable yang dikirim sebagai

argumen.

Perubahan terhadap argumen yang terjadi di dalam fungsi tidak akan

mempengaruhi nilai dari variable tersebut dari fungsi pemanggil ( hanya 1

arah yaitu masuk ke fungsi ).

Pengiriman suatu nilai dapat dilakukan dengan untuk suatu ungkapan,

tidak hanya sebuah variable.

Contoh fungsi dengan passing by value

Page 6: Materi 6: Modular Web viewFungsi adalah sekumpulan perintah operasi program yang dapat menerima argumen input dan dapat ... yang rendah, makin sedikit tugas yang ... Contoh dalam program:

Output:

2. Passing by Reference

Pada cara ini yang dikirimkan adalah reference (pointer/acuan) dari

variable yang dikirim sebagai argumen.

Perubahan argumen di dalam fungsi, akan mempengaruhi nilai variable

pada pemanggil. Karena yang dikirimkan adalah pointer.

Jenis data yang dikirim sebagai argumen harus berupa variable, tidak

dapat berupa bilangan konstan.

Pada C/C++ diperkenalkan reference parameter untuk menghindari

penggunaan pointer untuk melakukan passing by Reference.

Contoh fungsi dengan passing by reference:/*fungsi dengan passing by referencepada fungsi untuk menukar dua variable*/

#include <iostream.h>

void tukar(int *a, int *b);

int main(){ int a = 6; int b = 3; cout << "Sebelum ditukar:" << endl; cout << "a = " << a << endl; cout << "b = " << b << endl << endl;

tukar(&a,&b);

cout << "****************" << endl; cout << "Setelah ditukar:" << endl; cout << "a = " << a << endl; cout << "b = " << b << endl << endl; cin.get();}

void tukar(int *a, int *b){ int temp; temp = *b; *b = *a; *a = temp; }

Page 7: Materi 6: Modular Web viewFungsi adalah sekumpulan perintah operasi program yang dapat menerima argumen input dan dapat ... yang rendah, makin sedikit tugas yang ... Contoh dalam program:

Output:

6.6. Fungsi Rekursif

Rekursif adalah suatu proes dari fungsi yang memanggil dirinya secara

berulang-ulang. Karena proses dilakukan berulang-ulang maka harus ada kondisi yang

mengakhiri prosesnya. Jika tidak maka proses tidak akan pernah berhenti sampai

memori yang digunakan tidak dapat menampung lagi.

Salah satu implementasi dari fungsi rekursif adalah pada masalah faktorial.

Faktorial dari bilangan bulat positif n didefinisikan sebagai berikut:

n! = n.(n-1)!, jika n > 1

n! = 1, jika n = 0 atau n = 1

contoh penggunaan fungsri rekursif dalam program untuk masalah faktorial tersebut

adalah sebagai berikut:/*fungsi rekursif untuk faktorial*/

#include <conio.h>#include <iostream.h>

long faktorial(long n);

int main(){ long n; long temp; cout << "input number: "; cin >> n; temp = faktorial(n); cout << n << "! = " << temp; getch();}

long faktorial(long n){ long f; if(n>1) { f = n*faktorial(n-1); return(f); } else if(n==0 || n==1) return(1);}

Page 8: Materi 6: Modular Web viewFungsi adalah sekumpulan perintah operasi program yang dapat menerima argumen input dan dapat ... yang rendah, makin sedikit tugas yang ... Contoh dalam program:

Output:

Keterangan program:

- Fungsi utama (main) memanggil fungsi faktorial() dengan mengirimkan nilai

n (dalam contoh diatas nilai n yang dikirim adalah 5) yang maksudnya akan

dilakukan perhitungan 5 faktorial dan hasil perhitungan faktorial akan

disimpan dalam variable temp.

- Jika nilai n pertama kali yang diberikan oleh fungsi utama lebih besar dari 1,

maka proses rekursif akan dilakukan. Misalnya nilai n adalah 5, maka proses

rekursif yang pertama adalah:

f = 5 * faktorial(n-1);

proses ini akan memanggil kembali fungsi dirinya sendiri dengan

mengirimkan nilai 4 sebagai nilai n yang baru. Karena nilai n masih lebih

besar dari 1, maka proses rekursif ke-2 akan dilakukan dengan hasilnya adalah

4 * faktorial(3). Untuk n adalah 3, hasil yang diperoleh oleh rekursif adalah

3*faktorial(2) dan seterusnya hingga nilai n adalah 1. Untuk nilai n sama

dengan 1 ini, statement return(1) akan mengembalikan proses ke bagian yang

memanggilnya, yaitu statement setelah statement f = 5*faktorial(n-1).

Statement return(f) kemudian baru mengembalikan proses ke fungsi utama.

6.7. Exercise

1. Buatlah program dengan menggunakan fungsi untuk menyelesaikan

persamaan: f ( x )=x2+3 x+2

2. Buatlah program untuk menghitung besarnya diskon yang diberikan atas

besarnya sejumlah pembelian, dengan ketentuan sebagai berikut:

- Jika belanja dibawah Rp 1.000.000 maka tidak mendapat diskon

- Jika belanja dimulai dari Rp 1.000.000 sampai dengan Rp 5.000.000,

maka mendapat diskon sebesar 20%

- Jika belanja diatas Rp 5.000.000 maka mendapat diskon sebesar 35%

- Fungsi yang dibuat bernama diskon()

- Input adalah besar nilai pembelian

- Output adalah besar diskon dan besar harga yang harus dibayarkan

Page 9: Materi 6: Modular Web viewFungsi adalah sekumpulan perintah operasi program yang dapat menerima argumen input dan dapat ... yang rendah, makin sedikit tugas yang ... Contoh dalam program:

3. Buatlah program untuk menghitung jumlah pembayaran pada perpustakaan

“KECIL-KECILAN”. (fungsi yang dibuat adalah untuk menentukan tarif).

Dengan ketentuan sebagai berikut:

Kode Jenis Jenis Buku Tarif

C Cerpen 1000

K Komik 2000

N Novel 3000

4. Buatlah program (dengan menggunakan fungsi) untuk membilang suatu

bilangan. Misalkan user menginputkan bilangan 1532. Maka program akan

menampilkan “seribu lima ratus tiga puluh dua”.

5. Buatlah fungsi untuk mengecek suatu bilangan apakah bilangan prima atau

bukan. Contoh, user menginputkan “3”, maka program akan menampilkan

“3 adalah bilangan prima”.