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.
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:
- Operator koma (,): Itu memungkinkan Anda untuk menggunakan beberapa ekspresi di mana hanya satu diharapkan.
- Operator alamat-of (&): Itu mengembalikan alamat memori dari variabel.
- Operator dereference (*): Itu mengakses nilai di alamat memori tertentu.
- Operator anggota struktur (.): Itu mengakses anggota dari struktur.
- 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