Function dalam Bahasa C Universitas Mercu Buana Fakultas Teknik Industri Program Studi Teknik Informatika Mata Kuliah Algoritma dan Pemrograman I Oleh: Anis Cherid, MTI
Subprogram dalam Bahasa C Dalam Bahasa C, subprogram hanya terdiri dari satu jenis : function Dalam Bahasa C, subprogram hanya terdiri dari satu jenis : function Bahasa C tidak mengenal procedure, tetapi function dalam Bahasa C terdiri dari 2 jenis: Bahasa C tidak mengenal procedure, tetapi function dalam Bahasa C terdiri dari 2 jenis: function yang setara dengan procedure dalam Bahasa Pascal, disebut void function. function yang setara dengan procedure dalam Bahasa Pascal, disebut void function. function yang secara otomatis mengembalikan sebuah nilai, disebut typed function. function yang secara otomatis mengembalikan sebuah nilai, disebut typed function.
main(){ … /* baris program utama */ } void abc(){ … /* baris function */ } Ketentuan Membuat Void Function dalam Bahasa C Cara 1: Diletakkan sebelum program utama, dengan kata lain sebelum function main(). Cara 1: Diletakkan sebelum program utama, dengan kata lain sebelum function main().
main(){ … /* baris program utama */ } void abc(){ … /* baris function */ } Ketentuan Membuat Void Function dalam Bahasa C Cara 2: Diletakkan sesudah program utama, tetapi dengan menyertakan function prototype sebelum function main(). Cara 2: Diletakkan sesudah program utama, tetapi dengan menyertakan function prototype sebelum function main(). void abc(); /* function prototype*/
Ketentuan Membuat Void Function dalam Bahasa C Tanpa Parameter Keluaran, Tanpa Parameter Masukan. Tanpa Parameter Keluaran, Tanpa Parameter Masukan. #include void hapusbaris(void){ int i; gotoxy(1, wherey() ); for (i=1;i<=80;i++) printf(" "); } main(){ gotoxy(1,1); printf("Baris Satu\n"); printf("Baris Dua\n"); printf("Baris Tiga\n"); gotoxy(1,1); /*cursor ke baris 1*/ hapusbaris(); gotoxy(1,3); /*cursor ke baris 3*/ hapusbaris(); }
Ketentuan Membuat Void Function dalam Bahasa C Tanpa Parameter Keluaran, Tanpa Parameter Masukan. Tanpa Parameter Keluaran, Tanpa Parameter Masukan. #include void hapusbaris(void){ int i; gotoxy(1, wherey() ); for (i=1;i<=80;i++) printf(" "); } main(){ gotoxy(1,1); printf("Baris Satu\n"); printf("Baris Dua\n"); printf("Baris Tiga\n"); gotoxy(1,1); /*cursor ke baris 1*/ hapusbaris(); gotoxy(1,3); /*cursor ke baris 3*/ hapusbaris(); }
Ketentuan Membuat Void Function dalam Bahasa C Tanpa Parameter Keluaran, Tanpa Parameter Masukan. Tanpa Parameter Keluaran, Tanpa Parameter Masukan. #include void hapusbaris(void){ int i; gotoxy(1, wherey() ); for (i=1;i<=80;i++) printf(" "); } main(){ gotoxy(1,1); printf("Baris Satu\n"); printf("Baris Dua\n"); printf("Baris Tiga\n"); gotoxy(1,1); /*cursor ke baris 1*/ hapusbaris(); gotoxy(1,3); /*cursor ke baris 3*/ hapusbaris(); }
Ketentuan Membuat Void Function dalam Bahasa C Tanpa Parameter Keluaran, Tanpa Parameter Masukan. Tanpa Parameter Keluaran, Tanpa Parameter Masukan. #include void hapusbaris(void){ int i; gotoxy(1, wherey() ); for (i=1;i<=80;i++) printf(" "); } main(){ gotoxy(1,1); printf("Baris Satu\n"); printf("Baris Dua\n"); printf("Baris Tiga\n"); gotoxy(1,1); /*cursor ke baris 1*/ hapusbaris(); gotoxy(1,3); /*cursor ke baris 3*/ hapusbaris(); } Meskipun function tidak memiliki parameter masukan, pemanggilan funtion harus tetap menyertakan tanda kurung ().
Ketentuan Membuat Void Function dalam Bahasa C Satu buah parameter Satu buah parameter masukan masukan #include void cetakbintang(int x){ while (x>0){ printf("*"); x--; } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } Cara Kerja Program
Ketentuan Membuat Void Function dalam Bahasa C Satu buah parameter Satu buah parameter masukan masukan #include void cetakbintang(int x){ while (x>0){ printf("*"); x--; } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } Cara Kerja Program
Ketentuan Membuat Void Function dalam Bahasa C Lebih dari satu buah parameter masukan, satu jenis parameter masukan. Lebih dari satu buah parameter masukan, satu jenis parameter masukan. #include void bunyi(int frekuensi, int durasi){ /*** program lengkap dapat dilihat dengan melakukan klik terhadap hyperlink di bawah ini. ***/ } main(){ bunyi(440, 1000); bunyi(466, 1000); } Program Lengkap
Ketentuan Membuat Void Function dalam Bahasa C Lebih dari satu buah parameter masukan, satu jenis parameter masukan. Lebih dari satu buah parameter masukan, satu jenis parameter masukan. #include void bunyi(int frekuensi, int durasi){ /*** program lengkap dapat dilihat dengan melakukan klik terhadap hyperlink di bawah ini. ***/ } main(){ bunyi(440, 1000); bunyi(466, 1000); } Program Lengkap
Ketentuan Membuat Void Function dalam Bahasa C Lebih dari satu buah parameter masukan, satu jenis parameter masukan. Lebih dari satu buah parameter masukan, satu jenis parameter masukan. #include void bunyi(int frekuensi, int durasi){ /*** program lengkap dapat dilihat dengan melakukan klik terhadap hyperlink di bawah ini. ***/ } main(){ bunyi(440, 1000); bunyi(466, 1000); } Program Lengkap
Ketentuan Membuat Void Function dalam Bahasa C Lebih dari satu buah parameter masukan, lebih dari satu jenis parameter masukan. Lebih dari satu buah parameter masukan, lebih dari satu jenis parameter masukan. #include void cetakString(char *s, int posisi){ if (posisi==2){ gotoxy ((80-strlen(s))/2, wherey()) } else if (posisi==3){ gotoxy (80-strlen(s), wherey()) } else { gotoxy (1, wherey()); } printf(s); } main(){ cetakString("Cetak rata kiri", 1); cetakString("Cetak di tengah", 2); cetakString("Cetak rata kanan", 3); }
Ketentuan Membuat Void Function dalam Bahasa C Lebih dari satu buah parameter masukan, lebih dari satu jenis parameter masukan. Lebih dari satu buah parameter masukan, lebih dari satu jenis parameter masukan. #include void cetakString(char *s, int posisi){ if (posisi==2){ gotoxy ((80-strlen(s))/2, wherey()) } else if (posisi==3){ gotoxy (80-strlen(s), wherey()) } else { gotoxy (1, wherey()); } printf(s); } main(){ cetakString("Cetak rata kiri", 1); cetakString("Cetak di tengah", 2); cetakString("Cetak rata kanan", 3); }
Ketentuan Membuat Void Function dalam Bahasa C Lebih dari satu buah parameter masukan, lebih dari satu jenis parameter masukan. Lebih dari satu buah parameter masukan, lebih dari satu jenis parameter masukan. #include void cetakString(char *s, int posisi){ if (posisi==2){ gotoxy ((80-strlen(s))/2, wherey()) } else if (posisi==3){ gotoxy (80-strlen(s), wherey()) } else { gotoxy (1, wherey()); } printf(s); } main(){ cetakString("Cetak rata kiri\n", 1); cetakString("Cetak di tengah\n", 2); cetakString("Cetak rata kanan\n", 3); }
Ketentuan Membuat Void Function dalam Bahasa C Satu buah parameter masukan dan tiga buah parameter keluaran Satu buah parameter masukan dan tiga buah parameter keluaran #include void dekompDetik (long int x, int *jam, int *menit, int *detik){ *jam = x/3600; x = x % 3600; *menit = x/60; *detik = x % 60; } main(){ int j, m, d; dekompDetik(86399, &j, &m, &d); printf("86399 detik sama " "dengan %d jam %d menit " "%d detik", j, m, d); } Cara Kerja Program
Ketentuan Membuat Void Function dalam Bahasa C Satu buah parameter masukan dan tiga buah parameter keluaran Satu buah parameter masukan dan tiga buah parameter keluaran #include void dekompDetik (long int x, int *jam, int *menit, int *detik){ *jam = x/3600; x = x % 3600; *menit = x/60; *detik = x % 60; } main(){ int j, m, d; dekompDetik(86399, &j, &m, &d); printf("86399 detik sama " "dengan %d jam %d menit " "%d detik", j, m, d); } Cara Kerja Program
Ketentuan Membuat Void Function dalam Bahasa C Satu buah parameter masukan dan tiga buah parameter keluaran Satu buah parameter masukan dan tiga buah parameter keluaran #include void dekompDetik (long int x, int *jam, int *menit, int *detik){ *jam = x/3600; x = x % 3600; *menit = x/60; *detik = x % 60; } main(){ int j, m, d; dekompDetik(86399, &j, &m, &d); printf("86399 detik sama " "dengan %d jam %d menit " "%d detik", j, m, d); } Cara Kerja Program
Ketentuan Membuat Void Function dalam Bahasa C Satu buah parameter masukan dan tiga buah parameter keluaran Satu buah parameter masukan dan tiga buah parameter keluaran #include void dekompDetik (long int x, int *jam, int *menit, int *detik){ *jam = x/3600; x = x % 3600; *menit = x/60; *detik = x % 60; } main(){ int j, m, d; dekompDetik(86399, &j, &m, &d); printf("86399 detik sama " "dengan %d jam %d menit " "%d detik", j, m, d); } Parameter keluaran dibuat dengan menambahkan tanda * sebelum nama masing- masing parameter. Cara Kerja Program
Ketentuan Membuat Void Function dalam Bahasa C Satu buah parameter masukan dan tiga buah parameter keluaran Satu buah parameter masukan dan tiga buah parameter keluaran #include void dekompDetik (long int x, int *jam, int *menit, int *detik){ *jam = x/3600; x = x % 3600; *menit = x/60; *detik = x % 60; } main(){ int j, m, d; dekompDetik(86399, &j, &m, &d); printf("86399 detik sama " "dengan %d jam %d menit " "%d detik", j, m, d); } Di dalam void function, untuk menyimpan nilai dalam parameter keluaran, nama parameter keluaran juga dilengkapi dengan tanda * Cara Kerja Program
Ketentuan Membuat Void Function dalam Bahasa C Satu buah parameter masukan dan tiga buah parameter keluaran Satu buah parameter masukan dan tiga buah parameter keluaran #include void dekompDetik (long int x, int *jam, int *menit, int *detik){ *jam = x/3600; x = x % 3600; *menit = x/60; *detik = x % 60; } main(){ int j, m, d; dekompDetik(86399, &j, &m, &d); printf("86399 detik sama " "dengan %d jam %d menit " "%d detik", j, m, d); } Memanggil void function yang memiliki parameter keluaran, dilakukan dengan menambahkan tanda & pada masing-masing variabel yang menjadi argumen. Cara Kerja Program
Ketentuan Membuat Void Function dalam Bahasa C Satu buah parameter masukan/keluaran Satu buah parameter masukan/keluaran #include void lipatGanda (int *x){ *x = *x * 2; } main(){ int bil=4; lipatGanda(&bil); printf("%d",bil); }
Ketentuan Membuat Void Function dalam Bahasa C Satu buah parameter masukan/keluaran Satu buah parameter masukan/keluaran #include void lipatGanda (int *x){ *x = *x * 2; } main(){ int bil=4; lipatGanda(&bil); printf("%d",bil); }
Typed Function dalam Bahasa C #include float luas(int alas, int tinggi){ return (alas*tinggi)/2; } main(){ int x,y; printf("Masukkan panjang " "alas segitiga:"); scanf("%d",&x); printf("Masukkan tinggi " "segitiga:"); scanf("%d",&y); printf("Luas segitiga adalah " "%f", luas(x,y)); }
#include float luas(int alas, int tinggi){ return (alas*tinggi)/2; } main(){ int x,y; printf("Masukkan panjang " "alas segitiga:"); scanf("%d",&x); printf("Masukkan tinggi " "segitiga:"); scanf("%d",&y); printf("Luas segitiga adalah " "%d ", luas(x,y)); } Typed Function dalam Bahasa C Ketentuan Membuat Typed Function: Sama dengan ketentuan membuat void function Ditambah : Typed function harus menyertakan tipe data dari nilai yang dikembalikan. Typed function harus menyertakan baris instruksi yang mengembalikan nilai. Jika typed function tidak mencantumkan tipe data dari nilai yang dikembalikan, maka komputer menganggap bahwa tipe datanya adalah int. Tipe data dari nilai yang dikembalikan Baris instruksi yang mengembalikan nilai
Typed Function dalam Bahasa C PEMANGGILAN TYPED FUNCTION YANG BENAR: printf("%10.2f", luas(10,5)); printf("%f", luas(10*5, 20)); int i=luas(10,10); § luas(10,10); § § § Menyimpan nilai bertipe float yang dikembalikan typed function ke dalam variabel bertipe integer tidak akan menimbulkan pesan kesalahan. Hal ini hanya mengakibatkan angka di belakang koma diabaikan oleh komputer. § § Bahasa C mengijinkan ekspresi ditulis sebagai statement yang berdiri sendiri. Akibatnya, meskipun "pemanggilan typed function" adalah ekspresi yang mengembalikan nilai, pemanggilan typed function sebagai statement tidak akan menimbulkan pesan kesalahan. Contoh ekspresi lain yang tidak akan menimbulkan kesalahan jika ditulis sebagai statement yang berdiri sendiri: x+3;2*2;a+10;
Pemanggilan Function dalam Bahasa C PEMANGGILAN VOID FUNCTION DAN TYPED FUNCTION YANG SALAH: Jika prototype function: lipatganda(int *x); dipanggil dengan cara: lipatganda(10), atau lipatganda(a) Salah karena parameter function adalah parameter keluaran, sehingga harus dipanggil dengan menggunakan argumen berupa alamat variabel. Misalnya, lipatganda(&a). Jika prototype function: int luas(int x, int y); dipanggil dengan cara: luas(600,200,500), atau luas(a) Salah karena parameter function ada 2 buah, tetapi dipanggil hanya menggunakan 3 buah argumen atau 1 buah argumen.
Mengirimkan Argumen Berjenis Array ke dalam Function Yang bisa menjadi argumen ketika memanggil sebuah function adalah: Yang bisa menjadi argumen ketika memanggil sebuah function adalah: alamat variabel array alamat variabel array nilai dari sebuah elemen array nilai dari sebuah elemen array Dalam Bahasa C, tidak dimungkinkan mengirimkan keseluruhan salinan array ke dalam function. Dalam Bahasa C, tidak dimungkinkan mengirimkan keseluruhan salinan array ke dalam function.
BAGIAN AKHIR PRESENTASI FUNCTIONDALAM BAHASA PEMROGRAMAN C
Cara Kerja Program Ketika program dieksekusi, baris pertama dalam function main() akan dilaksanakan. Akibatnya, dalam "memori program utama" disediakan tempat untuk variabel i. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } } i
Cara Kerja Program Kemudian, baris kedua dilaksanakan. Tepatnya bagian yang mengubah nilai variabel i. Akibatnya, nilai variabel i berubah menjadi 1. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } } 1 i
Cara Kerja Program Kemudian nilai variabel i diuji pada bagian pemeriksaan kondisi. Karena i<=5 maka instruksi-instruksi dalam for-loop akan dilaksanakan. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } } 1 i
Cara Kerja Program Baris pertama dalam for-loop dilaksanakan. Baris ini merupakan baris function-call, sehingga pelaksanaan program melompat ke function cetakbintang(). void cetakbintang(int x){ while (x>0){ printf("*"); x--; } } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } } 1 i
Cara Kerja Program Parameter function cetakbintang() adalah variabel x. Akibatnya, begitu function ini dipanggil, di dalam "memori function" disediakan tempat untuk variabel x. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } 1 i x
Cara Kerja Program Karena function ini dipanggil dengan argumen i, maka nilai variabel i akan dikirim ke dalam function dan menjadi nilai parameter x. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } 1 i 1 x
Cara Kerja Program Di dalam function, dilakukan pemeriksaan kondisi terhadap variabel x. Karena x==1, sehingga x>0, maka baris-baris instruksi dalam while-loop akan dilaksanakan. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } } 1 i 1 x
Cara Kerja Program Di dalam while-loop, instruksi menampilkan output dilaksanakan. Akibatnya, pada layar monitor muncul sebuah tanda bintang. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } } 1 i 1 x *
Cara Kerja Program Baris kedua dilaksanakan. Akibatnya, nilai variabel x berkurang menjadi 0. Putaran 1 while-loop selesai dilaksanakan. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } } 1 i 10 x *
Cara Kerja Program Selanjutnya, pemeriksaan kondisi dilakukan untuk memeriksa apakah while-loop akan berputar sekali lagi. Karena x==0, maka tidak ada putaran kedua dan pelaksanaan program keluar dari while-loop. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } } 1 i 0 x *
Cara Kerja Program Karena sesudah while-loop tidak terdapat instruksi lain, maka pelaksanaan program keluar dari function dan kembali ke program utama. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } } 1 i 0 x *
Cara Kerja Program Ketika instruksi printf dilaksanakan, posisi cursor pindah ke baris baru, sehingga penulisan berikutnya akan terjadi di baris ke-2. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } } 1 i *
Cara Kerja Program Kemudian pelaksanaan program kembali ke awal for-loop. Akibatnya nilai variabel i bertambah menjadi 2. Putaran ke-1 for- loop selesai. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } } 12 i *
Cara Kerja Program Selanjutnya diperiksa apakah for-loop akan berputar untuk ke-2 kalinya. Karena variabel i<=5, maka for- loop akan memasuki putaran ke-2. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } } 2 i *
Cara Kerja Program Baris pertama dalam for-loop dilaksanakan. Function cetakbintang() dipanggil untuk yang ke-2 kalinya. Kali ini menggunakan argumen variabel i yang bernilai 2. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } } 2 i * 2 x
Cara Kerja Program Di dalam function, yang pertama dilakukan adalah pemeriksaan kondisi terhadap variabel x. Karena x==2, sehingga x>0, maka baris-baris instruksi dalam while-loop akan dilaksanakan. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } } 2 i 2 x *
Cara Kerja Program Di dalam while-loop, instruksi menampilkan output dilaksanakan. Akibatnya, pada layar monitor muncul tanda bintang ke-2. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } } 2 i 2 x *****
Cara Kerja Program Baris kedua dilaksanakan. Akibatnya, nilai variabel x berkurang menjadi 1. Putaran 1 while-loop selesai dilaksanakan. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } } 2 i 21 x ****
Cara Kerja Program Selanjutnya, pemeriksaan kondisi dilakukan untuk memeriksa apakah while-loop akan berputar sekali lagi. Karena x==1, sehingga x>0, maka while-loop akan memasuki putaran ke-2. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } } 2 i 1 x ****
Cara Kerja Program Di dalam putaran ke-2 while-loop, instruksi pertama dilaksanakan. Akibatnya, pada layar monitor muncul tanda bintang yang ke-3. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } } 2 i 1 x **** * **
Cara Kerja Program Baris kedua dilaksanakan. Akibatnya, nilai variabel x berkurang menjadi 0. Putaran 2 while-loop selesai dilaksanakan. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } } 2 i 10 x * **
Cara Kerja Program Selanjutnya, pemeriksaan kondisi dilakukan untuk memeriksa apakah while-loop akan berputar sekali lagi. Karena x==0, maka tidak ada putaran ke-3 dan pelaksanaan program keluar dari while-loop. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } } 2 i 0 x * **
Cara Kerja Program Karena sesudah while-loop tidak terdapat instruksi lain, maka pelaksanaan program keluar dari function dan kembali ke program utama. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } } 2 i 0 x * **
Cara Kerja Program Ketika instruksi printf dilaksanakan, posisi cursor pindah ke baris baru, sehingga penulisan berikutnya akan terjadi di baris ke-2. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } } 1 i * **
Cara Kerja Program Kemudian pelaksanaan program kembali ke awal for-loop. Akibatnya nilai variabel i bertambah menjadi 3. Putaran ke-2 for- loop selesai. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } } 23 i * **
Cara Kerja Program Selanjutnya diperiksa apakah for-loop akan berputar untuk ke-3 kalinya. Karena variabel i==3, sehingga i<=5, maka for- loop akan memasuki putaran ke-3. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } } 3 i * **
Cara Kerja Program Pada putaran ke-3 for-loop, dihasilkan 3 buah tanda bintang. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } } 34 i * ** ***
Cara Kerja Program Pada putaran ke-4 for-loop, dihasilkan 4 buah tanda bintang. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } } 45 i * ** *** ****
Cara Kerja Program Pada putaran ke-5 for-loop, dihasilkan 5 buah tanda bintang. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } } 56 i * ** *** **** *****
Cara Kerja Program Sesudah putaran ke- 5, i==6, sehingga tidak memenuhi kondisi untuk dilaksanakannya putaran ke-6 for- loop. Akibatnya, pelaksanaan program akan keluar dari for-loop. Program berakhir. void cetakbintang(int x){ while (x>0){ printf("*"); x--; } } main(){ int i; for (i=1;i<=5;i++){ cetakbintang(i); printf("\n"); } } 6 i * ** *** **** *****
BAGIAN AKHIR PRESENTASI CARA KERJA PROGRAM YANG MENGANDUNG VOID FUNCTION DENGAN SEBUAH PARAMETER MASUKAN
Cara Kerja Program void dekompDetik (long int x, int *jam, int *menit, int *detik){ *jam = x/3600; x = x % 3600; *menit = x/60; *detik = x % 60; } main(){ int j, m, d; dekompDetik(86399, &j, &m, &d); printf("86399 detik " "sama dengan " "%d jam %d menit " "%d detik", j, m, d); } Ketika program dieksekusi, baris pertama dalam function main() akan dilaksanakan. Akibatnya, dalam "memori program utama" disediakan tempat untuk variabel j, m dan d. jmd
Cara Kerja Program void dekompDetik (long int x, int *jam, int *menit, int *detik){ *jam = x/3600; x = x % 3600; *menit = x/60; *detik = x % 60; } main(){ int j, m, d; dekompDetik(86399, &j, &m, &d); printf("86399 detik " "sama dengan " "%d jam %d menit " "%d detik", j, m, d); } Baris kedua dilaksanakan. Akibatnya, function dekompDetik() dipanggil. jmd
Cara Kerja Program void dekompDetik (long int x, int *jam, int *menit, int *detik){ *jam = x/3600; x = x % 3600; *menit = x/60; *detik = x % 60; } main(){ int j, m, d; dekompDetik(86399, &j, &m, &d); printf("86399 detik " "sama dengan " "%d jam %d menit " "%d detik", j, m, d); } Function ini memiliki 1 parameter masukan, yaitu x. Akibatnya, dalam "memori function" disediakan tempat untuk variabel x. jmd x
Cara Kerja Program void dekompDetik (long int x, int *jam, int *menit, int *detik){ *jam = x/3600; x = x % 3600; *menit = x/60; *detik = x % 60; } main(){ int j, m, d; dekompDetik(86399, &j, &m, &d); printf("86399 detik " "sama dengan " "%d jam %d menit " "%d detik", j, m, d); } Function ini juga memiliki 3 parameter berupa variabel POINTER, yaitu jam, menit dan detik. Akibatnya, dalam "memori function" disediakan tempat untuk ketiga variabel POINTER ini. jmd x jammenitdetik
Cara Kerja Program void dekompDetik (long int x, int *jam, int *menit, int *detik){ *jam = x/3600; x = x % 3600; *menit = x/60; *detik = x % 60; } main(){ int j, m, d; dekompDetik(86399, &j, &m, &d); printf("86399 detik " "sama dengan " "%d jam %d menit " "%d detik", j, m, d); } Salah satu argumen pemanggilan function adalah nilai Akibatnya, nilai parameter x diisi dengan jmd x jammenitdetik
Cara Kerja Program void dekompDetik (long int x, int *jam, int *menit, int *detik){ *jam = x/3600; x = x % 3600; *menit = x/60; *detik = x % 60; } main(){ int j, m, d; dekompDetik(86399, &j, &m, &d); printf("86399 detik " "sama dengan " "%d jam %d menit " "%d detik", j, m, d); } Argumen pemanggilan yang lainnya adalah &j, &m dan &d, yang berarti alamat variabel j, m dan d. Perhatikan apa yang terjadi ketika masing-masing argumen mengisi nilai dari parameter POINTER. jmd x menitdetikjam
Cara Kerja Program void dekompDetik (long int x, int *jam, int *menit, int *detik){ *jam = x/3600; x = x % 3600; *menit = x/60; *detik = x % 60; } main(){ int j, m, d; dekompDetik(86399, &j, &m, &d); printf("86399 detik " "sama dengan " "%d jam %d menit " "%d detik", j, m, d); } Argumen pemanggilan yang lainnya adalah &j, &m dan &d, yang berarti alamat variabel j, m dan d. Perhatikan apa yang terjadi ketika masing-masing argumen mengisi nilai dari parameter POINTER. jmd x menitdetikjam &j
Cara Kerja Program void dekompDetik (long int x, int *jam, int *menit, int *detik){ *jam = x/3600; x = x % 3600; *menit = x/60; *detik = x % 60; } main(){ int j, m, d; dekompDetik(86399, &j, &m, &d); printf("86399 detik " "sama dengan " "%d jam %d menit " "%d detik", j, m, d); } Argumen pemanggilan yang lainnya adalah &j, &m dan &d, yang berarti alamat variabel j, m dan d. Perhatikan apa yang terjadi ketika masing-masing argumen mengisi nilai dari parameter POINTER. jmd x menitdetikjam &m
Cara Kerja Program void dekompDetik (long int x, int *jam, int *menit, int *detik){ *jam = x/3600; x = x % 3600; *menit = x/60; *detik = x % 60; } main(){ int j, m, d; dekompDetik(86399, &j, &m, &d); printf("86399 detik " "sama dengan " "%d jam %d menit " "%d detik", j, m, d); } Argumen pemanggilan yang lainnya adalah &j, &m dan &d, yang berarti alamat variabel j, m dan d. Perhatikan apa yang terjadi ketika masing-masing argumen mengisi nilai dari parameter POINTER. jmd x menitdetikjam &d
Cara Kerja Program void dekompDetik (long int x, int *jam, int *menit, int *detik){ *jam = x/3600; x = x % 3600; *menit = x/60; *detik = x % 60; } main(){ int j, m, d; dekompDetik(86399, &j, &m, &d); printf("86399 detik " "sama dengan " "%d jam %d menit " "%d detik", j, m, d); } jmd x detikmenitjam Artinya, setiap kali di dalam function digunakan *jam, *menit dan *detik, komputer mengganggapnya sebagai variabel j, m dan d yang ada di luar function.
Cara Kerja Program void dekompDetik (long int x, int *jam, int *menit, int *detik){ *jam = x/3600; x = x % 3600; *menit = x/60; *detik = x % 60; } main(){ int j, m, d; dekompDetik(86399, &j, &m, &d); printf("86399 detik " "sama dengan " "%d jam %d menit " "%d detik", j, m, d); } Artinya, setiap kali di dalam function digunakan *jam, *menit dan *detik, komputer mengganggapnya sebagai variabel j, m dan d yang ada di luar function x *jam*menit *detik jmd
Cara Kerja Program void dekompDetik (long int x, int *jam, int *menit, int *detik){ *jam = x/3600; x = x % 3600; *menit = x/60; *detik = x % 60; } main(){ int j, m, d; dekompDetik(86399, &j, &m, &d); printf("86399 detik " "sama dengan " "%d jam %d menit " "%d detik", j, m, d); } Kemudian, baris pertama function dilaksanakan. Akibatnya *jam atau variabel j diisi dengan x/3600 = 23,9997. Karena variabel j bertipe integer, maka angka di belakang koma diabaikan x *jam*menit *detik jmd
Cara Kerja Program void dekompDetik (long int x, int *jam, int *menit, int *detik){ *jam = x/3600; x = x % 3600; *menit = x/60; *detik = x % 60; } main(){ int j, m, d; dekompDetik(86399, &j, &m, &d); printf("86399 detik " "sama dengan " "%d jam %d menit " "%d detik", j, m, d); } Selanjutnya, baris kedua function dilaksanakan. Akibatnya nilai variabel x diubah menjadi x % 3600 = x *jam*menit *detik jmd
Cara Kerja Program void dekompDetik (long int x, int *jam, int *menit, int *detik){ *jam = x/3600; x = x % 3600; *menit = x/60; *detik = x % 60; } main(){ int j, m, d; dekompDetik(86399, &j, &m, &d); printf("86399 detik " "sama dengan " "%d jam %d menit " "%d detik", j, m, d); } Selanjutnya, baris ketiga function dilaksanakan. Akibatnya *menit atau variabel m diisi dengan x/60 = 59,983. Karena variabel m bertipe integer, maka angka di belakang koma diabaikan x *jam*menit *detik jmd
Cara Kerja Program void dekompDetik (long int x, int *jam, int *menit, int *detik){ *jam = x/3600; x = x % 3600; *menit = x/60; *detik = x % 60; } main(){ int j, m, d; dekompDetik(86399, &j, &m, &d); printf("86399 detik " "sama dengan " "%d jam %d menit " "%d detik", j, m, d); } Selanjutnya, baris terakhir function dilaksanakan. Akibatnya *detik atau variabel d diisi dengan x % 60 = x *jam*menit *detik jmd
Cara Kerja Program void dekompDetik (long int x, int *jam, int *menit, int *detik){ *jam = x/3600; x = x % 3600; *menit = x/60; *detik = x % 60; } main(){ int j, m, d; dekompDetik(86399, &j, &m, &d); printf("86399 detik " "sama dengan " "%d jam %d menit " "%d detik", j, m, d); } Selanjutnya, pelaksanaan program kembali ke program utama, yaitu baris instruksi printf. Akibatnya nilai variabel j, m, dan d ditampilkan ke layar monitor x *jam*menit *detik jmd detik sama dengan 23 jam 59 menit 59 detik
BAGIAN AKHIR PRESENTASI CARA KERJA PROGRAM YANG MENGANDUNG VOID FUNCTION DENGAN SEBUAH PARAMETER MASUKAN DAN TIGA BUAH PARAMETER KELUARAN