T0616 ALGORITMA DAN PEMROGRAMAN (9) SUBANDIJO UNIVERSITAS BINA NUSANTARA FAKULTAS ILMU KOMPUTER JAKARTA, 2005 7/11/2017 T0616 - Algoritma dan Pemrograman 1 FUNGSI (1) • SUBPROGRAM ADALAH BAGIAN PROGRAM DENGAN TUGAS KHUSUS. POPULER DENGAN NAMA MODUL. DISEBUT FUNGSI DI BAHASA C. • MODUL DIBENTUK DENGAN MENGELOMPOKKAN SEJUMLAH PERNYATAN UNTUK MENYELESAIKAN TUGAS TERTENTU. • IA DIPERLUKAN JIKA KELOMPOK PERNYATAAN TERSEBUT KERAP DIGUNAKAN DI TEMPAT LAIN DALAM PROGRAM. 7/11/2017 T0616 - Algoritma dan Pemrograman 2 PEMROGRAMAN MODULAR • PEMBAGIAN PROGRAM MENJADI MODULMODUL DISEBUT PEMROGRAMAN MODULAR. • IMPLEMENTASI DI BAHASA C MENGGUNAKAN FUNGSI. D 7/11/2017 T0616 - Algoritma dan Pemrograman 3 PROSES MODULARISASI PROGRAM UTAMA SUB_PROG_1 SUB_PROG_2 SUB_PROG_21 7/11/2017 SUB_PROG_3 SUB_PROG_22 T0616 - Algoritma dan Pemrograman 4 KEUNTUNGAN MODUL (1) • RANCANGAN TOP-DOWN DENGAN TEKNIK SUBGOAL. PROGRAM BESAR DIBAGI MENJADI MODUL-MODUL YANG LEBIH KECIL. • DAPAT DIKERJAKAN OLEH LEBIH DARI SATU ORANG DENGAN KOORDINASI YANG RELATIF MUDAH. • MENCARI KESALAHAN RELATIF LEBIH MUDAH KARENA ALUR LOGIKA LEBIH JELAS DAN KESALAHAN DILOKALISIR DALAM SATU MODUL. 7/11/2017 T0616 - Algoritma dan Pemrograman 5 KEUNTUNGAN MODUL (2) • MODIFIKASI DAPAT DILAKUKAN TANPA MENGUBAH PROGRAM SECARA KESELURUHAN. • MEMPERMUDAH DOKUMENTASI. 7/11/2017 T0616 - Algoritma dan Pemrograman 6 SIFAT-SIFAT MODUL YANG BAIK • FAN IN TINGGI. MAKIN KERAP MODUL DIGUNAKAN MAKIN TINGGI FAN IN. • FAN OUT RENDAH. MAKIN KHUSUS SIFAT MODUL MAKIN RENDAH FAN OUT. • SELF CONTAINED ATAU OTONOM: MEMENUHI KEBUTUHAN SENDIRI. 7/11/2017 T0616 - Algoritma dan Pemrograman 7 FUNGSI C • ADA DUA TIPE FUNGSI YAITU LIBRARY FUNCTION DAN USER DEFINED FUNCTION. • LIBRARY FUNCTION ADALAH KOLEKSI PRE-DEFINED FUNCTION YANG DIAKSES MELALUI HEADER FILE. 7/11/2017 /*library function*/ #include<stdio.h> #include<math.h> main() { int i; for(i=0; i<6; i++) printf(“\n%d%f”,i,sqrt(i)); } T0616 - Algoritma dan Pemrograman 8 USER DEFINED FUNCTION (1) • FUNGSI YANG DISUSUN PEMROGRAM • SINTAKS <TIPE_FUNGSI> NAMA_FUNGSI(DAFTAR_PAR) { DEKLARASI VARIABEL LOKAL. PERNYATAAN_PERNYATAAN; … RETURN (EKSPRESI); } 7/11/2017 T0616 - Algoritma dan Pemrograman 9 USER DEFINED FUNCTION (2) • FUNGSI BISA DILETAKKAN DI ATAS ATAU DI BAWAH FUNGSI MAIN(). JIKA DI BAWAH FUNGSI MAIN() IA PERLU DIDEKLARASIKAN TERLEBIH DULU UNTUK MENENTUKAN APA TIPE FUNGSI, APA NAMA FUNGSI, APA TIPE PARAMETER FUNGSI. DI C, DIKENAL DENGAN NAMA PROTOTIPE FUNGSI 7/11/2017 T0616 - Algoritma dan Pemrograman 10 PROTOTIPE FUNGSI • SEJUMLAH KOMPILATOR C MENGHENDAKI AGAR FUNGSI DIDEKLARASIKAN DI DALAM MAIN() SEBELUM IA DIDEFINISIKAN. KOMPILATOR LAIN MENGHENDAKI AGAR DEKLARASI FUNGSI DI ATAS FUNGSI MAIN(). CARA PENULISAN JUGA BERBEDA, TERGANTUNG PADA KOMPILATOR YANG DIGUNAKAN. 7/11/2017 T0616 - Algoritma dan Pemrograman 11 PROTOTIPE FUNGSI (2) • METODE LAMA int sum(int, int); float conv(int, float); void f(char, double); 7/11/2017 • METODE BARU int sum(int a, int b); float conv(int x, float y); void f(char c, double z); T0616 - Algoritma dan Pemrograman 12 PARAMETER ATAU ARGUMEN • PARAMETER ADALAH INTERFACE YANG DIGUNAKAN UNTUK TUKAR INFORMASI ANTARA CALLED FUNCTION (PARAMETER FORMAL) DAN CALLING FUNCTION (PARAMETER AKTUAL). • SAAT FUNGSI DIPANGGIL PARAMETER AKTUAL DIKIRIM KE PARAMETER FORMAL PASANGANNYA. TRANSFER PARAMETER INI DISEBUT CALL BY VALUE KARENA YANG DIKIRIM ADALAH NILAI (R-VALUE) SUATU VARIABEL. 7/11/2017 T0616 - Algoritma dan Pemrograman 13 CONTOH CALL BY VALUE #include<stdio.h> int kubik(int x) { return (x* x * x); } 7/11/2017 main() { int n= 1; while(n!0) { scanf(“%d “, &n); printf(“%d”, kubik(n)); printf(“\n”); } } T0616 - Algoritma dan Pemrograman 14 RETURN (EKSPRESI) • MENGALIHKAN KONTROL DARI CALLED FUNCTION KE CALLING FUNCTION. • MENGEMBALIKAN NILAI EKSPRESI KE CALLING FUNCTION. • HANYA DAPAT MENGIRIM SATU NILAI. • KADANG-KADANG DITULIS RETURN EKSPRESI. • TIDAK HARUS DITULIS DI AKHIR FUNGSI. IA DAPAT MUNCUL DISEMBARANG LOKASI. 7/11/2017 T0616 - Algoritma dan Pemrograman 15 CONTOH char hurufBesar(void) { char kar; kar = getche(); /*asumsi karakter alphabetik */ if(kar>64 && kar<91) return (kar+32); else return(kar); } 7/11/2017 T0616 - Algoritma dan Pemrograman 16 TIPE FUNGSI (1) • TIPE NILAI YANG DIHASILKAN OLEH FUNGSI. NILAI DEFAULT ADALAH INTEGER. FUNGSI YANG TIDAK MENGIRIM NILAI BALIK DISEBUT FUNGSI VOID. • FUNGSI INTEGER min(int x, int y) { int z; z = (x<=y)? x : y; return z; } 7/11/2017 T0616 - Algoritma dan Pemrograman 17 TIPE FUNGSI (2) • FUNGSI FLOAT float luas(float jari2) { return 4*3.14159*jari2; } 7/11/2017 • FUNGSI VOID void max(int x, int y) { int z; z = (x<=y)? X : y; printf(“Max = %d”, z); return; } T0616 - Algoritma dan Pemrograman 18 FUNGSI FAKTORIAL, PERMUTASI DAN KOMBINASI int fak(int n) { if(n<0) return 0; int f = 1; while (n>1) f *= n--; return f; } 7/11/2017 int perm(int n, int k) { if(n<0||k<0||k>n)return0; return fak(n)/fak(n-k); } int komb(int n, int k) { if(n<0||k<0||k>n)return0; return fak(n)/(fak (k) * fak(n-k)); } T0616 - Algoritma dan Pemrograman 19 THE END “...ALL YOU NEED IS LOVE…” 7/11/2017 T0616 - Algoritma dan Pemrograman 20
© Copyright 2024 Paperzz