prosedur dan fungsi1

Upload: ietha-zhy

Post on 15-Oct-2015

21 views

Category:

Documents


0 download

TRANSCRIPT

  • Prosedur dan Fungsi

  • Dasar ProsedurProsedure adalah bagian dari suatu program yang disusun secara terpisah untuk melakukan suatu tugas khusus/fungsi tertentu.Pada dasarnya ada dua macam bentuk prosedur yaitu Subrutin (subprogram) dan Fungsi.Subrutin (Subprogram) adalah bagian dari program yang dibuat terpisah untuk melaksanakan sabagian dari tugas yang harus diselesaikan oleh suatu program. Pada umumnya yang dikenal dengan nama prosedur sebenarnya adalah subprogram.

  • Manfaat pembuatan prosedur :ModularisasiSuatu program yang besar dan kompleks dapat dibagi kedalam beberapa prosedure sehingga setiap prosedure merupakan bagian yang mudah dikerjakan.

    Simplifikasi Dalam suatu program, sering diperlukan suatu tugas yang harus dikerjakan berulang-ulang dengan nilai-nilai variabel yang berbeda-beda. Agar tidak merepotkan maka tugas ini cukup ditulis sekali saja dalam bentuk prosedur yang kemudian dipanggil berulang-ulang sesuai kebutuhan.

  • Bentuk Umum Prosedur (Subprogram)

    Prosedur nama_prosedur {spesifikasi dari prosedur, keadaan awal sebelum prosedur dilaksanakan dan juga keadaaan akhir setelah prosedur dilaksanakan} Deklarasi {Deklarasi variabel-variabel prosedur} Deskripsi {Deskripsi dari tugas-tugas prosedur}

  • Contoh 1. Andaikan sebuah program menyediakan fasilitas untuk menghitung luas, keliling, dan diagonal dari sebuah persegi panjang dengan kemungkinan pemilihan melalui suatu menu.

    Contoh soal di atas dapat dibagi ke dalam enam prosedur, yaitu prosedur menampilkan menu, prosedur membaca dimensi persegi panjang, menghitung luas, menghitung keliling, menghitung diagonal, dan menampilkan hasil.

  • Jawab :Algoritma Empat_persegi_panjang{Algoritma ini menunjukkan contoh pemakaian prosedur untuk menghitung luas, keliling, dan diagonal dari empat persegi panjang}

    Deklarasiinteger pil; real panjang, lebar, hasil; {semua prosedur harus dideklarasikan} prosedur menu; prosedur baca_dimensi; prosedur hitung_luas; prosedur hitung_keliling; prosedur hitung_diagonal; prosedur tampil _hasil

  • Deskripsipil 0; menu; {Memanggil prosedur menu} printf (Masukkan Pilihan Anda :); printf (pil); if (pil < 4) then baca_dimensi;{Memanggil prosedur baca_dimensi} endif. case(pil) 1 : hitung_luas; 2 : hitung_keliling; 3 : hitung_diagonal 4 : print (Selesai.sampai jumpa); default : printf(Pilihan Salah, Ulangi !); endcase.

  • if (pil < 4) then tampil_hasil; {Memanggil prosedur tampil_hasil} endif.until (pil=4).prosedur menu{menampilkan menu program}deklarasideskripsi printf (Menu Program Empat Persegi Panjang); printf (1. Menghitung Luas ); printf (2. Menghitung Keliling); printf (3. Menghitung Diagonal );printf(4. Keluar dari program);

  • prosedur baca_dimensi{membaca dimensi persegi panjang}deklarasideskripsi printf(Masukkan Panjang :); printf (panjang); printf (Masukkan Lebar :); printf (lebar);

    prosedur hitung_luas{menghitung luas persegi panjang}deklarasi real luas;deskripsi luas panjang * lebar; hasil luas;

  • prosedur hitung_keliling{Menghitung keliling empat persegi panjang}deklarasi real keliling; deskripsi keliling 2 * (panjang + lebar); hasil keliling; prosedur hitung_diagonal{menghitung diagonal empat persegi panjang}deklarasi real diagonal;deskripsi diagonal sqrt (panjang^2 + lebar^2); hasil diagonal;

  • prosedur tampil_hasil{menampilkan hasil dari program ini}deklarasideskripsi printf (Hasil = , hasil);

  • Contoh Program menggunakan prosedur. Program di bawah ini menggunakan prosedur yang terdiri dari prosedur menu, entry, proses dan informasi, dalam bentuk menu pilihan sebagai berikut :

    Menu Pilihan 1. Entry Data 2. Informasi 3. Selesai

  • Jawab :Algoritma Pembayaran_Listrik {Algoritma ini menunjukkan contoh pemakaian prosedur menerima nama, golongan serta Jumlah Pemakaian, memproses dan kemudian menampilkan total pembayaran yang dibayarkan Pelanggan}

    Deklarasi integer pil; real total, Jlhpakai; string nama, gol; {semua prosedur harus dideklarasikan} prosedur menu; prosedur entry; prosedur proses; prosedur info;

  • Deskripsi pil 0; menu; {Memanggil prosedur menu} printf (Masukkan Pilihan Anda :); read (pil); case(pil) 1 : entry; {Memanggil prosedur Entry} 2 : info; {Memanggil prosedur Info} 3 : printf (Selesai.sampai jumpa); default : write(Pilihan Salah, Ulangi !); endcase. if (pil=3).

  • Prosedur Menu{menampilkan menu program}Deklarasi

    Deskripsi printf (Menu Program Pembayaran Listrik); printf (1. Entry Data ); printf (2. Informasi); printf (3. Keluar dari program);

  • Prosedur entry Deklarasi

    Deskripsi printf(Masukkan Nama Pelanggan :); printf(nama); printf(Masukan Golongan :); printf(gol); printf(Masukan Jumlah Pemakaian :); printf(jlhpakai);

  • Prosedur info;Deklarasi Deskripsi proses; {Memanggil prosedur proses} printf(Tagihan Listrik sdr. , nama, adalah = Rp., total);

  • Fungsi adalah :suatu bagian dari programyang dirancang untuk melaksanakan tugas tertentuletaknya dipisahkan dari program yang menggunakannya.

    Macam fungsi: standard : sudah disediakan oleh compiler, tinggal dipakai dengan menyebutkan headernya (kamusnya) pada preprosessor include, misalnya fungsi : printf() stdio.h; exit() stdlib.h user defined : didefinisikan oleh user, disesuaikan dengan kebutuhan user ybs.

  • Fungsi banyak digunakan dengan tujuan :Membuat program menjadi terstruktur, sehingga mudah dipahami dan mudah dikembangkan. Dengan memisahkan langkah-langkah detail ke satu atau lebih fungsifungsi, maka fungsi utama (main()) menjadi lebih pendek, jelas dan mudah dimengerti.Mengurangi pengulangan (duplikasi) kode, langkah-langkah program yang sama dan dipakai berulangulang di program dapat dituliskan sekali saja secara terpisah dalam bentuk fungsi-fungsi.Selanjutnya bagian program yang membutuhkan langkah-langkah ini tidak perlu selalu menuliskannya, tetapi cukup memanggil fungsi-fungsi tersebut.

  • Dasar FungsiParameter bisa diatikan sebagai bahan bakuyang akan diproses dalam fungsi dan dikirim dari tempat fungsi tsb dipanggil Keluaran fungsi (return value) bisa diartikan sebagai oleh-oleh yang akan dibawa ketika proses kembali ke tempat asal fungsi tsb dipanggil

  • Bentuk umum dari definisi sebuah fungsi adalah sbb :Keterangan : tipe keluaran fungsi, dapat berupa salah satu tipe data C, misalnyachar atau int . Kalau penentu tipe tidak disebutkan maka dianggap bertipe int (secara default). tubuh fungsi berisi deklarasi variabel (kalau ada) dan statement-statementyang akan melakukan tugas yang akan diberikan kepada fungsi yang bersangkutan. Tubuh fungsi ini ditulis di dalam tanda kurung kurawal buka dan kurung kurawal tutup.

  • Jenis FungsiBerdasarkan keberadaan return valuenya, maka fungsi dibagi menjadi 2 jenis, yaitu :1. punya return value (RV), ciricirinya: ada nama tipe data di depan nama fungsi, kecuali jika RVnya integer, boleh tidak ditulis karena merupakan tipe defaultada statement return di dalam body fungsi2. tidak punya return value, ciricirinya:ada tipe void di depan nama fungsitidak ada statemen return di dalam body fungsi

  • Fungsi dengan Return Value IntegerFungsi yang memiliki RV integer, maka di depan nama fungsi boleh dituliskan tipe int atau tanpa tipe sama sekali.

  • Fungsi dengan Return Value integer#include int minimum (int, int);main() {int a, b, kecil;printf("Masukkan nilai a : ");scanf("%d", &a);printf("Masukkan nilai b : ");scanf("%d", &b);kecil = minimum(a, b);printf("\nBilangan terkecil antara %d dan %d adl %d\n\n",a,b,kecil);}minimum(int x, int y) {if (x < y)return(x);elsereturn(y);}

  • Fungsi dengan Return Value bukan integerUntuk fungsi yang mempunyai RV bertipe bukan integer, maka fungsi HARUS didefiniskan dengan diawali tipe RVnya(ditulis di depan nama fungsi).Contoh fungsi jumlah() memiliki RV bertipe float sbb :

  • #include float jumlah(float, float);main(){float a, b,c;printf("Masukkan nilai a : ");scanf("%f", &a);printf("Masukkan nilai b : ");scanf("%f", &b);c = jumlah(a, b);printf("\nHasil penjumlahan a + b = %g\n", c);}float jumlah(float x, float y) {return(x + y);}

  • FungsiTanpa Return ValueKhusus untuk fungsi yang dirancang tanpa memberikan RV (melainkan hanya menjalankan suatu tugas khusus) biasa didefinisikan dengan diawali kata kunci void (di depan nama fungsi). Contoh fungsi info_program()yang tugasnya menampilkan informasi tentang sebuah program

  • #include void info_program();main() {info_program();}void info_program(){puts("==================================");puts("Progam dibuat oleh Moh. Izzuddin ");puts("Tanggal : 5 Maret 2007 ");puts(" ");puts("Selamat menggunakannya....... ");puts("==================================");}

  • Prototype/DeklarasiFungsi Prototipe fungsi digunakan untuk menjelaskan kepada kompiler mengenai : tipe keluaran fungsi jumlah parameter tipe dari masing-masing parameter

  • Bagi kompiler, informasi tsb akan dipakai untuk memeriksakeabsahan (validitas) parameter dalam pemanggilan fungsi. Salah satu keuntungannya adalah, kompiler akan melakukankonversi seandainya antara tipe parameter dalam fungsi danparameter saat pemanggilan fungsi tidak sama, atau akanmenunjukan kesalahan bila jumlah parameter dalam definisidan saat pemanggilan berbeda.

  • Sekian & Terima Kasih

    ***************