Pertemuan 6 Dasar Pemrograman Komputer Pemrograman Modular 1
Tujuan Memberikan pemahaman mengenai berbagai macam tipe fungsi berkaitan dengan argumen input dan result value serta bagaimana mengimplementasikannya dalam bahasa C. 2
Daftar Argumen/Parameter Daftar Argumen/Parameter : Memungkinkan terjadinya komunikasi antara main function dan fungsi-fungsi lain dalam program Membuat fungsi menjadi lebih serba guna karena daftar argumen memungkinkan fungsi untuk dapat memanipulasi data yang berbeda setiap kali fungsi tersebut dipanggil Return statement : mengembalikan satu result value dari suatu fungsi 3
Daftar Argumen/Parameter Output parameter : mengembalikan banyak/lebih dari satu result value dari suatu fungsi. Parameter : Parameter input Parameter output 4
Fungsi Berdasarkan jumlah argumen dan result value yang dihasilkan (tipe fungsi), terdapat bermacam-macam fungsi sebagi berikut: Fungsi dengan beberapa argumen input dan satu hasil Fungsi dengan satu argumen input dan beberapa hasil Fungsi dengan parameter input/output dll 5
Fungsi dengan beberapa argumen input dan satu hasil Fungsi 6
Fungsi dengan beberapa argumen input dan satu hasil #include <stdio.h> #include <math.h> h> double scale(double x, int n); /* function prototype */ int main(void) { double num_1; int num_2; printf( Masukkan bilangan real > ); scanf( %lf, &num_1); printf( Masukkan bilangan integer > ); scanf( %d, &num_2); printf( Hasil pemanggilan fungsi scale adalah %f\n, scale(num_1, num_2); return(0); double scale(double x, int n) { double scale_factor; scale_factor=pow(10,n); return(x*scale e_ factor) 7
Fungsi dengan satu argumen input dan beberapa hasil Fungsi 8
Fungsi dengan satu argumen input dan beberapa hasil #include <stdio.h> #include <math.h> h> void separate(double num, char *signp, int *wholep, double *fracp); int main(void) { double value; char sn; int whl; double fr; printf( Masukkan nilai yang akan dianalisis > ); scanf( %lf, &value); separate(value, &sn, &whl, &fr); printf( Tanda bilangan : %c\n, sn); printf( Nilai magnitude bilangan : %d\n, whl); printf( Bagian pecahan dari bilangan : %.4f\n, fr); return(0); 9
Fungsi dengan satu argumen input dan beberapa hasil void separate(double num, char *signp, int *wholep, double *fracp) { double magnitude; if (num < 0) *signp= - ; else if (num==0) *signp= ; else *signp= + ; magnitude=fabs(num); *wholep=floor(magnitude); *fracp=magnitude - *wholep; 10
Fungsi dengan parameter input/output #include <stdio.h> double order(double *smp, double *lgp); /* function prototype t */ int main(void) { double num1, num2, num3; printf( Masukkan tiga bilangan yang dipisahkan dengan spase > ); scanf( %lf %lf %lf, &num1, &num2, &num3); order(&num1, &num2); order(&num1, &num3); order(&num2, &num3); printf( Bilangan sudah terurut: %.2f %.2f %.2f\n, num1, num2, num3); return(0); void order(double *smp, double *lgp) { double temp; if (*smp > *lgp) { temp = *smp; *smp=*lgp; *lgp=temp; 11
Tujuan Menghitung satu karakter atau angka tunggal Macam-Macam Fungsi Tipe Fungsi Sama dengan tipe dari nilai yang dihitung Parameter Parameter input untuk menampung data yang dikirim oleh fungsi pemanggil Hasil Statement return dengan satu buah nilai hasil Menampilkan void Parameter input Tidak ada hasil output yang berisi argumen karakter atau angka untuk menampung data yang dikirim oleh fungsi pemanggil 12
Macam-Macam Fungsi Tujuan Tipe Fungsi Parameter Hasil Menghitung beberapa karakter atau angka tunggal void Parameter input untuk menampung data yang dikirim oleh fungsi pemanggil. Parameter ouput berupa pointer untuk menampung hasil perhitungan. Hasil disimpan ke data dari fungsi pemanggil yang berupa pointer untuk parameter output. Tidak ada statement return. Memodifikasi nilai-nilai argumen void Parameter input/output berupa pointer. Data input diproses dan hasil perhitungan disimpan ditempat yang sama. Hasil disimpan ke data dari fungsi pemanggil yang berupa pointer untuk parameter output. Tidak ada statement return. 13
Ruang Lingkup Variabel #define MAX 950 #define LIMIT 200 Float ff; void one(int anarg, double second); int fun_two(int one, char anarg); int main(void) { int localvar;. void one(int anarg, double second) { int onelocal;. int fun_two(int one, char anarg) { int localvar;. 14
Ruang Lingkup Variabel Nama Variabel Visibel di one Visibel di fun_two Visibel di main MAX Ya Ya Ya LIMIT Ya Ya Ya main Ya Ya Ya localvar(main) tidak tidak Ya one (fungsi) Ya tidak Ya anarg(int) Ya tidak tidak second Ya tidak tidak onelocal Ya tidak tidak fun_two Ya Ya Ya one (parameter) tidak Ya tidak anarg(char) tidak Ya tidak localvar(fun_two) tidak Ya tidak 15
Referensi Bab 6, Modular Programming, Problem Solving and Program Design in C, Jeri R. Hanly dan Elliot B. Koffman, Addison Wesley, 2002 16