Artikel Terbaru

4 Keunggulan Utama Bitcoin

Sebelum membicarakan tentang bitcoin, terlebih dahulu mari pahami apa yang dimaksud dengan uang. Apa sebenarnya yang dimaksud dengan uang? Pada dasarnya, uang adalah segala sesuatu yang mewakili nilai tertentu.

Perbedaan Antara int main() dan int main(void) pada Bahasa C

Perhatikan dua contoh definisi fungsi main().

int main()
{
/*  */
return 0;}

dan

int main(void)
{
/*  */
return 0;}

Apakah perbedaan kedua definisi tersebut?
Pada C++, tidak terdapat perbedaan apapun pada kedua definisi fungsi tersebut. Juga pada bahasa C kedua fungsi tersebut dapat dijalankan dengan baik, tetapi pada definisi fungsi yang kedua, penggunaan void secara teknis dianggap lebih baik karena memberikan gambaran lebih jelas bahwa fungsi main akan dipanggil tanpa menggunakan parameter apapun.

Pada bahasa C, tanda pengenal fungsi tidak menjelaskan argumen apapun, yang artinya fungsi dapat dipanggil dengan angka berapapun dari parameter atapun tanpa parameter. Contoh, coba lakukan kompilasi dan jalankan dua contoh program bahasa C berikut. Catatan; Perhatikan perbedaan antara kedua tanda fun().

// Program 1, dapat dikompilasi dan dijalankan program 

// tersebut pada bahasa C, tetapi tidak pada C++

void fun() { }

int main(void)

{

 fun(10, "ELF", "FAN");

 return 0;

}


Perhatikan bahwa program pertama dapat dijalankan dengan baik, tetapi pada program kedua hal tersebut menyebabkan error.

// Program 2 (Kompilasi gagal baik pada bahas C dan C++)

void fun(void) { }

int main(void)

{

fun(10, "ELF", "FAN");

return 0;

}


Tidak seperti bahasa C, pada C++, kedua contoh program gagal dikompilasi. Hal ini karena pada C++, baik itu fungsi fun() dan fun(void), keduanya dianggap sama. Jadi perbedaannya adalah, pada bahasa C, int main() dapat dipanggil dengan angka berapapun pada argumen, tetapi int main(void) dapat dipanggil tanpa argumen apapun. Meskipun hal ini tidak membuat perbedaan yang besar, penggunaan int main(void) sangat direkomendasikan pada bahasa C.

Latihan, perkirakan hasil output yang akan keluar.
latihan satu,

#include <stdio.h> 

int main() 

static int i = 5;

 

if (--i){ printf("%d ", i); 

main(10); } 

 

}


Latihan dua,

#include <stdio.h> 

int main(void

static int i = 5

 

if (--i){ printf("%d ", i); 

main(10); } 

 

}

Komentar

  1. apakah fungsi int main(), void main(), dan int main(void) adalah tiga fungsi yang memiliki keluaran yang berbeda?

    BalasHapus
    Balasan
    1. bisa YA, bisa TIDAK.

      termasuk atribut dan parameter apa saja yang dikerjakan didalam ketika fungsi tersebut.

      Void main() menunjukkan bahwa fungsi main() tidak akan mengembalikan nilai apapun, tetapi int main() menunjukkan bahwa fungsi main() akan mengembalikan nilai tipe integer ke fungsi pemanggil. Sedangkan int main(void) adalah fungsi main dengan tipe data integer yang dalam pengoperasiannya membutuhkan input nilai dengan tipe data void, dinama fungsi int main(void) memiliki perbedaan jika dikompilasi pada bahasa pemrograman C dan C++.

      Hapus
  2. bagaiman dengan fungsi void main (void), apakah fungsi ini akan error jika dikompilasi pada bahasa C?

    BalasHapus
    Balasan
    1. Error tergantung dari banyak faktor, mulai dari kode program yang digunakan, tipe parameter yang digunakan, kompilator yang digunakan, dan lain sebagainya,

      untuk fungsi void main (void), jika pada bahasa C maksudnya adalah ciptakan sebua fungsi dengan nama main yang tidak mengembalikan nilai apapun kepada fungsi pemanggil, namun untuk dapat menggunakan fungsi tersebut fungsi pemanggil harus menyertakan nilai inputan dengan tipe void ke dalam fungsi.

      Hapus
  3. Kenapa fungsi void main bernilai error ketika dijalankan?

    BalasHapus
    Balasan
    1. Jenis pengembalian fungsi main akan menjadi batal ketika tidak mengembalikan nilai apapun kepada fungsi pemanggil. Void berarti aplikasi tidak diberikan izin apapun untuk menyampaikan argumen ke fungsi pemanggilnya, dimana dengan tidak diterimanya fungsi apapun oleh fungsi pemanggil hal ini akan menyebabkan terjadinya kesalahan atau error pada kompilator.

      Hapus
  4. #include
    int main()
    {
    static int i = 5;
    if (i--){
    printf("%d ", i);
    main(10);
    }
    }

    dari contoh program bahasa c tersebut, output apa yang akan dihasilkan, dan kenapa?

    BalasHapus
    Balasan
    1. Pada bahasa C, main bisa memanggil dirinya sendiri. Anda mungkin pernah mendengar istilah rekursi, rekursi merupakan fungsi yang memanggil fungsi itu sendiri dan argumen apapun yang diberikan selain void pada rekursi main tersebut akan menyebabkan perubahan apapun pada program bahasa c. Pikirkan main sebagai fungsi lain diaman akan digunakan rekursi untuk memanggil fungsi itu sendiri, ketika melakukan pemanggilan ulang pada fungsi main lagi dan lai maka hal tersebut akan terus dideklarasikan pada stack dan akhirnya akan menyebabkan stack overflow, itulah alasan utama mengapa i dinyatakan sebagai tipe statis karena variabel statis akan mempertahankan ukuran memorinya diantara beberapa proses pemanggilan atau call. Sedangkan output yang akan dihasilkan dari contoh program tersebut adalah 4 3 2 1 0.

      Hapus
  5. Bisa jelaskan kenapa diberikan main(10) pada contoh program bahasa c tersebut?

    BalasHapus
    Balasan
    1. Tida ada makna penting dari penyebutan main(10) pada program, karena dalam bahasa c ketika dilakukan penyebutan int main(), maka program tersebut akan diteruskan dengan argumen atau tanpa dilakukan penerusan argumen sama sekali. Kedua cara tersebut akan berhasil, sedangkan pada argumen 10 tidak memiliki makna apapun pada fungsi program main. Dimana kode main(10) dapat ditulis main() saja, yang akan mengakibatkan program akan memanggil fungsi secara rekursif setelah kondisi memenuhi persyaratan, yaitu ketika menjadi nol dan keluar dari looping.

      Hapus
  6. Kenapa penulisan argumen return 0 tidak perlu pada bahasa C?

    BalasHapus
    Balasan
    1. Karena fungsi main() adalah jenis fungsi khusus pada bahasa C yang tidak perlu dilakukan penulisan return 0 untuk int main() karena kompilator akan secara otomatis akan memberikan return 0, jika argumen tersebut tidak disertakan.

      Hapus
  7. Pada visual studio, int main(void) kemudian memanggil main(10), tetapi tidak memberikan kesalahan pada proses kompilasi program. Kenapa?

    BalasHapus
    Balasan
    1. Program akan generate error karena int main(void) tidak memberikan argumen apapun.

      Hapus

Posting Komentar

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

Catatan: setiap iklan yang ditayangkan pada blog ini bersumber dari google adsense. Dengan jenis iklan yang dipilih adalah, sebagai berikut.

POIN 1, Iklan yang ditampilkan hanya boleh berbahasa indonesia atau berbahasa inggris. Tidak menerima jenis iklan dalam bahasa yang lain selain yang telah disebutkan karena blog ini dibuat untuk para pengunjung dari negara atau orang yang berbahasa Indonesia.

POIN 2, Setiap gambar yang ditampilkan pada iklan sifatnya tidak mengganggu para pengunjung yang melihat blog, atau tidak boleh menampilkan gambar yang bersifat menjijikkan atau merangsang rasa mual.

POIN 3, Jenis iklan yang dipasang bukan merupakan iklan spam, atau berisi dan mengarahkan pengunjung ke alamat yang berbahaya atau bersifat penipuan.

POIN 4, Segala bentuk iklan tunduk dan patuh pada ketentuan dari pihak Adsense google dan pemilik blog.

POIN 5, Segala jenis iklan yang tidak bertentangan dengan poin 1-4 yang dijelaskan sebelumnya, maka iklan tersebut dapat ditampilkan pada blog.

POIN 6, Jika ada pihak ketika yang ingin memasang iklan pada blog ini secara langsung, maka dapat menghubungi pemilik blog melalui kontak 0882 3218 8316.



~ Ikatlah Ilmu dengan Memostingkannya ~

Hot Artikel

Enkapsulasi pada Java

Perbedaan stdio.h dan stdlib.h pada Bahasa C

6 Tahap Utama dalam Melakukan Kompilasi Program Hello World Java

4 Contoh Program Java dan Multiple Inheritance

3 Jenis Utama Looping pada Java