Penggunaan Operator: Gerbang Anda untuk Memasuki Sesi Magik Pemrograman

Hai di sana, penyihir pemrograman masa depan! ? Saya sangat gembira untuk menjadi pemandu anda dalam perjalanan yang menarik ini ke dunia pemrograman C. Hari ini, kita akan mengeksplorasi ranah magik operator dalam C. Jangan khawatir jika anda belum pernah menulis satu baris kode sebelumnya – kita akan memulai dari awal dan bekerja bersama-sama ke atas.

C - Operators

Operator Aritmetik: Spell yang Paling Asas

Mari kita mulakan dengan spell yang paling asas dalam buku spell pemrograman kita – operator aritmetik. Ini adalah batu bata bagi kebanyakan perhitungan dalam C.

Lima Operator Aritmetik yang Fantastik

Berikut adalah lima operator aritmetik asas:

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

Mari kita lihat mereka beraksi:

#include <stdio.h>

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

printf("Penambahan: %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;
}

Apabila anda menjalankan kod ini, anda akan lihat:

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

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

Operator Relasional: Membandingkan Apel dan Jeruk

Sekarang bahwa kita bisa melakukan matematik asas, mari kita belajar bagaimana untuk membandingkan hal-hal. Operator relasional adalah seperti juri di atas rakitan bakat – mereka membandingkan dua nilai dan memberitahu kita bagaimana mereka berkaitan satu sama lain.

Berikut adalah rangkaian 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 mereka:

#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

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

Operator Logikal: Pemutus Keputusan

Operator logikal adalah seperti para pemimpin bijak di atas perkampungan pemrograman kita. Mereka membantu kita membuat keputusan kompleks dengan menggabungkan kondisi yang lebih sederhana.

Berikut adalah operator logikal 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 mereka 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 sekurang-kurangnya satu kondisi adalah benar. Operator BUKAN (!) membalikkan nilai kebenaran.

Operator Bitwise: Magician Binary

Sekarang, kita memasuki ranah magik binary. Operator bitwise bekerja langsung dengan representasi binari angka. Mereka adalah seperti mikroskop dalam dunia pemrograman, memungkinkan kita untuk melihat dan mengoperasikan bit-bit individu.

Berikut adalah operator bitwise kita:

Operator Nama Contoh
& DAN Bitwise 5 & 3 = 1
| ATAU Bitwise 5 | 3 = 7
^ XOR Bitwise 5 ^ 3 = 6
~ BUKAN Bitwise ~5 = -6
<< Shift Kiri 5 << 1 = 10
>> Shift Kanan 5 >> 1 = 2

Mari kita lihat mereka beraksi:

#include <stdio.h>

int main() {
unsigned int a = 5, b = 3;  // 5 adalah 101 dalam binari, 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 apabila anda bekerja dengan pemrograman tingkat rendah atau perlu untuk mengoptimalkan kode anda.

Operator Penugasan: Pengubah Nilai

Operator penugasan adalah seperti para penulis di atas dunia pemrograman kita. Mereka menulis (atau menugaskan) nilai ke variabel. Mari kita kenal 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

Berikut 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 beberapa operator khusus yang tidak muat ke dalam kategori kita yang lain.

Operator sizeof

Operator sizeof memberitahu kita ukuran variabel atau jenis data dalam byte. Ia seperti rakit penyiram 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. Ia 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.

Urutan Operator dalam C: Hierarchy

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

Berikut adalah tabel urutan sederhana, dari tinggi ke rendah:

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

Ingat, apabila ragu, gunakan tanda kurung untuk membuat niat anda jelas!

Operator Lain dalam C: Gem Hidden

Ada beberapa operator lain dalam C yang kita belum pokok-pokokkan:

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

Kita akan eksplorasi lebih lanjut tentang mereka apabila kita mendive ke atas pointer dan struktur di pelajaran mendatang.

Dan itu semua, pemuda pemrograman saya! Kita telah berkeliling melalui negeri operator C, dari spell aritmetik yang sederhana hingga incantasi bitwise yang kompleks. Ingat, latihan membuat perfect, jadi jangan khawatir untuk bereksperimen dengan operator ini di kode anda sendiri. Happy coding, dan mungkin bits selalu di atas pilihan anda! ?‍♂️?

Credits: Image by storyset