Penggunaan Void Main Bahasa C dan Fungsinya
Pada artikel ini akan dijelaskan materi tentang penggunaan Void Main Bahasa C beserta penjelasan fungsinya dalam pemrograman bahasa C.
Sebelum mempelajari materi tentang Penggunaan Void Main Bahasa C dan Fungsinya, terlebih dahulu pelajari materi tentang: Sejarah dan Keunggulan Bahasa C [klik], Standar Pemrograman Bahasa C [klik], dan Fakta dan Mitos Keyword Integer pada Bahasa C [klik].
Sintak fungsi 'void main()' dan 'main()' pada bahasa pemrograman C.
void main(){/*...*/}
Penulisan program seperti definisi yang dituliskan sebelumnya pada dasarnya tidak pernah ada pada C++, begitupun juga pada bahasa C. Perhatikan standar ISO C++ 3.6.1[2] atau standar ISO C 5.1.2.2.1. Dimana standar implementasi yang dipakai adalah
int main(){/*...*/}
dan
int main(int argc, char* argv[]){/*...*/}
int main(){/*...*/}
dan
int main(int argc, char* argv[]){/*...*/}
Baca Juga:
Ada banyak versi dari fungsi main(), tetapi semuanya harus dikembalikan dengan nilai return tipe int. Nilai return int oleh fungsi main() adalah solusi bagi program untuk mengembalikan sebuah nilai menuju ke sistem yang memanggilnya. Pada sistem yang tidak menyediakan fasilitas pemanggilan, maka nilai return akan diabaikan, tetapi hal ini tidaklah membuat "void main()" menjadi sebagai acuan resmi pada C++ atapun pada C. Bahkan jika kompilator menerima nilai fungsi "void main()" maka akan tetap diabaikan.
Pada C++, fungsi main() membutuhkan statement yang tidak mengandung nilai return eksplisit. Pada kasus ini, nilai return adalah 0, yang artinya eksekusi program berhasil dilaksanakan. Contohnya:
//Penulisan void main() dan main() pada bahasa C
#include <iostream>
int main()
{
std::cout << "Program ini mengembalikan nilai 0 untuk tipe integer\n";
}
Catatan: meskipun ISO C++ maupun C99 tidak memungkinkan programmer untuk meninggalkan tipe deklarasi. Berbeda dengan C89 dan ARM C++, 'int' tidak mengasumsikan tipe mana yang hilang dalam pendeklarasian nilai. Karena itu:
#include <iostream>
main() {/*...*/}
bernilai error, karena tipe return dari fungsi main tidak ada.
Referensi Tambahan:
- 7 Jenis Sinyal Error Program pada Bahasa C [klik]
- 14 Jenis Karakter Escape Sequences pada Bahasa C [klik]
- Cara Pemisahan Baris pada Bahasa C [klik]
- 6+ Jenis Token dan Cara Penggunaannya pada Bahasa C [klik]
- Cara Penggunaan 32 Keyword dan Variabel pada Bahasa C [klik]
- Bagaimana Peran dan Penggunaan Scope Variabel pada Bahasa C [klik]
- 2 Aturan Utama Scope pada Bahasa C [klik]
Artikel ini didedikasikan kepada: Nova Fathurrachman, Novita Aria Rizki, Reghina Putri Hemayanti, Rinaldi Octavalino, dan Risma Widiyanti.
Apa yang dimasuk dengan fungsi void main() dan fungsi int main()?
BalasHapusVoid main() memberitahukan kepada kompilator bahwa fungsi main() tidak akan mengembalikan nilai apapun, tetapi int main() menunjukkan bahwa kompilator akan mengembalikan nilai tipe integer dari fungsi main tersebut. Jika program bahasa C yang dibuat adalah tipe yang sederhana, dan tidak akan berhenti sebelum tercara baris akhir dari kode, atau kode program bebas dari kesalahan atau error, maka dapat digunakan fungsi void main().
HapusApakah fungsi void main() adalah fungsi standar yang terdapat pada bahasa pemrograman C?
BalasHapusApakah fungsi void main() adalah fungsi standar yang terdapat pada pemrograman bahasa C?
HapusJawabannya dalah tidak, Prototipe dari fungsi main adalah int main() dengan argumen baris perintah yang bersifat opsional antara argc atau argv. Tipe data Int yang terdapat pada fungsi main() merupakan cara program mengembalikan nilai ke sistem yang memanggilnya sebelumnya.
Apa tujuan penggunaan fungsi void dalam bahasa C, padahal fungsi tersebut tidak dapat mengembalikan nilai apapun ke dalam fungsi pemanggil?
BalasHapusDalam pemrograman komputer, ketika suatu fungsi memiliki tipe data void, maka fungsi tersebut akan digunakan sebagai tipe data pengembalian dari fungsi itu sendiri, atau dengan kata lain fungsi tersebut tidak mengembalikan nilai apapun kepada fungsi pemanggilnya sebelumnya.
HapusJik void muncul dalam suatu deklarasi pointer, maka hal ini menentukan apakah pointer tersebut bersifat universal atau tidak.
Jika void digunakan dalam suatu parameter fungsi, maka void menunjukkan bahwa fungsi tersebut tidak mengembalikan nilai apapun kepada fungsi pemanggilnya.
Menurut saya sedikit terjadi kesalahpahaman pernyataan disini yang berkaitan dengan tipe pengembalian main(). Menurut saya tidak perlu menulis statement return di akhir main(), karena jika pernyataan return hilang maka program akan secara otomatis akan menambahkan pernyataan atau statement return dengan tipe data yang tepat sesuai dengan tipe return main(). Jadi, tidak ada kesalahan yang terdapat dalam kode program.
BalasHapusTidak yang disampaikan sudah benar, biasanya kita menyebutkan tipe data int dalam fungsi main itu sendiri. Jika demikian maka tidak perlu dilakukan pengetikkan return 0;, karena kompilator akan memahaminya sebagai tipe data integer dan akan berhasil untuk dikompilasi, tetapi tidak demikian pada kasus void main() dan main() yang telah dijelaskan pada artikel ini sebelumnya.
HapusBagaimana cara saya bisa mengetahui setelah memberikan return 0, kode program memang benar akan memberikan 0. Ada yang bisa bantu jelaskan?
BalasHapusPada sistem operasi berbasis UNIX, perintah "echo $?" dapat digunakan setelah eksekusi program yang akan memberitahukan nilai return yang diperoleh dari fungsi main. Sedangkan untuk sistem operasi berbasis windows mungkin saja "echo %ERRORLEVEL%" merupakan perintah yang dapat digunakan untuk hasil yang sama. Semoga membantu.
HapusReturn 0 adalah perintah akhir dari eksekusi program yang dibenarkan.
HapusPada codeblock saya tidak menemukan bentuk error apapun, apakah mungkin inputan int yang ada di program tersebut memang tidak terdapat kesalahan?
BalasHapusLoh program ga error koq malah kecewa. Jika ingin mendapatkan hasil yang salah maka buatlah program yang bernilai salah.
HapusApakah pada program bahasa c saya dapat menggunakan main() saja ketimbang int main()?
BalasHapusCoba buat programnya, dan amati hasilnya.
HapusApakah konsep logis jika tidak memberikan void main() pada program bahasa C? tolong jelaskan secara singkat?
BalasHapusAnggap saya sedang menjalankan sebuah program pada linux, dengan contoh kode program berikut:
Hapus./mycprogram
if [ $? -eq 0 ]
then
echo "do something"
else
echo "do something else"
fi
Pada kondisi ini apakah seharusnya diberikan tipe return atau tidak supaya program dapat dieksekusi secara sukses. Hope that helps!!
Ketika menggunakan void main(), tipe return fungsi main adalah VOID atau tidak ada.
HapusTetapi fungsi main mengembalikan nilai 0 untuk penghentian yang hasilnya sukses atau nilai 1, -1 (selain 0), untuk menunjukkan penghentian dengan atau anomali. Integer yang return ke fungsi main() merupakan cara OS atau lingkungan host untuk mengetahui status atau kondisi program yang sedang dieksekusi tersebut.
Selain itu, sesuai dengan standar C harus ada int sebagai tipe return dari fungsi main() karena fungsi main() akan mengembalikan nilai 0 atau 1, -1, bergantung apakah program yang dieksekusi telah berhasil dijalankan atau terjadi kesalahan tertentu pada program tersebut.