Search This Blog

Monday 5 September 2016

Passing variabel dan memanggil fungsi lain

Pada pembahasan kali ini penulis ingin membahas sedikit mengenai passing variable, dimana passing variable ini dilakukan dalam dua buah fungsi yang berbeda, dimana nilai suatu variable dalam fungsi pertama akan dikirim pada variable yang terdapat pada fungsi yang dituju, dan berikutnya akan dilakukan proses dalam fungsi tersebut. Dalam hal sederhananya misal pada saat ingin mencetak suatu variable ke layar dengan fungsi yang berbeda, maka variable yang akan dicetak tersebut dapat dikirim pada fungsi lain untuk melakukan percetakannya. Agar lebih mudahnya untuk dipahami, perhatikan contoh berikut:

#include<stdio.h>
void printf(int D);

main(){
int A,B,C;
 B=97;
C=24;
A=B+C;
printf(A);
}

void printf(int D){
printf("%i", D);
}

Dalam contoh tersebut kita dapat melihat dua buah fungsi dalam satu program, dimana kedua fungsi tersebut merupakan fungsi utama dan fungsi tambahan. Dan sebelum fungsi utama terdapat sebuah deklarasi fungsi, dimana fungsi tersebut selanjutnya akan disisipkan setelah fungsi utama. Pada fungsi utama sendiri kita lihat adanya sebuah deklarasi variable yang diikuti sebuah perintah penjumlahan. Perintah penjumlahan tersebut akan diproses didalam fungsi utama, karena memang lokasinya pun berada pada fungsi utama. Namun setelah proses penjumlahan tersebut, fungsi utama memanggil sebuah fungsi lain, dimana fungsi tersebut merupakan fungsi yang sebelumnya telah dideklarasikan sebelum fungsi utama. Dan ada sedikit perbedaan dengan topic sebelumnya yang membahas mengenai deklarasi dan definisi fungsi, dimana dalam pembahasan tersebut fungsi utama hanya tinggal memanggil fungsi tambahan yang lalu setiap perintah yang terdapat dalam fungsi tambahan tersebut akan dijalankan. Namun pada pembahasan kali ini berbeda, karena fungsi utama tidak hanya bertugas untuk memanggil fungsi tambahan, melainkan juga variable pada fungsi utama akan dikirimkan pada variable yang terdapat dalam fungsi tambahannya. Seperti pada contoh diatas, isi variable A atau dapat dikatakan hasil penjumlahan variable B dan C akan dikirim ke fungsi printf, dimana isi variable A akan dimasukan kedalam variable D yang terdapat pada fungsi printf. Dan perlu ditegaskan lagi bahwa printf yang dimaksud dalam fungsi utama tersebut bukanlah perintah untuk mencetak ke layar, melainkan untuk memanggil fungsi lain yang mana fungsitersebut bernama printf. Memang penamaan seperti ini tidak efektif sebenarnya, namun tujuan penulis memberi nama fungsi printf tersebut tak lain hanya ingin sekaligus memberi penjelasan tentang perbedaan antara perintah langsung dengan pemanggilan sebuah fungsi. Dan jika kita perhatikan kembali dalam contoh program tersebut, didalam fungsi printf terdapat perintah untuk mencetak ke layar isi dari variable D. apa isi variable D? variable D tidak memiliki nilai awal, ia hanya dideklarasikan saja dalam deklarasi fungsi sebelum fungsi utama, dan nilai yang terdapat dalam fungsi printf tersebut merupakan nilai darii variable A dalam fungsi utama yang tadi telah dikirimkan melalui proses passing variable. Pengiriman tersebut dilakukan dengan pemanggilan fungsi tambahan didalam fungsi utama, pada contoh diatas tertulis dengan perintah printf(A); dimana perintah tersebut mengirim isi dari variable A ke variable yang terdapat dalam fungsi printf. Dan dikarenakan variable yang terdapat dalam fungsi tambahan tersebut ialah variable D, maka nilai yang ada dalam variable A akan dikirim ke variable D, dengan demikian isi variable D merupakan isi dari variable A. Dan dalam fungsi tambahan tersebut ada perintah mencetak ke layar aka nisi dari variable D / variable A dalam fungsi utama tersebut, jika isi variable A (hasil jumlah 97 +24) itu 121, maka yang akan tercetak ke layarpun ialah angka 121 tersebut, karena itulah isi dari variable D. jadi inti dari passing variable ialah pengiriman nilai dalam variable di suatu fungsi ke fungsi lain dengan tujuan untuk diproses lebih lanjut lagi sesuai dengan perintah yang terdapat dalam fungsi tersebut. Namun yang penting dan perlu diingat, untuk contoh diatas, antara deklarasi dengan penggunaan fungsi harus disesuaikan, serta penggunaan variable dalam fungsi tersebut ialah variable yang dideklarasikan pada fungsi tersebut pula, sedangkan untuk pemanggilan dari fungsi utama bukanlah menggunakan variable yang dideklarasikan dalam fungsi yang dipanggilnya, melainkan variable yang nilainya akan dikirim pada fungsi yang dipanggil tersebut.

Tadi sudah dibahas mengenai passing variable, yang mana nilai dalam suatu variable pada sebuah fungi akan dikirimkan ke fungsi lain dan nilainya akan diterapkan pada variable dalam fungsi tersebut. Dan kali ini penuli pun ingin memperkenalkan sedikit mengenai cara memanggil fungsi lain. Dimana untuk memanggil fungsi lain tidak jauh berbeda dengan passing variable, namun ada sedikit tambahan pula mengenai penggunaan return variable. Pada return variable nilai yang dihitung oleh called function atau nilai yang sudah dihitung oleh fungsi yang dipanggil, akan dikembalikan ke calling function atau sang fungsi pemanggil. Jika dilihat dari contoh diatas, called function ialah fungsi tambahannya yaitu fungsi printf, sedangkan calling functionnya ialah fungsi utama. Hanya saja dalam contoh diatas penulis tidak menambahkan return valuenya. Untuk memperjelasnya lagi, mari perhatikan contoh berikut:

#include<stdio.h>
int KURANG(int A, int B);
int KALI (int C, int D);

main(){
int G,M,L;
G=97;
M=24;
L= KURANG(G,M);
printf("%i", L);
}

int KURANG(int A, int B){
int X;
A=A-7;
B=B-4;
X=KALI(A,B);
return X;
}

int KALI(int C, int D){
int H;
H=(C+10)*(D-19);
return H;
}
Pada contoh program diatas, kita dapat melihat return value pada setiap fungsi tambahan. Seperti terlihat ada return X pada fungsi KURANG dan return H pada fungsi kali. Kedua return value tersebut merupakan pengembalian nilai ke fungsi utama dari hasil hitung yang diperolah dan disimpan pada variable tersebut. Itu merupakan proses return value yang dilakukan oleh kedua fungsi tambahan diatas. Namun jika kita kembali membahas mengenai pemanggilan fungsi lain maka dalam contoh program diatas kita dapat melihat yang mana pada fungsi utama ada sebuah pemanggilan ke fungsi KURANG sebagai penentu jumlah / nilai pada variable L. Lalu pada fungsi KURANG sendiri terdapat proses lagi, yang mana pada saat nilai dalam variable G dan M dikirim ke variable A dan B maka variable tersebut diproses lebih lanjut lagi, dan lalu setelah diproses pun ada lagi pemanggilan ke fungsi lain, yang mana pada fungsi tersebut akan diproses lagi. Hingga akhirnya proses pun berakhir dalam fungsi ketiga tersebut hingga akhirnya nilai akhir akan direturn ke fungsi utama dan menjadi nilai dari variable L. Setelah itu isi variable dicetak ke layar dari semua proses tersebut. Oh iya untukk penjelasan hitungnya sendiri sedikit dijelaskan disini, bahwa yang pertama dalam fungsi utama diberi nilai awalterlebih dahulu, lalu dikirin kedua nilai tersebut pada fungsi KURANG, yang mana dalam fungsi kurang tersebut angka 97 akan dikurangi 7 serta angka 24 akan dikurangi 4. Jadi masalah variable disesuaikan antara pengirim dan yang dikirim, jika ditulis L= KURANG(G,M); dan int KURANG(int A, int B) maka nilai G masuk ke variable A dan nilai M masuk ke variable B. Maka dengan demikian variable 1 ke variable 1 variabel 2 ke variable 2 (disesuaikan). Dan kembali pada perhitungan, setelah dikurangi tersebut, maka nilainnya akan diikirim kembali ke fungsi KALI sebelum akhirnya dikembalikan ke fungsi utama dan dicetak. Namun sebelum dikembalikan maka nilai tersebut dalam fungsi KALI akan dihitung sebagai berikut: (90+10)*(20-19). Dengan demikian angka 100 akan dikalikan dengan angka 1, dan hasil yang akan diperoleh dari cetakan ke layar ialah 100. Demikianlah proses untuk passing variable dan pemanggilan fungsi lain yang disertai return value didalamnya. Semoga dengan penjelasan yang sudah diberikan serinci mungkin tersebut dapat dengan mudah dipahami oleh pembaca. Selamat mencoba programnya..

No comments:

Post a Comment