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 value dalam bahasa C.
2
Daftar Argumen/Parameter Daftar Argumen/Parameter :
Memungkinkan terjadinya komunikasi antara “main main function” function dan fungsi fungsi-fungsi fungsi lain dalam program Membuat fungsi g menjadi j lebih serba g 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 P t :
Parameter input Parameter output
4
Fungsi Berdasarkan jumlah argumen dan “result value” yang dihasilkan (tipe fungsi), terdapat bermacam-macam fungsi g sebagi g 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> #i l d < #include <math.h> th 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 u ( sca e_factor) ac o )
} 7
Fungsi dengan satu argumen input dan beberapa hasil
Fungsi
8
Fungsi dengan satu argumen input dan beberapa hasil #include <stdio.h> #i l d < #include <math.h> th 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 printf( Tanda bilangan : %c\n“, %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); * holep floor(magnit de) *wholep=floor(magnitude); *fracp=magnitude - *wholep; }
10
Fungsi dengan parameter input/output #include <stdio.h> d bl order(double double d (d bl **smp, d double bl *lgp); *l ) /* ffunction ti prototype t t */ int main(void) { double num1, num2, num3; printf(“Masukkan tiga bilangan yang dipisahkan dengan spase > “); scanf(“%lf scanf( %lf %lf %lf” %lf , &num1, &num1 &num2, &num2 &num3); order(&num1, &num2); order(&num1, &num3); order(&num2, &num3); printf(“Bilangan sudah terurut: %.2f %.2f %.2f\n”, num1, num2, num3); return(0); t (0)
} void order(double *smp, double *lgp) { double temp; if (*smp ( smp > *lgp) lgp) { temp = *smp; *smp=*lgp; *lgp=temp;
}
}
11
Macam-Macam Fungsi Tujuan
Tipe Fungsi
Parameter
Hasil
Menghitung satu karakter atau angka tunggal
Sama dengan tipe dari nilai yang dihitung
Parameter input untuk menampung data yang dikirim oleh fungsi pemanggil
Statement return dengan satu buah nilai hasil
Parameter P t input i t untuk menampung data yang dikirim oleh fungsi pemanggil
Tid k ada Tidak d h hasilil
Menampilkan M ilk void id output yang berisi argumen karakter atau angka
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 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 Fl t ff; 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) g( )
Ya
tidak
tidak
second
Ya
tidak
tidak
onelocal
Ya
tidak
tidak
fun two 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 Koffman, Wesley, 2002
16