Lompat ke konten Lompat ke sidebar Lompat ke footer

Operator Ternary Bahasa C dan Fungsinya

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.


Sebelum memahami lebih dalam materi tentang Operator Ternary Bahasa C dan Fungsinya, terlebih dahulu pelajari materi tentang: Program Modulus Angka Negatif Bahasa C, Awalan dan Akhiran Bahasa C Menggunakan Tanda ++, dan Operator Inkrementasi dan Ekspresi L-value Bahasa C dan Fungsinya.

Bahasa pemrograman C memiliki berbagai macam operator yang digunakan untuk berbagai tujuan, salah satunya adalah operator ternary. Operator ini dikenal juga dengan nama "conditional operator" atau "operator tiga argumen", dan digunakan untuk melakukan operasi yang melibatkan tiga operand. Artikel ini akan membahas tentang operator ternary dalam bahasa C, sintaksisnya, dan bagaimana cara penggunaannya dalam berbagai situasi.

Sintaksis Operator Ternary

Operator ternary dalam bahasa C memiliki sintaksis sebagai berikut:
condition ? expression1 : expression2;

Di mana:
  • condition adalah ekspresi yang akan dievaluasi.
  • expression1 adalah nilai yang akan dikembalikan jika condition bernilai benar (true).
  • expression2 adalah nilai yang akan dikembalikan jika condition bernilai salah (false).

Contoh:

#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 

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


Fungsi dan Penggunaan Operator Ternary

Operator ternary digunakan sebagai cara singkat untuk menuliskan pernyataan if-else. Hal ini dapat membuat kode menjadi lebih ringkas dan lebih mudah dibaca, terutama ketika digunakan untuk pengambilan keputusan sederhana. Berikut adalah beberapa contoh penggunaan operator ternary dalam berbagai situasi:

Pengambilan Keputusan Sederhana

Contoh paling dasar dari penggunaan operator ternary adalah untuk mengambil keputusan sederhana berdasarkan suatu kondisi.

Contoh:

#include <stdio.h>


int main() {


int a = 10;

int b = 20;

int max;


max = (a > b) ? a : b;


printf("Nilai maksimum adalah 

%d\n", max);


return 0;

}

Pada contoh yang diperlihatkan sebelumnya, operator ternary digunakan untuk menentukan nilai maksimum antara a dan b. Jika a lebih besar dari b, maka max akan diberi nilai a. Jika tidak, max akan diberi nilai b.

Penggunaan dalam Ekspresi Lebih Kompleks

Operator ternary juga dapat digunakan dalam ekspresi yang lebih kompleks dan bahkan dapat di-nesting (dipesarangkan) dalam beberapa tingkat untuk menangani beberapa kondisi.

Contoh:

#include <stdio.h>


int main() {


int x = 5;

int y = 10;

int z = 15;

int result;


result = (x > y) ? ((x > z) ? 

x : z) : ((y > z) ? y : z);


printf("Nilai terbesar adalah 

%d\n", result);


return 0;

}

Berdasarkan contoh tersebut, pengembang menggunakan operator ternary bersarang untuk menemukan nilai terbesar di antara x, y, dan z.

Penggunaan dalam Inisialisasi Variabel

Operator ternary juga bisa sangat berguna dalam inisialisasi variabel berdasarkan suatu kondisi.

Contoh:

#include <stdio.h>


int main() {


int age = 20;

const char* status;


status = (age >= 18) ? 

"Dewasa" : "Anak-anak";


printf("Status: %s\n"

status);


return 0;

}

Berdasarkan contoh tersebut, variabel status diinisialisasi dengan nilai "Dewasa" jika age lebih besar atau sama dengan 18, dan "Anak-anak" jika tidak.

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.

Contoh:

#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).

Contoh:

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

Contoh:

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

Catatan: 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.

Keuntungan Menggunakan Operator Ternary:
  • Ringkas dan Jelas: Operator ternary memungkinkan penulisan kode yang lebih ringkas dan lebih mudah dibaca untuk pengambilan keputusan sederhana.
  • Mengurangi Baris Kode: Dengan menggunakan operator ternary, pengembang dapat mengurangi jumlah baris kode yang dibutuhkan untuk melakukan operasi if-else.
  • Ekspresi Tunggal: Operator ternary memungkinkan penulisan ekspresi dalam satu baris, yang dapat berguna dalam inisialisasi variabel atau parameter fungsi.

Kesimpulan

Operator ternary adalah fitur yang berguna dalam bahasa pemrograman C untuk menulis pernyataan pengambilan keputusan yang ringkas dan efisien. Dengan memahami cara kerja dan penerapannya, pengembang dapat menulis kode yang lebih mudah dibaca dan dikelola. Namun, penting untuk menggunakan operator ternary dengan bijak dan tidak terlalu rumit, agar tidak mengurangi kejelasan kode.

Artikel ini didedikasikan kepada: Riza Mustika Ayu Puspita, Rizqi Annisa, Sofiani Vitamara Agustina, Yuni Tri Winanti, dan Adila Kartika Dewi.

5 komentar untuk "Operator Ternary Bahasa C dan Fungsinya"

  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

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 -