Fungsi Nisa’ul Hafidhoh [email protected] 08156114760 Paradigma Pemrograman Deklaratif / predikatif Prosedural / imperatif Paradigma Pemrograman Object Oriented Fungsional 2 Paradigma Fungsional • Didasari oleh konsep pemetaaan dan fungsi pada matematika. • Fungsi dapat berbentuk sebagai fungsi "primitif", atau komposisi dari fungsi-fungsi lain yang telah terdefinisi. • Dasar pemecahan masalah: Transformasional – Suatu rantai transformasi dari sebuah keadaan awal menuju ke suatu rantai keadaan akhir, yang mungkin melalui proses antara. 3 Fungsi • Fungsi adalah pemetaan suatu domain ke range berdomain tertentu. • Secara algoritmik, sebuah fungsi akan menerima suatu nilai yang diberikan lewat parameter formal bertype tertentu (jika ada) dan menghasilkan suatu nilai sesuai dengan domain yang didefinisikan dalam spesifikasi fungsi. – Parameter formal : Nilai masukan yang diberi nama dan dijelaskan typenya 4 Contoh Fungsi Matematika • Fungsi f(x) dengan satu parameter x didefinisikan sebagai: f(x) = x2 + 3x – 5 – jika x = 4 maka f(x) akan menghasilkan 23 – jika x = 1 maka f(x) akan menghasilkan -1 • f(x,y) = x2 + 3xy - 5y – 1 adalah fungsi dengan dua parameter x dan y – jika diberi harga x = 0 dan y = 0 maka f(x,y) akan menghasilkan -1 – jika diberi harga x = 1 dan y=0 maka f(x,y) akan menghasilkan 0 5 Spesifikasi Fungsi • Sebelum digunakan (dipanggil), suatu fungsi harus dideklarasikan dan didefinisikan terlebih dahulu. • Bentuk umum pendeklarasian fungsi : function nama_fungsi(parameter_fungsi) -> tipe_fungsi; • Sedangkan bentuk umum pendefinisian fungsi : function nama_fungsi(parameter_fungsi) -> tipe_fungsi { statement statement .……... ->kembalian_fungsi } 6 Notasi Definisi Fungsi function NAMAFUNGSI (<list-parameter-input>) → <type hasil> { Spesifikasi fungsi: diberikan ... menghasilkan ... } KAMUS LOKAL { Semua nama yang dipakai dalam algoritma/realisasi fungsi } ALGORITMA { Deretan instruksi algoritmik : assignment, input, output, analisis kasus, pengulangan } { Pengiriman harga di akhir fungsi, harus sesuai dengan type hasil} → hasil Contoh: function Tambah (x:integer, y:integer) → integer {Diberikan x dan y integer, menghasilkan integer hasil tambah x dan y } KAMUS LOKAL ALGORITMA →(x+y) 7 Pemanggilan Fungsi Program POKOKPERSOALAN {Spesifikasi : Input, Proses, Output} KAMUS { Semua nama yang dipakai dalam algoritma } function NAMAF (<list nama parameter formal/input>) → <type hasil> ALGORITMA { Deretan instruksi pemberian nilai, input, output, analisis kasus, pengulangan yang memakai fungsi } { Harga yang dihasilkan fungsi juga dapat dipakai dalam ekspresi } nama ← NAMAFUNGSI(<list parameter aktual>) output ( NAMAFUNGSI(<list parameter aktual>) ) { Harga yang dihasilkan fungsi juga dapat dipakai dalam ekspresi } 8 Contoh Pemanggilan Fungsi • Fungsi yang telah dideklarasi dan didefinisikan dapat dipanggil oleh program utama / fungsi lain Program ContohTambah {Dibaca masukan x dan y dan menuliskan hasil penjumlahannya} KAMUS x : integer { data } y : integer { data } jumlah : integer { Hasil penjumlahan x dan y} function Tambah(x,y:integer) → integer ALGORITMA input (x,y) jumlah ← Tambah(x,y) output (jumlah) 9 Contoh dalam Program #include <stdio.h> #include <stdlib.h> int Tambah(int a, int b); //deklarasi fungsi int a,b,c; main() { printf("masukkan a: ");scanf("%d",&a); printf("masukkan b: ");scanf("%d",&b); } //pemanggilan fungsi c=Tambah(a,b); printf(“Hasil Penjumlahan= %d",c); int Tambah(int a, int b) { return(a+b); } //definisi fungsi 10 Tampilan Program 11 Fungsi Terdefinisi • Fungsi Pustaka / library function • Fungsi yang sudah diberikan oleh sistem dan tinggal dipakai (dipanggil). • Fungsi terdefinisi selalu diberikan daftar dan spesifikasinya (domain + range). 12 Fungsi Pustaka – Operasi String [1] Fungsi Operasi String (tersimpan dalam header file “string.h”) ♦ strcpy() • Berfungsi untuk menyalin suatu string asal ke variable string tujuan. • Bentuk umum : strcpy(var_tujuan, string_asal); ♦ strlen() • Berfungsi untuk memperoleh jumlah karakter dari suatu string. • Bentuk umum : strlen(string); 13 Contoh Program 14 Fungsi Pustaka – Operasi String [1] ♦ strcat() • Digunakan untuk menambahkan string sumber ke bagian akhir dari string tujuan. • Bentuk umum : strcat(tujuan, sumber); ♦ strupr() • Digunakan untuk mengubah setiap huruf dari suatu string menjadi huruf capital. • Bentuk umum : strupr(string); ♦ strlwr() • Digunakan untuk mengubah setiap huruf dari suatu string menjadi huruf kecil semua. • Bentuk umum : strlwr(string); 15 Contoh Program 16 Fungsi Pustaka – Operasi Karakter [1] Fungsi Operasi Karakter (tersimpan dalam header “ctype.h”) ♦ islower() • Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter merupakan huruf kecil. • Bentuk umum : islower(char); ♦ isupper() • Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter merupakan huruf kapital. • Bentuk umum : isupper(char); 17 Fungsi Pustaka – Operasi Karakter [2] ♦ isdigit() • Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter merupakan sebuah digit. • Bentuk umum : isdigit(char); ♦ tolower() • Fungsi akan mengubah huruf capital menjadi huruf kecil. • Bentuk umum : tolower(char); ♦ toupper() • Fungsi akan mengubah huruf kecil menjadi huruf kapital. • Bentuk umum : toupper(char); 18 Contoh Program 19 Fungsi Pustaka – Operasi Matematik Fungsi Operasi Matematik (tersimpan dalam header “math.h” dan “stdlib.h”) ♦ sqrt() • Digunakan untuk menghitung akar dari sebuah bilangan. • Bentuk umum : sqrt(bilangan); ♦ pow() • Digunakan untuk menghitung pemangkatan suatu bilangan. • Bentuk umum : pow(bilangan, pangkat); 20 Contoh Program 21