BAHASA PEMROGRAMAN C OPERATOR IRSAN JAELANI
Latihan Algoritma KONVERSI_JAM_KE_DETIK { Dibaca jam-menit-detik (hh:mm:ss). Nilai jam-menit-detik dikonversi ke dalam detik, lalu ditampilkan ke piranti keluaran } DEKLARASI Type Jam : record <hh: integer {0..23}, {jam} mm: integer {0..59}, {menit} ss: integer {0..59} {detik} > J : Jam totaldetik : integer DESKRIPSI read(J.hh, J.mm, J.ss)) totaldetik (J.hh*3600) + (J.mm*60) + J.ss write(totaldetik)
Kode Program /* PROGRAM KONVERSI JAM KE DETIK */ #include <stdio.h> main() typedef struct { long int hh; long int mm; long int ss; } Jam; Jam J; long int totaldetik; printf(“Jam: “); scanf(“%ld”, &J.hh); printf(“Menit: “); scanf(“%ld”, &J.mm); printf(“Detik: “); scanf(“%ld”, &J.ss); Totaldetik = (J.hh*3600) + (J.mm*60) + J.ss; Printf(“totaldetik = %ld”, total_detik); }
OPERATOR Operator adalah suatu tanda atau simbol yang digunakan untuk suatu operasi tertentu. Bahasa C menyediakan Operator Aritmatika, Operator Pengerjaan, Operator Hubungan/Perbandingan, Operator Logika,
Operator Aritmatika Operator Fungsi * Perkalian / Pembagian % Pembagian Modulo (Sisa Pembagian) + Penjumlahan - Pengurangan
Operator penaikan dan penurunan Fungsi ++ Penaikan -- Penurunan Operator Penaikan digunakan untuk menaikkan nilai variabel sebesar satu Operator Penurunan digunakan untuk menurunkan nilai variabel satu.
Penulisan x = x + 1; y = y + 1; Ditulis menjadi ++x; Atau x++;
Contoh program /* Contoh 1 program pemakaian operator++ */ include <stdio.h> main() { int r = 10; int s ; s = 10 + r++; printf(“s = %d, r = %d\n”, s, r); } /* Contoh 2 program pemakaian operator++ */ s = 10 + ++r;
Prioritas operator aritmatika Tertinggi ++ -- - (unary minus) * / % Terendah + - Contoh: (1) X = 2 + 3 * 2; (2) X = 2 * 3 % 2;
Operator Manipulasi Bit Operasi << Geser bit ke kiri >> Geser bit ke kanan & Dan (AND) | Atau (OR) ^ XOR ~ NOT (Komplemen) Seluruh operator bit hanya bisa dikenakan pada sebuah operand bertipe integer atau karakter
Prioritas Operator Manipulasi Bit Tertinggi ~ >> << & ^ Terendah | 7 6 5 4 3 2 1 Posisi bit 1
Contoh Program /* Contoh program melihat pengaruh operator << */ #include <stdio.h> Main() { unsigned x = 93; printf(“Nilai x semula = %d \n”, x); x = x << 1; /*geser kiri 1 bit*/ printf(“Nilai x kini = %d \n”, x); } 0000000001011101 = 93 0000000010111010 = 186
Operator Atau (|), xor (^), dan (&) Bit operand 1 Bit operand 2 Hasil | & ^ 1
Contoh PrograM /* Contoh program penggunaan operator */ #include <stdio.h> Main() { unsigned nilai = 81; unsigned cadar = 99; unsigned a, b, c; a = nilai | cadar; /* operasi atau */ b = nilai & cadar; /* operasi dan */ c = nilai ^ cadar; /* operasi XOR */ printf(“a = %u, b = %u, c = %u\n”, a, b, c); }
Penjelasan (1) 0000 0000 0101 0001 81 0000 0000 0110 0011 99 | (atau) 0000 0000 0111 0011 115 (2) 0000 0000 0101 0001 81 & (dan) 0000 0000 0100 0001 65 (3) 0000 0000 0101 0001 81 ^ (XOR) 0000 0000 0011 0010 50
Operatur penugasan Disimbolkan dengan “ = “ X = 2 + 3 Berarti memberikan penjumlahan 2 dengan 3 ke variabel X x = a = b = c; Penugasan seperti ini identik dengan tiga pernyataan sebagai berikut b = c; a = b; x = a; Dengan demikian baik variabel x,a,b akan bernilai sama dengan c a = (b = 1) + 2 berapa nilai a dan b? a = b = 1 + 2 ? Berapa nilai a dan b?
Operator kombinasi ( Pemendekan ) x = x + 2; y = y * 4; Menjadi x += 2; y *=4;
Operator kombinasi x += 2; Kependekan dari x = x + 2; x -= 2;
Operator dalam bahasa c dan prioritasnya Urutan Pengerjaan ( ) [ ] -> ! ~ ++ -- - * / % + - << >> < <= > >= == != & ^ | && || ?: = += -= *= dsb , Tertinggi Dari kiri ke kanan Dari kanan ke kiri
Maksud dari pengerjaan dari kiri ke kanan atau dari kanan ke kiri a = b = c; pada pernyataan di atas, operator yang dilibatkan ( = ) mempunyai sifat pengerjaan dimulai dari kanan, berarti b = c akan dikerjakan terlebih dahulu baru mengerjakan a = b x = 2 * 3 * 4; pada pernyataan di atas, 2 * 3 akan dikerjakan terlebih dahulu, barulah kemudian mengerjakan perkalian hasil dengan 4. Adapun karena prioritas = lebih rendah dari *, hasilnya baru diberikan ke x