Operator di C: Gerbang Anda ke Manaik Programming

Halo para jagoan coding masa depan! ? Saya sangat senang menjadi pemandu Anda dalam perjalanan yang menarik ini ke dunia pemrograman C. Hari ini, kita akan mengeksplorasi kerajaan magis operator di C. Jangan khawatir jika Anda belum pernah menulis satu baris kode sebelumnya - kita akan memulai dari awal dan bergerak maju bersama.

C - Operators

Operator Aritmatika: Spell Dasar

Mari kita mulai dengan spell paling sederhana di buku spell pemrograman kita - operator aritmatika. Ini adalah batu bata dari sebagian besar perhitungan di C.

Lima Fabulous Aritmatika

Berikut adalah lima operator aritmatika dasar:

Operator Nama Contoh
+ Penjumlahan 5 + 3 = 8
- Pengurangan 7 - 2 = 5
* Perkalian 4 * 6 = 24
/ Pembagian 10 / 2 = 5
% Modulus (Sisa) 7 % 3 = 1

Mari kita lihat mereka dalam aksi:

#include <stdio.h>

int main() {
int a = 10, b = 3;

printf("Penjumlahan: %d\n", a + b);
printf("Pengurangan: %d\n", a - b);
printf("Perkalian: %d\n", a * b);
printf("Pembagian: %d\n", a / b);
printf("Modulus: %d\n", a % b);

return 0;
}

Ketika Anda menjalankan kode ini, Anda akan melihat:

Penjumlahan: 13
Pengurangan: 7
Perkalian: 30
Pembagian: 3
Modulus: 1

Perhatikan bagaimana pembagian memberikan kita 3 bukannya 3.33? Itu karena ketika kita membagi integer di C, kita mendapat hasil integer. Operator modulus (%) memberikan kita sisa setelah pembagian.

Operator Relasional: Membandingkan Apel dan Jeruk

Sekarang bahwa kita bisa melakukan matematika dasar, mari kita belajar bagaimana membandingkan hal-hal. Operator relasional adalah seperti juri di pertunjukan bakat - mereka membandingkan dua nilai dan memberitahu kita bagaimana mereka berhubungan satu sama lain.

Berikut adalah daftar operator relasional kita:

Operator Arti Contoh
== Sama dengan 5 == 5 adalah benar
!= Tidak sama dengan 5 != 3 adalah benar
> Lebih besar dari 7 > 3 adalah benar
< Lebih kecil dari 2 < 8 adalah benar
>= Lebih besar atau sama dengan 5 >= 5 adalah benar
<= Lebih kecil atau sama dengan 4 <= 4 adalah benar

Mari kita gunakan ini:

#include <stdio.h>

int main() {
int x = 5, y = 8;

printf("x == y: %d\n", x == y);
printf("x != y: %d\n", x != y);
printf("x > y: %d\n", x > y);
printf("x < y: %d\n", x < y);
printf("x >= y: %d\n", x >= y);
printf("x <= y: %d\n", x <= y);

return 0;
}

Ini akan menghasilkan:

x == y: 0
x != y: 1
x > y: 0
x < y: 1
x >= y: 0
x <= y: 1

Di C, 0 berarti salah, dan nilai non-zero (biasanya 1) berarti benar. Jadi, kita bisa lihat bahwa 5 adalah benar tidak sama dengan 8, dan itu adalah lebih kecil dari 8.

Operator Logika: Pemegang Keputusan

Operator logika adalah seperti para dewa tua desa pemrograman kita. Mereka membantu kita membuat keputusan kompleks dengan menggabungkan kondisi yang sederhana.

Berikut adalah operator logika kita:

Operator Arti Contoh
&& DAN (5 > 3) && (4 < 7) adalah benar
|| ATAU (5 > 8) || (4 < 7) adalah benar
! BUKAN !(5 > 8) adalah benar

Mari kita lihat bagaimana ini bekerja:

#include <stdio.h>

int main() {
int a = 5, b = 3, c = 8;

printf("(a > b) && (c > a): %d\n", (a > b) && (c > a));
printf("(a > b) || (a > c): %d\n", (a > b) || (a > c));
printf("!(a > b): %d\n", !(a > b));

return 0;
}

Ini akan menghasilkan:

(a > b) && (c > a): 1
(a > b) || (a > c): 1
!(a > b): 0

Operator DAN (&&) mengembalikan benar hanya jika kedua kondisi adalah benar. Operator ATAU (||) mengembalikan benar jika setidaknya satu kondisi adalah benar. Operator BUKAN (!) membalikkan nilai kebenaran.

Operator Bitwise: Magis Binary

Sekarang, kita memasuki kerajaan magis binary. Operator bitwise bekerja langsung dengan representasi biner dari angka. Mereka adalah seperti mikroskop dalam dunia pemrograman, memungkinkan kita untuk melihat dan memanipulasi bit individu.

Berikut adalah operator bitwise kita:

Operator Nama Contoh
& AND Bitwise 5 & 3 = 1
| OR Bitwise 5 | 3 = 7
^ XOR Bitwise 5 ^ 3 = 6
~ NOT Bitwise ~5 = -6
<< Shift Kiri 5 << 1 = 10
>> Shift Kanan 5 >> 1 = 2

Mari kita lihat ini dalam aksi:

#include <stdio.h>

int main() {
unsigned int a = 5, b = 3;  // 5 adalah 101 dalam biner, 3 adalah 011

printf("a & b = %u\n", a & b);   // 101 & 011 = 001
printf("a | b = %u\n", a | b);   // 101 | 011 = 111
printf("a ^ b = %u\n", a ^ b);   // 101 ^ 011 = 110
printf("~a = %d\n", ~a);         // ~101 = ...11111010 (dua's complement)
printf("a << 1 = %u\n", a << 1); // 101 menjadi 1010
printf("a >> 1 = %u\n", a >> 1); // 101 menjadi 10

return 0;
}

Ini akan menghasilkan:

a & b = 1
a | b = 7
a ^ b = 6
~a = -6
a << 1 = 10
a >> 1 = 2

Operator ini sangat berguna ketika Anda bekerja dengan pemrograman tingkat rendah atau perlu untuk mengoptimalkan kode Anda.

Operator Penugasan: Pemutakhir nilai

Operator penugasan adalah seperti para scrib desa pemrograman kita. Mereka menulis (atau menugaskan) nilai ke variabel. Mari kita kenal dengan operator penugasan kita:

Operator Contoh Setara dengan
= x = 5 x = 5
+= x += 3 x = x + 3
-= x -= 2 x = x - 2
*= x *= 4 x = x * 4
/= x /= 2 x = x / 2
%= x %= 3 x = x % 3
<<= x <<= 2 x = x << 2
>>= x >>= 1 x = x >> 1
&= x &= 3 x = x & 3
^= x ^= 5 x = x ^ 5
|= x |= 3 x = x | 3

Ini adalah contoh cepat:

#include <stdio.h>

int main() {
int x = 10;

x += 5;  // x sekarang adalah 15
printf("Setelah x += 5: %d\n", x);

x *= 2;  // x sekarang adalah 30
printf("Setelah x *= 2: %d\n", x);

x %= 7;  // x sekarang adalah 2 (30 % 7 = 2)
printf("Setelah x %%= 7: %d\n", x);

return 0;
}

Ini akan menghasilkan:

Setelah x += 5: 15
Setelah x *= 2: 30
Setelah x %= 7: 2

Operator ini adalah pintasan yang membuat kode kita lebih ringkas dan seringkali lebih mudah dibaca.

Operator Lainnya: Pasukan Khusus

Sekarang, mari kita kenal dengan beberapa operator khusus yang tidakmuat ke dalam kategori kita lainnya.

Operator sizeof

Operator sizeof memberitahu kita ukuran variabel atau jenis data dalam byte. Itu seperti rak pita untuk data kita.

#include <stdio.h>

int main() {
int x;
char c;
float f;

printf("Ukuran int: %zu byte\n", sizeof(x));
printf("Ukuran char: %zu byte\n", sizeof(c));
printf("Ukuran float: %zu byte\n", sizeof(f));

return 0;
}

Ini mungkin menghasilkan (tergantung pada sistem Anda):

Ukuran int: 4 byte
Ukuran char: 1 byte
Ukuran float: 4 byte

Operator Ternary

Operator ternary adalah seperti pernyataan if-else yang ringkas. Itu ditulis sebagai condition ? value_if_true : value_if_false.

#include <stdio.h>

int main() {
int x = 10;
int y = (x > 5) ? 1 : 0;

printf("y = %d\n", y);

return 0;
}

Ini akan menghasilkan:

y = 1

Karena x lebih besar dari 5, y ditugaskan nilai 1.

Precedensi Operator di C: Hierarki

Seperti dalam matematika, C memiliki hierarki operasi. Hierarki ini menentukan mana operasi mana yang dilakukan terlebih dahulu ketika banyak operator digunakan dalam ekspresi tunggal.

Berikut adalah tabel precedensi yang disederhanakan, dari tinggi ke rendah:

Precedensi Operator
1 () [] -> .
2 ! ~ ++ -- + - * & (jenis) sizeof
3 * / %
4 + -
5 << >>
6 < <= > >=
7 == !=
8 &
9 ^
10 |
11 &&
12 ||
13 ?:
14 = += -= *= /= %= &= ^= |= <<= >>=
15 ,

Ingat, jika Anda khawatir, gunakan tanda kurung untuk membuat niat Anda jelas!

Operator Lain di C: Gem Hidden

Ada beberapa operator lain di C yang belum kita cover:

  1. Operator koma (,): Itu memungkinkan Anda untuk menggunakan beberapa ekspresi di mana hanya satu diharapkan.
  2. Operator alamat-of (&): Itu mengembalikan alamat memori dari variabel.
  3. Operator dereference (*): Itu mengakses nilai di alamat memori tertentu.
  4. Operator anggota struktur (.): Itu mengakses anggota dari struktur.
  5. Operator penunjuk struktur (->): Itu mengakses anggota dari struktur melalui penunjuk.

Kita akan eksplorasi lebih lanjut tentang ini ketika kita mendive ke pointer dan struktur di pelajaran mendatang.

Dan itu semua, para jagoan coding masa depan! Kita telah berkeliling melalui kerajaan operator C, dari spell aritmatika sederhana sampai incantasi bitwise kompleks. Ingat, praktek membuat perfect, jadi jangan khawatir untuk eksperimen dengan operator ini di kode Anda sendiri. Happy coding, dan mungkin bit menjadi selalu di pihak Anda! ?‍♂️?

Credits: Image by storyset