Senin, 14 Desember 2015

FUNGSI

FUNGSI

TUJUAN
 Setelah mempelajari bab ini diharapkan mahasiswa akan mampu :
1.      Mahasiswa mampu memahami fungsi
2.      Mahasiswa mampu mendeklarasikan dan mendefinisikan fungsi
3.      Mahasiswa mampu menyelesaikan masalah menggunakan fungsi
4.      Mahasiswa mampu memahami metode pemanggil fungsi
5.      Mahasiswa mampu membuat fungsi rekursif

DASAR TEORI
DEFINISI FUNGSI
Fungsi pada bahasa C pada dasarnya didefinisikan diatas blok atau fungsi pemanggilnya (main () atau fungsi lainnya). Namun adakalanya definisi fungsi diletakkan setelah blok pemanggil. Pada kondisi tersebut perlu digunakan prototipe fungsi yang dideklarasikan sebelum fungsi pemanggilnya.
Fungsi merupakan blok dari kode yang dirancang untuk melakukan tugas khusus atau inruksi yang dieksekusi ketika dipanggil dari bagian lain dalam suatu program. Tujuan pembuatan fungsi :
a.       Memudahkan dalam pembuatan program
b.      Menghemat ukuran program
c.       Membuat program menjadi lebih terstruktur
d.      Mengurangi duplikasi kode
e.       Fungsi dapat dipanggil dari program atau fungsi lainnya
Keuntungan penggunaan fungsi pada pemrograman antara lain:
a.       Menguraikan duplikasi kode (kode yang sama ditulis berulang-ulang) dalam program
b.      Mengurangi duplikasi kode (kode yang sama ditulis berulang-ulang) dalam program
c.       Dapat mengunakan kode yang ditulis dalam berbagai program yang berbeda
d.      Memecahkan program besar menjadi kecil (menjadi tiap bagian-bagian), sehingga dapat dikerjakan oleh programmer-programer atau dipecah menjadi beberapa tahap, sehingga mempermudah pengerjaan suatu projek
e.       Menyembunyikan informasi dari user, sehingga mencegah adanya perbuatan yang tidak diinginkan seperti, memodifikasi atau mengubah program yang telah dibuat
f.       Meningkatkan kemampuan pelacakan kesalahan, jika terjasi suatu keslahan, kita ahanya mencari fungsi yang bersangkutan saja, tidak perlu mencari kesalahan tersebut di seluruh program.
Pada umumnya, fungsi memerlukan masukan yang disebut parameter atau argument. Hasil akhir fungsi akan berupa nilai (niali balik fungsi)
Tipe_data berfungsi untuk menentukan tipe keluaran fungsi yang dapat berupa salah satu tipe data C++ yang berlaku, missal char atau integer.
Default tipe data atau tipe data yang tidak disebutkan, maka akan dianggap sebagai integer.
Jenis-jenis fungsi pada C++
Ada dua jenis fungsi pada C++, yaitu:
1.      Void (fungsi tanpa nilai balik)
Fungsi yang void sering juga prosedur. Disebut void karena fungsi tersebut tidak mengembalikan suatu nilai keluaran yang didapat dari hasil proses funsi tersebut.
Ciri-ciri dari jenis fungsi void adalah sebagai berikut:
a.       Tidak adanya keyword return
b.      Tidak adanya tipe data di dalam deklarasi fungsi
c.       Menggunakan keywoard void
d.      Tidak dapat langsung ditampilkan hasilnya
e.       Tidak memiliki nilai kembalian fungsi
f.       Keywoard void juga digunakan jika suatu function tidak mengandung suatu parameter apapun
2.      Non-Void (fungsi dengan nilai balikan)
Fungsi non-void disebut juga dengan function. Disebut non-void karena mengemabalikan nilai kembalian yang berasal dari keluaran hasil proses function tersebut.
Ciri-ciri dari jenis fungsi non-void adalah:
a.       Adanya keywoard return
b.      Ada tipe data yang mengawali fungsi
c.       Tidak adanya keyword void
d.      Memiliki nilai kembalian
e.       Dapat dianalogikan sebagai suatu variabel yang memiliki tipe data tertentu
f.       Sehingga dapat langsung ditampilkan hasilnya
g.      Non-void: int jumlah(int a, int b)
Protype Function
Sebuah program C++ dapat terdiri dari banyak fungsi. Salah satunya fungsi tersebut harus bernama main(). Jika fungsi yang lain dituliskan setelah fungsi main(), sebelum fungsi main, harus ditambahkan prototype function agar fungsi tersebut dapat dikenali. Hal tersebut tidak berlaku jika penulisannya dilakukan sebelum fungsi main()
Call by Value dan Call by Refrence
Ada dua cara pemanggilan fungsi, yaitu:
1.      Call by value
Pemanggilan fungsi dengan melewatkan nilai parameter variabel dalam definisi fungsi. Fungsi tersebut akan mengolah nilai yang dikirmkan kepadanya. Misalnya :
float bayar = 5000;
float tax = calcSalesTax (bayar);

dapat juga merupakan suatu konstanta:
hitung(2,3);
tulis("A");
2.      Call by reference
Pemanggilan dengan referensi merupakan suatu usaha melewatkan alamat dari suatu variabel ke dalam fungsi. Dengan pengubahan dilakukan di dalam fungsi untuk mengubah variabel di luar fungsi. Misalnya :
A bernilai 20, maka X juga bernilai 20
B bernilai 30, maka Y juga bernilai 30
Selanjutnya nilai X dan Y diproses, tetapi nilai A dan B akan tetap. Metode Cll by Refrence menggunakan operator pointer ‘&’ dan ‘*’ untuk mengirimkan alamat variabel ke suatu fungsi.
Fungsi Rekursif

Fungsi rekursif adalah fungsi yang memangil dirinya sendiri. Artinya, fungsi tersebut dipanggil di dalam tubuh funsi itu sendiri. Parameter yang dilewatkan berubah sebanyak fungsi itu dipanggil. Untuk lebih jelasnya, paham latihannya. Sintaks berikut masih banyak kesalahan, terutama pada script eror dan logic eror


Tugas Praktikum 1
Pemrograman C++

Nama Program                      : Menampilkan Permutasi
Bahasa Pemrograman          : C++
Compiler                                : MinGW Developer Studio
Script Program                      :
#include <iostream.h>
#include <conio.h>

int faktorial (int x);
int main()

{
            int n, r, permutasi;
            cout<<"Syaiful Ulum\n";
            cout<<"140534603100\n";
            cout<<"S1 PTE C\n\n";
            cout<<"Program Menghitung Permutasi (nPr)\n";
            cout<<endl;
           
            cout<<"Maukkan nilai n: ";
            cin>>n;
            cout<<"Masukan nilai r: ";
            cin>>r;
            permutasi=faktorial(n)/faktorial(n-r);
            cout<<"Permutasinya adalah: "<<permutasi;
            getch();
}

int faktorial (int n)
{
            int fak;
            if (n<=1)
            {
                        fak=1;
            }
            else
            {
                        fak=n*faktorial(n-1);
            }
            return(fak);
}
Output Program :
Algoritma :
1.      Mulai
2.      Membuat fungsi factorial
3.      Mendeklarasikan variabel n, r dan permutasi
4.      Masukkan nilai n dan disimpan di variabel n
5.      Masukkan nilai r dan disimpan di variabel r
6.      Memanggil fungsi permutasi
7.      Menghitung nilai permutasi
a.       Memanggil fungsi permutasi
b.      Mendeklarasikan variabel fak
c.       Jika nilai dari variabel n bernilai 1 maka hasilnya fak adalah 1
d.      Jika tidak maka akan memanggil dirinya sendiri dengan rumus factorial(n)/factorial(n-r)
8.      Menampilkan output atau hasil permutasi
9.      Selesai
  
Penjelasan Program :
Program di atas digunakan untuk menghitung permutasi. Program ini menggunakan file header iostream dan conio. Mengapa menggunakan header iostream karena manggunakan cout dan cin. Cout sebagai output atau keluaran dan cin digunakan untuk masukan atau input. Untuk header conio karena pada program ini menggunakan getch. Program ini menggunakan fungsi yang mendeklarasikan factorial dan x yang bertipe data integer. Lalu mendeklarasikan n, r dan permutasi. Setelah itu user menginputkan nilai n yang kemdian disimpan di variabel n, user menginputkan nilai r yang disimpan di variabel r dan memasukkan rumus permutasi yaitu permutasi=factorial(n)/factorial(n-r). lalu program akan menampilkan nilai permutasinya yang akan disimpan di variabel permutasi yang dideklaraskan sebelumnya. Kemudian program ini menggunakan fungsi factorial yang bertipe data integer. Setelah itu di dalam fungsi program mendeklarasikan variabel fak yang bertipe data integer. Menggunakan pengkondisian if, jika nilai variabel n kurang dari sama dengan 1 maka hasil variabel fak akan satu dan kondisi tersebut salah maka nilai dari variabel fak adalah n*factorial(n-) dan program akan kembali ke variabel fak lalu program akan menampilkan output.

KESIMPULAN
Dapat kita simpulkan bahwa fungsi digunakan untuk mengurangi script program sehingga programmer tidak banyak-banyak menuliskan script. Memecah masalah menjadi kecil agar penyelesainnya lebuh mudah dan sederhana dan memiliki karakter khusus. Fungsi juga mempunya banyak keuntungan, yaitu:
a.         Dapat dikerjakan oleh beberapa orang agar lebih mudah koordinasinya
b.        Memudahkan dokumentasi
c.         Lebih mudah mencari kesalahan
d.        Memodifikasi dapat dilakukan tanpa menganggu jalannya program lain
Fungsi bersifat sensitive, jadi apabila ingin menuliaskan script harus lebih teliti. Argumennya harus sama dengan yang dideklarasikan.
Kata void digunakan sebagai tipe-kembali untuk menunjukkan bahwa fungsi tidak mengembalikan suatu nilai apapun. Suatu fungsi yang tidak menuliskan tipe-kembali dianggap oleh kompilator mempunyai tipe-kembali int. Daftar parameter merupakan suatu daftar deklarasi dari parameter yang diterima oleh fungsi pada saat dipanggil, yang masing-masing dipisahkan oleh tanda koma (,). Jika fungsi tidak menerima suatu nilai apapun, maka daftar-parameter diisi void. Deklarasi dan pernyataan di dalam fungsi ditulis di antara tanda kurung kurawal { … } yang semuanya disebut dengan tubuh fungsi (function body). Di dalam tubuh fungsi terdapat pernyataan yang menunjukkan nilai yang dihasilkan oleh fungsi, yaitu:
return ekspresi. Jenis-jenis fungsi :
1.      Void (fungsi tanpa nilai balik). Disebut void karena fungsi tersebut tidak mengembalikan suatu nilai keluaran yang didapat dari hasil proses fungsi tersebut.
2.      Non-Void (fungsi dengan nilai balik). Disebut non-void karena mengembalikan nilai kembalian yang berasal dari keluaran hasil proses function tersebut .

DAFTAR RUJUKAN

Tidak ada komentar:

Posting Komentar