Kecedaan Operator dalam C

Hai, para pemrogram yang sedang belajar! Hari ini, kita akan masuk ke dunia yang menarik dari kecedaan operator dalam C. Jangan khawatir jika Anda baru saja memulai dalam pemrograman – saya akan mengarahkan Anda melalui konsep ini secara langkah demi langkah, sama seperti yang saya lakukan untuk ribuan murid selama tahun-tahun mengajar saya. Mari kita mulai perjalanan ini bersama!

C - Operator Precedence

Apa Itu Kecedaan Operator?

Bayangkan Anda di dapur, mengikuti resep. Urutan Anda menambahkan bahan dan melakukan aksi dapat mempengaruhi secara signifikan masakan akhir. Demikian pula, dalam pemrograman C, urutan operasi yang dilakukan dapat mempengaruhi secara besar hasil kode Anda. Ini adalah tempat kecedaan operator memainkan perannya.

Kecedaan operator menentukan urutan dalam mana operator berbeda dievaluasi dalam ekspresi. Itu seperti aturan yang kompiler ikuti untuk menentukan operasi mana yang harus dilakukan terlebih dahulu.

Mari kita lihat contoh sederhana:

int result = 5 + 3 * 2;

Apa nilai result akan menjadi? Jika Anda menebak 11, Anda benar! Tetapi mengapa?

Operator perhitungan * memiliki kecedaan yang lebih tinggi daripada operator penambahan +. Jadi, 3 * 2 dievaluasi terlebih dahulu (menghasilkan 6), dan kemudian 5 ditambahkan kepadanya.

Jika kita ingin mengubah urutan operasi, kita dapat menggunakan kurung:

int result = (5 + 3) * 2;

Sekarang, result akan menjadi 16, karena kurung memaksa penambahan untuk dilakukan terlebih dahulu.

Tabel Kecedaan

Untuk membantu Anda ingat kecedaan berbagai operator dalam C, mari kita lihat tabel. Operator yang lebih tinggi dalam tabel memiliki kecedaan yang lebih tinggi.

Kecedaan Operator Deskripsi
1 () [] -> . Kurung, subskrip array, akses anggota
2 ! ~ ++ -- + - * & (type) sizeof Operator unar, sizeof, type cast
3 * / % Perkalian, pembagian, modulus
4 + - Penambahan, pengurangan
5 << >> Perpindahan bit kiri dan kanan
6 < <= > >= Operator hubungan
7 == != Operator kesetaraan
8 & AND bit
9 ^ XOR bit
10 | OR bit
11 && AND logis
12 || OR logis
13 ?: Operator kondisional
14 = += -= *= /= %= &= ^= = <<= >>=
15 , Operator koma

Jangan khawatir jika ini terlihat membingungkan – kita akan merobahnya dengan contoh!

Contoh Kecedaan Operator

Mari kita lihat beberapa contoh untuk memahami bagaimana kecedaan operator bekerja dalam praktek.

Contoh 1: Operator Aritmetik

int result = 10 + 5 * 2 - 3 / 2;

Untuk mengevaluasi ekspresi ini:

  1. Pertama, 5 * 2 dihitung (10)
  2. Kemudian, 3 / 2 dihitung (1, karena pembagian integer memotong)
  3. Akhirnya, kita memiliki 10 + 10 - 1, yang sama dengan 19

Jadi, result akan menjadi 19.

Contoh 2:campurkan Operator Aritmetik dan Hubungan

int x = 5;
int y = 3;
int z = 2;
int result = x > y + z && y < x * z;

Mari kitauraikan ini:

  1. y + z dievaluasi terlebih dahulu (3 + 2 = 5)
  2. x * z dihitung (5 * 2 = 10)
  3. x > y + z menjadi 5 > 5, yang salah (0)
  4. y < x * z menjadi 3 < 10, yang benar (1)
  5. Akhirnya, 0 && 1 dievaluasi, yang salah (0)

Dengan demikian, result akan menjadi 0 (salah).

Asosiasi Operator

Sekarang kita telah menutupi kecedaan, mari bicarakan asosiasi. Ketika operator memiliki kecedaan yang sama, asosiasi menentukan urutan evaluasi.

Ada dua jenis asosiasi:

  1. Kiri-ke-kanan
  2. Kanan-ke-kiri

Sebagian besar operator dalam C adalah asosiasi kiri-ke-kanan, artinya mereka dievaluasi dari kiri ke kanan. Namun, beberapa operator, seperti operator penugasan, adalah asosiasi kanan-ke-kiri.

Contoh Asosiasi Kiri-ke-Kanan

int a = 10 - 5 - 3;

Ini dievaluasi sebagai (10 - 5) - 3, menghasilkan 2.

Contoh Asosiasi Kanan-ke-Kiri

int x, y, z;
x = y = z = 5;

Ini dievaluasi sebagai x = (y = (z = 5)), menugaskan 5 ke semua variabel.

Kecedaan Operator Penambahan/ Pengurangan Prefix/Postfix

Sekarang, mari kita hadapi topik yang sulit: operator penambahan dan pengurangan. Operator ini dapat digunakan dalam dua cara: prefix (sebelum variabel) dan postfix (setelah variabel).

  • Prefix: ++x atau --x
  • Postfix: x++ atau x--

Versi prefix memiliki kecedaan yang lebih tinggi daripada versi postfix. Mari kita lihat bagaimana ini berjalan dalam kode:

int x = 5;
int y = ++x * 2;

Di sini, x dinaikkan ke 6 sebelum perhitungan, jadi y menjadi 12.

Sekarang, mari kita ubahnya menjadi postfix:

int x = 5;
int y = x++ * 2;

Dalam kasus ini, x digunakan dalam perhitungan sebelum dinaikkan, jadi y menjadi 10, dan x adalah 6 setelah operasi.

Analoga Menyenangkan

Pertimbangkan prefix penambahan seperti memakai sepatu Anda sebelum meninggalkan rumah, sedangkan postfix penambahan adalah seperti mengambil sepatu Anda dan memakainya setelah Anda telah meninggalkan. Prefix melakukan pekerjaan segera, sedangkan postfix menunggu setelah tindakan utama.

Kesimpulan

Memahami kecedaan dan asosiasi operator sangat penting untuk menulis program C yang benar dan efisien. Itu seperti belajar grammar bahasa baru – mungkin terlihat sulit pada awalnya, tapi dengan latihan, itu menjadi kebiasaan.

Ingat, jika ragu, gunakan kurung untuk menjelaskan kehendak Anda. Ini tidak hanya memastikan kode Anda bekerja seperti yang diharapkan, tetapi juga membuatnya lebih mudah dibaca oleh orang lain (dan diri Anda sendiri di masa mendatang!).

Terus latihan, dan segera Anda akan menjadi pengguna operator C seperti chef ahli di dapurnya – tahu tepat kapan menambahkan setiap bahan untuk hasil yang sempurna!

Credits: Image by storyset