Artikel Terbaru

8 Pertimbangan yang Harus Dilakukan untuk Memilih Wallet Bitcoin

Wallet Bitcoin adalah program yang digunakan untuk mengirim dan menerima data transaksi Bitcoin, menyimpan catatan Bitcoin, dan memantau saldo Bitcoin. Sama seperti ketika seseorang memerlukan program email yang digunakan untuk mengelola data email -nya, pada Bitcoin juga terdapat program sejenis yang dapat digunakan untuk mengelola data Bitcoin tersebut, berupa wallet interface pada setiap node blockchain Bitcoin. Wallet digunakan untuk memantau alamat Bitcoin pada blockchain dan juga dapat digunakan untuk memperbarui saldo Bitcoin pada setiap transaksi.

Fakta dan Penjelasan Makro Multibaris pada Bahasa C

Pada artikel ini akan diceritakan bagaimana cara membuat makro multibaris. Dimana makro multibaris yang akan dibuat adalah sama seperti sebuah fungsi, namun setiap statement-nya akan diakhiri dengan tanda "\". Berikut ditampilkan contoh sederhana sebuah makro yang menerima input angka dari user, dan mencetak pesan berupa "ganjil" atau "genap" pada angka yang diinputkan sebelumnya.

#include <stdio.h> 

 

#define MACRO(num, str) 

{\ 

printf("%d", num);\ 

printf(" adalah");\ 

printf(" %s angka", str);\ 

printf("\n");\ 

 

int main(void

int num; 

 

printf("Masukkan angka: "); 

scanf("%d", &num); 

 

if (num & 1

MACRO(num, "ganjil"); 

else

MACRO(num, "genap"); 

 

return 0

}


Pada saat pembuatan kode program, hasil yang terlihat adalah normal tidak menampilkan pesan error apapun, namun setelah dijalankan maka akan menghasilkan pesan error.

[narendra@/media/partition/GFG]$ make macro
cc     macro.c   -o macro
macro.c: In function ‘main’:
macro.c:19:2: error: ‘else’ without a previous ‘if’
make: *** [macro] Error 1
[narendra@/media/partition/GFG]$ 

Mari perhatikan kesalahan yang terjadi pada penulisan makro pada contoh program sebelumnya. Makro yang telah dibuat sebelumnya diakhiri dengan tanda "}". Menurut aturan standar bahasa C, setiap statement yang dibuat pada bahasa pemrograman C harus diakhiri dengan tanda ";". Hal inilah kenapa makro yang dibuat diakhiri dengan tanda semicolon. Selanjutnya, perhatikan letak kesalahan pada program yang telah dibuat sebelumnya. 

if (num & 1){
--------------------------
-- Macro expansion --
--------------------------};    
/* Semicolon berada pada posisi akhir dari MACRO, disini letak ERROR tersebut*/
else {
--------------------------
-- Macro expansion --
--------------------------};

Makro yang telah dibuat diakhiri dengan tanda semicolon ";" ketika kompilator menjalankan makro, maka tanda semicolon akan diletakkan setelah statement "IF". Karena terdapat semicolon antara statement "IF" dan "ELSE" maka kompilator menampilkan pesan error ketika program tersebut dijalankan. Namun, program yang dijalankan akan bekerja secara normal, jika "IF" mengabaikan statement "ELSE" yang terdapat pada program.

Untuk mengatasi keterbatasan tersebut, maka makro dibuat menggunakan statement "do while". Maka hasil modifikasi makro akan diperlihatkan pada contoh program berikut ini.

#include <stdio.h> 

 

#define MACRO(num, str) 

do 

{\ 

printf("%d", num);\ 

printf(" adalah");\ 

printf(" %s angka", str);\ 

printf("\n");\ 

}

while(0

 

int main(void

int num; 

 

printf("Masukkan angka: "); 

scanf("%d", &num); 

 

if (num & 1

MACRO(num, "ganjil"); 

else

MACRO(num, "genap"); 

 

return 0

}


Ketika program dikompilasi dan dijalankan, maka hasil dari program akan bekerja secara baik.
[narendra@/media/partition/GFG]$ make macro
cc     macro.c   -o macro
[narendra@/media/partition/GFG]$ ./macro 
Masukkan angka: 9
9 adalah ganjil angka
[narendra@/media/partition/GFG]$ ./macro 
Masukkan angka: 10
10 adalah genap angka
[narendra@/media/partition/GFG]$ 

Setelah dilakukan perubahan statement looping menggunakan "do while" pada makro dan dibagian akhir dari while, telah dikondisikan sebagai "while(0)", maka hal inilah yang menjadi alasan kenapa program hanya dieksekusi sebanyak satu kali.

Juga, untuk makro multibaris dapat dilakukan dengan cara melakukan modifikasi input dari statement "do while" seperti diperlihatkan pada contoh berikut ini:

#include <stdio.h> 

 

#define MACRO(num, str) 

(

{\ 

printf("%d", num);\ 

printf(" adalah");\ 

printf(" %s angka", str);\ 

printf("\n");\ 

}

 

int main(void

int num; 

 

printf("Masukkan angka: "); 

scanf("%d", &num); 

 

if (num & 1

MACRO(num, "ganjil"); 

else

MACRO(num, "genap"); 

 

return 0

}

Output:
[narendra@/media/partition/GFG]$ make macro
cc     macro.c   -o macro
[narendra@/media/partition/GFG]$ ./macro 
Masukkan angka: 10
10 adalah genap angka
[narendra@/media/partition/GFG]$ ./macro 
Masukkan angka: 15
15 adalah ganjil angka
[narendra@/media/partition/GFG]$ 

Komentar

  1. Apa kegunaan makro dalam bahasa pemrograman C?

    BalasHapus
    Balasan
    1. Macro dalam bahasa C adalah pengganti string yang biasa digunakan untuk mendefinisikan suatu konstanta nilai.

      Contoh:

      #define MAX 1000

      Makro ini menetapkan nilai pengenal MAX ke angka 1000 dan kapanpun nilai pengenal tersebut ingin digunakan dalam program, maka programmer cukup menggunakan nilai pengenal MAX saja ketimbang menulis nilai 1000.

      Terdapat beberap jenis subtitusi makro. Bentuk yang paling umum adalah sebagai berikut:

      1. Substitusi makro sederhana yang digunakan untuk melakukan penggantian string sederhana untuk mendefinisikan nilai kosntanta.

      2. Substitusi makro argumen yang digunakan untuk mendefinisikan bentuk pengganti yang lebih kompleks dan lebih berguna dalam suatu program.

      3. Substitusi makro bersarang, yang digunakan untuk pendefinisian makro jenis lain dalam suatu bahasa pemrograman.

      Hapus
  2. Semua makro akan diganti dengan nilai definisinya masing-masing selama waktu kompilasi program, setelah menyertakan semua file hedar.

    BalasHapus
  3. Makro pada bahasa C dapat dianggap sebagai simbol penamaan yang digunakan pada waktu kompilasi program. Makro tersebut digunakan untuk menghidari penulisan kode berulang dan juga beberapa dependensi program.

    BalasHapus
  4. Makro sama halnya seperti fungsi sederhana pada bahasa C, yang ketika dipanggil, maka kode programnya akan diperluas pada titik pemanggilan tersebut.

    BalasHapus

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

Perbedaan stdio.h dan stdlib.h pada Bahasa C

6 Tahap Utama dalam Melakukan Kompilasi Program Hello World Java

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

Enkapsulasi pada Java

3 Jenis Utama Looping pada Java