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.

4 Contoh Program Menggunakan Operator Ternary pada Bahasa C dan C++

Artikel ini akan menjelaskan tentang operator ternary yang terdapat pada bahasa pemrograman C dan C++. Sebelum lanjut, perkirakan hasil keluaran dari program C++ berikut ini terlebih dahulu.

#include <iostream> 

using namespace std; 

 

int main() 

int test = 0

cout << "Karakter pertama " 

<< '1' << endl; 

cout << "Karakter kedua " 

<< (test ? 3 : '1') << endl; 

 

return 0

}


Awalnya diperkirakan hasil keluaran adalah sama seperti pada hasil cetakan statement. Tetapi, hasil keluaran yang muncul pada program setelah program tersebut dijalankan adalah;

Karakter pertama 1 
Karakter kedua 49 

Kenapa statement kedua mencetak nilai 49? 
untuk lebih memahami hal tersebut perhatikan penjelasan tentang operator ternary.

Operator ternary pada bahasa C/C++
Operator ternary memiliki format sebagai berikut:
ekspresi1 ? ekspresi2 : ekspresi3

Nilai dari ekspresi1 akan selalu dievaluasi nilainya. Eksekusi dari ekspresi2 dan ekspresi3 bergantung pada nilai keluaran dari ekspresi1. Jika ekspresi1 bernilai tidak nol maka ekspresi dua tidak akan dievaluasi, jika tidak, maka ekspresi3 akan dievaluasi.

Dampak pada program:
Dampak dari ekspresi1 akan selalu dievaluasi dan akan memperbarui data secepatnya sebelum proses eksekusi ekspresi2 dan ekspresi3. Dengan kata lain, tidak ada sequence point setelah evaluasi dari kondisi pada ekspresi ternary. Namun jika ekspresi2 dan ekspresi3 memiliki dampak, maka hanya salah satu ekspresi saja yang akan dievaluasi.

Tipe return:
Fakta lain terkait operator ternary adalah operator tersebut memiliki nilai return. Tipe return bergantung pada ekspresi2, dan convertibility dari ekspresi3 ke ekspresi2 untuk setiap aturan konversi overloaded. Jika tidak bisa dilakukan konversi, maka kompilator akan memberikan nilai error. Perhatikan contoh berikut ini,

Kompilasi program berikut ini tidak akan mengalami error jika dilakukan kompilasi. Tipe return dari ekspresi ternary diperkirakan adalah float (seperti ekspresi2) dan ekspresi2 (dengan kata lain tipe integer) yang secara implisit dapat dikonversi ketipe data float.

#include <iostream> 

using namespace std; 

 

int main() 

int test = 0

float fvalue = 3.111f

cout << (test ? fvalue : 0) << endl; 

 

return 0

}


Program berikut ini bersifat tidak kompatibel karena kompilator tidak dapat menemukan tipe return dari ekspresi ternary atau konversi implisit yang tersedia antara ekspresi2 (char array) dan eskpresi3 (tipe integer).

#include <iostream> 

using namespace std; 

 

int main() 

int test = 0

cout << test ? "Sebuah string" : 0 << endl; 

 

return 0

}


Program selanjutnya mungkin dapat dilakukan kompilasi tapi akan mengalami gagal proses pada saat runtime. Tipe return dari ekspresi ternary terikat untuk tipe char*, namun ekspresi akan mengembalikan tipe nilai berupa integer, sehingga menyebabkan program gagal bekerja. Pada dasarnya program mencoba untuk mencetak nilai string pada urutan alamat 0 pada runtime.

#include <iostream> 

using namespace std; 

 

int main() 

int test = 0

cout << (test ? "Sebuah"

" string" : 0) << endl; 

 

return 0

}


Dapat dilakukan observasi pada ekspresi2 yang dipertimbangkan sebagai tipe output dan ekspresi3 akan dikonversi menjadi ekspresi2 pada waktu runtime. Jika konversi sifatnya adalah implisit, maka kompilator akan memasukkan stubs untuk konversi. Namun, Jika konversi sifatnya adalah eksplisit maka kompilator akan memberikan nilai error. Jika kompilator apapun meleset untuk menangkap error tersebut, maka program akan gagal bekerja pada saat runtime.

Tips
Merupakan kelebihan dari sistem yang dikembangkan dalam C++ untuk menghindari beberapa macam bug yang terdapat pada program. Pastikan ekspresi dari ekspresi2 dan ekspresi3 memberikan tipe sama atau setidaknya memiliki tipe konversi yang sama. Seperti sebuah ungkapan, bahwa C++ mengkonversi union untuk konversi yang aman.

Komentar

  1. Apa yang dimaksud dengan operator ternary dalam bahasa pemrograman C?

    BalasHapus
    Balasan
    1. Operator ternary adalah operator yang membutuhkan tiga argumen dalam proses eksekusinya. Dimana, argumen pertama adalah argumen perbandingan, argumen kedua adalah argumen hasil dari perbandingan jika argumen pertama bernilai TRUE atau benar, dan argumen ketiga adalah hasil dari perbandingan jika argumen pertama bernilai FALSE atau salah. Operator ternary adalah salah satu alternatif untuk melakukan efisiensi penulisan dari operator IF dan Else dalam bahasa pemrograman C.

      Hapus
  2. Kenapa disebut dengan nama operator ternary?

    BalasHapus
    Balasan
    1. Nama ternary yang digunakan pada operator ternary adalah diambil dari fakta bahw operator tersebut membutuhkan tiga buah operan dalam proses pengeksekusiannya. Operator ternary adalah bentuk sebuah eskpresi, dimana setelah ekspresi tersebut dieksekusi maka akan langsung memberikan sebuah keputusan nilai baik itu bersifat TRUE ataupun FALSE.

      Hapus
  3. Operator ternary adalah operator yang terdapat pada beberapa bahasa pemrograman, salah satunya adalah bahasa pemrograman C, yang dalam pengoperasiannya membutuhkan tiga buah operand. Operator ini digunakan sebagai alternatif dari penggunaan operator IF Else.

    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