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, Standar Pemrograman Bahasa C, dan Fakta dan Mitos Keyword Integer pada Bahasa C.
Pada Bahasa C, void main() sering kali menjadi sumber kontroversi dan kebingungan di kalangan pengembang. Dalam artikel ini, akan dibahas fakta-fakta seputar penggunaan void main() dan memberikan rekomendasi terbaik untuk menggunakan fungsi main() dengan benar.
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[]){/*...*/}
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.
Baca Juga:
Fakta-fakta seputar void main():
- Aturan Standar Bahasa C: Menurut standar Bahasa C yang ditetapkan oleh ANSI C dan ISO C, prototipe standar untuk fungsi main() adalah int main(void) atau int main(int argc, char* argv[]). Menggunakan void main() bukanlah praktik yang disarankan dan tidak sesuai dengan standar Bahasa C.
- Return Value dari main(): Fungsi main() seharusnya selalu mengembalikan nilai bertipe int. Nilai ini dapat digunakan sebagai status keluaran program dan biasanya diterima oleh sistem operasi setelah program selesai dieksekusi. Penggunaan void main() tidak memberikan nilai kembali, yang dapat menyebabkan ketidakpastian dalam menentukan apakah program berjalan dengan sukses atau terjadi masalah.
- Ketidakportabelan Kode: Meskipun beberapa kompilator mungkin menerima void main(), penggunaannya tidak portabel di seluruh platform. Standar Bahasa C memberikan kepastian dalam portabilitas kode, dan penggunaan yang sesuai dengan standar memastikan bahwa program dapat dijalankan di berbagai sistem.
Rekomendasi Penggunaan Fungsi main():
- Gunakan Prototipe Standar: Gunakan prototipe standar untuk fungsi main(): int main(void) atau int main(int argc, char* argv[]). Ini memastikan bahwa program sesuai dengan standar Bahasa C dan dapat dijalankan secara konsisten di berbagai platform.
- Gunakan Return Value: Selalu gunakan return value dalam fungsi main(). Ini membantu memberikan informasi tentang status keluaran program kepada sistem operasi. Misalnya, return 0; menunjukkan bahwa program selesai tanpa kesalahan, sementara nilai lain dapat menunjukkan masalah yang terjadi.
- Hindari Penggunaan void main(): Hindari menggunakan void main() karena itu melanggar standar Bahasa C dan dapat menyebabkan ketidakpastian dalam perilaku program. Mengikuti standar akan membantu mencegah masalah potensial yang dapat timbul di masa mendatang.
Penggunaan void main() dalam Bahasa C tidak dianggap sebagai praktik yang direkomendasikan dan bahkan melanggar standar resmi. Standar ANSI C dan ISO C menetapkan prototipe standar untuk fungsi main(), yaitu int main(void) atau int main(int argc, char* argv[]). Meskipun beberapa kompilator mungkin menerima void main(), ada sejumlah alasan mengapa sebaiknya dihindari:
- Melanggar Standar: Penggunaan void main() melanggar standar Bahasa C yang telah ditetapkan oleh organisasi standar. Standar ini diperbarui secara berkala untuk meningkatkan konsistensi dan portabilitas kode di berbagai platform.
- Ketidakpastian Status Keluaran Program: Fungsi main() seharusnya selalu mengembalikan nilai bertipe int. Nilai ini dapat memberikan informasi tentang status keluaran program kepada sistem operasi. Penggunaan void main() tidak memberikan nilai kembali, yang dapat menyebabkan ketidakpastian dalam menentukan apakah program berjalan dengan sukses atau terjadi masalah.
- Potensi Masalah Portabilitas: Meskipun beberapa kompilator mungkin menerima void main(), itu tidak menjamin bahwa program akan berjalan di semua platform tanpa masalah. Kode yang tidak sesuai dengan standar Bahasa C dapat mengalami kesulitan dalam portabilitas di lingkungan yang berbeda.
- Ketidakjelasan Terhadap Pembaca Kode: Penggunaan void main() dapat membingungkan pembaca kode, terutama pengembang yang terbiasa dengan standar pengembangan perangkat lunak pada umumnya. Hal ini dapat mengurangi keterbacaan dan kemudahan pemeliharaan kode.
Untuk memastikan kejelasan, portabilitas, dan konsistensi kode, disarankan untuk selalu mengikuti prototipe standar dan kembali nilai bertipe int dari fungsi main(). Dengan demikian, kode dapat lebih mudah dimengerti, dipelihara, dan dijalankan di berbagai platform dengan konsistensi yang diharapkan.
Penggunaan void main() dalam Bahasa C memiliki beberapa kekurangan yang perlu dipertimbangkan:
- Melanggar Standar Bahasa C: Penggunaan void main() melanggar standar Bahasa C yang ditetapkan oleh ANSI C dan ISO C. Standar ini mengharuskan fungsi main() mengembalikan nilai bertipe int. Melanggar standar dapat mengakibatkan ketidakportabelan dan kesulitan dalam mengonfigurasi program di beberapa kompiler atau platform.
- Ketidakjelasan Status Keluaran Program: Fungsi main() seharusnya mengembalikan nilai yang mencerminkan status keluaran program kepada sistem operasi. Penggunaan void main() tidak memberikan nilai kembali, sehingga sulit untuk menentukan apakah program selesai dengan sukses atau mengalami masalah.
- Pemeliharaan dan Kolaborasi yang Sulit: Kode yang melanggar standar dan menggunakan praktik yang tidak umum seperti void main() dapat membuat pemeliharaan kode menjadi sulit. Kolaborasi antara pengembang juga dapat terhambat karena kurangnya konsistensi dalam gaya penulisan kode.
- Kesulitan dalam Pemecahan Masalah: Jika program mengalami masalah atau kesalahan, penggunaan void main() membuatnya sulit untuk melacak dan memahami sumber masalah. Return value dari main() dapat memberikan petunjuk berguna saat pemecahan masalah.
- Tidak Sesuai dengan Konvensi Umum: Konvensi dan pedoman umum dalam komunitas pengembang perangkat lunak cenderung mendukung penggunaan prototipe standar int main(void) atau int main(int argc, char* argv[]). Penggunaan void main() sering dianggap sebagai gaya yang kurang umum dan dapat menyebabkan kebingungan.
- Ketidakpastian Terhadap Masa Depan: Beberapa kompiler atau lingkungan pengembangan mungkin menerima void main(), namun ini tidak dapat dianggap sebagai jaminan bahwa implementasi ini akan berfungsi di semua platform atau di masa depan. Standar Bahasa C dapat mengalami perubahan, dan praktik-praktik yang melanggar standar dapat menjadi usang atau tidak didukung.
Dengan mematuhi standar Bahasa C dan mengikuti praktik umum, seperti menggunakan prototipe standar int main(), pengembang dapat memastikan konsistensi, keberlanjutan, dan kemudahan pemeliharaan dalam pengembangan perangkat lunak.
Kesimpulan
Meskipun beberapa kompilator mungkin menerima void main(), praktik ini tidak disarankan dalam pengembangan perangkat lunak yang baik. Menggunakan prototipe standar dan mengembalikan nilai dari fungsi main() memberikan kejelasan dan portabilitas yang diperlukan dalam pengembangan perangkat lunak yang andal. Sebagai pengembang Bahasa C, mematuhi standar akan meningkatkan kemampuan kolaborasi dan memastikan kode dapat dijalankan di berbagai lingkungan.
Referensi Tambahan:
Artikel ini didedikasikan kepada: Nova Fathurrachman, Novita Aria Rizki, Reghina Putri Hemayanti, Rinaldi Octavalino, dan Risma Widiyanti.
18 komentar untuk "Penggunaan Void Main Bahasa C dan Fungsinya"
Hubungi admin melalui Wa : +62-896-2414-6106
Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.
Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.
- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -
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.