Search This Blog

Sunday 4 September 2016

Variabel lokal dan global

Setelah sebelumnya dibahas mengenai apa itu fungsi dan bagaimana cara penggunaan fungsi dengan pembahasan bagaimana menggunakan fungsi yang harus dideklarasi dan tidak perlu dideklarasi terlebih dahulu pada setiap definisi yang dilakukan, kali ini penulis ingin menyampaikan bagaimana cara penerapan variabel dalam lebih dari satu fungsi (beberapa fungsi). Yang pertama akan dibahas ialah mengenai variabel lokal dalam fungsi. Variabel lokal merupakan variabel yang dideklarasikan dalam sebuah fungsi. Misal yang biasa kita lakukan dalam fungsi main, itu termasuk dalam variabel lokal dalam fungsi, karena variabel tersebut hanya dapat digunakan oleh fungsi itu sendiri. Sedangkan yang dimaksud variabel global dalam fungsi ialah variabel yang dideklarasikan diluar dan sebelum fungsi itu dijalankan. Variabel gobal sendiri sifatnya umum, karena dapat digunakan oleh beberapa fungsi yang ada dalam program. Jika diibaratkan dengan keseharian, variabel lokal sama halnya dengan laptop yang kita miliki, dimana laptop itu hanya dapat kita gunakan untuk pribadi saja, sedangkan variabel global dapat diibaratkan seperti warnet, yang mana siapapun dapat menggunakannya.

Untuk variabel lokal dideklarasikan termasuk inisialisasi dalam sebuah fungsi, namun bukan berarti fungsi lain tidak dapat sama sekali menggunakan variabel tersebut. Jika kita kembali lagi mengingat apa itu fungsi, fungsi sendiri selagi menjadi fungsi tambahan maka penggunaannya ialah dengan dipanggil terlebih dahulu melalui fungsi utama / function main(). Dengan demikian, walau Anda membuat sebuah variabel lokal dalam sebuah fungsi tambahan, maka fungsi itu akan dipanggil untuk dijalankannya melalui fungsi utama, dengan demikian secara tidak langsung terbukti bahwa fungsi utama tersebut sudah ikut menggunakan variabel yang ada dalam fungsi tambahan. Namun bukan berarti pula fungsi utama dapat menggunakan untuk kepentingan pribadinya akan variabel yang bersifat lokal. Memang untuk menjalankan perintah yang ada dalam fungsi tambahan harus dipanggil terlebih dahulu oleh fungsi utama, namun fungsi utama hanya dapat memanggil selagi variabel didalamnya bersifat lokal. Seperti halnya saat dalam fungsi tambahan dideklarasikan sebuah variabel (variabel lokal) dengan nama R dan diberi nilai awal 97, lalu isi variabel tersebut dicetak di fungsi main maka program akan error, karena variabel R hanya milik fungsi tambahan, terkecuali jika deklarasi variabel tersebut diluar dan sebelum fungsi, maka fungsi main dapat ikut menggunakan variabel tersebut (karena variabel tersebut bersifat global).

Dan untuk variabel global sendiri, karena sifatnya global sudah jelas dapat digunakan secara global / tidak berpatok. Berapapun fungsi yang menggunakan variabel tersebut, maka program tidak akan menjadi error karena sifatnya yang global tersebut. Dan pendeklarasian variabel global dilakukan diluar dan sebelum fungsi yang menggunakan variabel tersebut. Kelebihan variabel global dibanding variabel lokal ialah misalnya pada saat ada beberapa fungsi dengan menggunakan rumus yang berbeda namun hanya ingin menggunakan variabel yang sama dan atau pada saat ada beberapa rumus yang berkaitan dalam fungsi yang berbeda, maka rumus tersebut tidak perlu ditulis beberapa kali, cukup menghubungkan diantara fungsi-fungsi yang menggunakan variabel tersebut. Contoh paling mudahnya untuk variabel global ialah pada saat inisialisasi variabel dilakukan pada suatu fungsi dan akan dihitung dan dicetak dalam fungsi yang berbeda, atau pada saat inisialisasi dan perhitungannya dilakukan pada fungsi tambahan dan lalu akan dicetak dalam fungsi utama, maka variabel yang digunakan ialah variabel global. Namun untuk kasus seperti itu tidak perlu semua variabel dideklarasikan sebagai variabel global, karena pada fungsi mainnya hanya melakukan cetak, maka variabel yang dicetaknya saja yang dijadikan variabel global, sedangkan variabel lainnya dapat menjadi variabel lokal dalam fungsi tambahannya. Memang tidak akan menjadi masalah pada saat semua variabelnya dideklarasikan sebagai variabel global, namun sepertinya akan terlihat lebih efektif jika variabel global dan lokal dideklarasikan terpisah, dengan kata lain variabel global dideklarasikan seperlunya saja. Agar tidak penasaran bagaimana bentuk dari variabel lokal dan global tersebut , maka berikut akan diberikan contoh program yang menggunakan variabel lokal dan global. Mari perhatikan contoh program berikut, berikut merupakan contoh dari penggunaan variabel lokal:

#include<stdio.h>

void count();

main(){
count();
}

void count(){
int G,M,L,R;
G=97;
M=24;
L=1;
R=G+(M*L);
printf("Hasil hitungnya ialah: %i", R);
}

Dalam contoh program diatas kita dapat melihat adanya penggunaan variabel global dimana pendeklarasian, inisialisasi dan perintah-perintah yang dituangkan pada variabelnya dilakukan dalam satu fungsi yang sama, dan fungsi utama hanya bertugas sebagai pemanggil, atau dapat dikatakan bahwa fungsi utamanya hanya jembatan dalam menjalankan program dalam fungsi tambahan. Namun ditegaskan kembali bahwa deklarasi fungsi tambahan dalam program tersebut tidak bersifat wajib, deklarasi dilakukan hanya karena fungsi tambahannya berada setelah fungsi utama, selagi fungsi tambahan berada sebelum fungsi utama maka tidak perlu lagi menggunakan deklarasi fungsi, langsung saja pada definisinya. Dan kembali pada masalah variabel, jika diperhatikan pada contoh program diatas, dalam fungsi main tidak ada penggunaan variabel apapun terutama variabel yang sama dengan variabel lokal dalam fungsi tambahannya, andai memang perintah untuk mencetaknya dipindahkan ke dalam fungsi utama maka akan terjadi error, terkecuali jika memang semua yang ada dalam fungsi tambahan dipindahkan ke dalam fungsi utamanya. Namun jika demikian, untuk apa kita membuat fungsi baru jika tidak terpakai, karena jika semuanya ada dalam fungsi utama, tugas fungsi tambahannya apa? Dengan demikian sudah jelas bahwa fungsi main dalam contoh program diatas tidak dapat menggunakan variabel dalam fungsi tambahan, baik itu untuk sebuah proses perhitungan maupun percetakan, dan atau perintah lainnya tanpa terkecuali. Mari bandingkan dengan variabel global berikut:

#include<stdio.h>
void count();

int G,M,L,R;

main(){
G=97;
M=24;
L=1;
count();
printf("Hasil hitungnya ialah: %i", R);
}

void count(){
R=G+(M*L);
}
Pada contoh program diatas kita melihat adanya variabel yang dideklarasikan secara global, yaitu dengan mendeklarasikannya diluar semua fungsi yang ada, dan lebih tepatnya sebelum semua fungsi tersebut. Dalam contoh program diatas, variabel yang dideklarasikan secara global ialah semuanya, karena dalam program tersebut kedua fungsi menggunakan semua variabel yang ada. Pada fungsi utama variabel terssebut diberi nilai awal terlebih dahulu, lalu fungsi utama tersebut memanggil fungsi tambahan dimana dalam fungsi tambahan tersebut semua variabel yang sudah diberi nilai awal akan diproses (dihitung), dan setelah dihitung, jika kita melihat kembali pada fungsi utama, ada perintah untuk cetak ke layar, maka setelah semua variabel tersebut diproses dalam fungsi tambahan akan dicetak dalam fungsi utama. Namun sekedar mengingatkan bahwa dalam fungsi utama jangan sampai perintah cetak ke layarnya diletakan sebelum perintah untuk memanggil fungsi tambahan, karena jika demikian akan menghasilkan error atau yang tercetak ke layar hanyalah 0 (tidak sesuai). Karena pada dasarnya program harus memproses terlebih dahulu sebelum mencetak, jika mencetak terlebih dahulu sebelum memproses, maka hasil cetakannya hanyalah nilai awal dari variabel tersebut. Dan dalam deklarasi kita tidak memberikan nilai awal, maka saat dicetak hasilnya akan 0. Untuk sekedar tambahan, dalam program tersebut jika disesuaikan dengan apa yang sudah dijelaskan (pada fungsi yang berbeda hanya diperintahkan untuk mencetak) maka sebagai perbandingan Anda dapat menukar perintah cetak dalam fungsi utama ke dalam fungsi tambahan, dan perintah untuk menghitung dalam fungsi tambahan diletakan pada fungsi utama. Dengan demikian Anda dapat mendeklarasikan variabel R saja sebagai variabel globalnya, dan Anda harus mendeklarasikan variabel lainnya secara lokal didalam fungsi utamanya karena pada kedua fungsi tersebut kesamaan variabelnya hanyalah pada variabel R sedangkan variabel lainnya tidak digunakan bersama lagi. Semoga dengan contoh tersebut Anda dapat dengan mudah membedakan antara variabel lokal dengan variabel global pada fungsi dan dapat menggunakan fungsi tersebut sesuai dengan kebutuhan.

No comments:

Post a Comment