Cara Tepat Penulisan void main dan main pada Bahasa C

Pada materi ini akan dipelajari verbedaan antara '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[]){/*...*/}
Cara Tepat Penulisan void main dan main pada Bahasa C - elfanmauludi
Ilustrasi Void dan Main Bahasa C

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.

Komentar

  1. Apa yang dimasuk dengan fungsi void main() dan fungsi int main()?

    BalasHapus
    Balasan
    1. Void 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().

      Hapus
  2. Apakah fungsi void main() adalah fungsi standar yang terdapat pada bahasa pemrograman C?

    BalasHapus
    Balasan
    1. Apakah fungsi void main() adalah fungsi standar yang terdapat pada pemrograman bahasa C?

      Jawabannya 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.

      Hapus
  3. Apa tujuan penggunaan fungsi void dalam bahasa C, padahal fungsi tersebut tidak dapat mengembalikan nilai apapun ke dalam fungsi pemanggil?

    BalasHapus
    Balasan
    1. Dalam 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.
      Jik 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.

      Hapus
  4. 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.

    BalasHapus
    Balasan
    1. Tidak 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.

      Hapus
  5. Bagaimana cara saya bisa mengetahui setelah memberikan return 0, kode program memang benar akan memberikan 0. Ada yang bisa bantu jelaskan?

    BalasHapus
    Balasan
    1. Pada 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.

      Hapus
    2. Return 0 adalah perintah akhir dari eksekusi program yang dibenarkan.

      Hapus
  6. Pada codeblock saya tidak menemukan bentuk error apapun, apakah mungkin inputan int yang ada di program tersebut memang tidak terdapat kesalahan?

    BalasHapus
    Balasan
    1. Loh program ga error koq malah kecewa. Jika ingin mendapatkan hasil yang salah maka buatlah program yang bernilai salah.

      Hapus
  7. Apakah pada program bahasa c saya dapat menggunakan main() saja ketimbang int main()?

    BalasHapus
  8. Apakah konsep logis jika tidak memberikan void main() pada program bahasa C? tolong jelaskan secara singkat?

    BalasHapus
    Balasan
    1. Anggap saya sedang menjalankan sebuah program pada linux, dengan contoh kode program berikut:

      ./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!!

      Hapus
    2. Ketika menggunakan void main(), tipe return fungsi main adalah VOID atau tidak ada.

      Tetapi 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.

      Hapus

Posting Komentar

*Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung. :D

*Jika terdapat typo, link bermasalah, dan lain sebagainya, pengunjung dapat melaporkan permasalahan tersebut melalui WA: +62-896-2514-6106




~ Ikatlah Ilmu dengan Memostingkannya ~

Referensi Tambahan:

Enkapsulasi pada Java

6 Contoh Program Method Overloading pada Java

2 Jenis Utama Kegiatan Penelitian Berdasarkan Waktunya, Crosssectional Salah Satunya

3 Jenis Utama Looping pada Java

Perbedaan stdio.h dan stdlib.h pada Bahasa C

3 Jenis Utama Teks Komentar pada Bahasa Pemrograman Java