Operator Bitwise atau manipulasi bit

124 Direktorat Pembinaan SMK | 2008 kekiri untukan operasi baik OR, AND, OR maupun NOT. Perhatikan contoh pergeseran data 9D yang digeser kekiri maka nilai akan berubah. Perubahan tersebut akan mewakili sebuah operasi perkalian, pembagian atau operasi yang lain. Perhatikan contoh pergeseran data 9D dibawah ini: 9D = 00001001B digeser kekiri: 1x = 00010010B = 18D 2x = 00100100B = 36D Kalau digeser kekanan: 1x = 00000100B = 4D 2x = 00000010B = 2D 9D = 00001001B di AND dengan 2D = 00000010B 0D = 00000000B = hasil AND 9D = 00001001B di OR dengan 2D = 00000010B 11D = 00001011B = hasil OR 9D = 00001001B di NOT menjadi: ~9D = 11110110B = ‐10D model komplemen 2 Selain hasil tersebut diatas, dapat dibuktikan dengan cara melakukan komplemen kedua. Komplemen satu yaitu dengan melakukan konversi data 0 menjadi 1 atau sebaliknya, sedangkan komplemen kedua yaitu dengan melakukan penambahan data 01 pada hasil komplemen pertama. Untuk lebih jelasnya perhatikan contoh dibawah ini: 10D = 00001010B ‐10D = 11110101B model komplemen 1 = 11110110B model komplemen 2 Untuk menyatakan bilangan negatip dalam bilangan biner dipakai model komplemen. Model komplemen 2 diperoleh dengan cara model komplemen 1 ditambah 1. Program 3.20. Operasi bit pada Operator Bitwise include conio.h include iostream 2008 | Direktorat Pembinaan SMK 125 using namespace std; main { int u, v, w, x, y, z; u = 9 2 ; v = 9 2 ; w = 9 2 ; x = 9 2 ; y = 9 | 2 ; z = ~ 9 ; cout U = 9 2\n ; cout = d\n , u; cout V = 9 2\n ; cout = d\n , v; cout W = 9 2\n ; cout = d\n , w; cout X = 9 2\n ; cout = d\n , x; cout Y = 9 | 2\n ; cout = d\n , y; cout Z = ~9\n ; cout = d\n , z; getch; return ; } Keluaran program diatas adalah sebagai berikut: U = 9 2 = 36 V = 92 = 2 W = 9 2 = X = 9 2 = 11 Y = 9 | 2 = 11 Z = ~9 = ‐10 Contoh program diatas menunjukkan bahwa hasil operasi dari operator relasi atau operator logika hanya mempunyai satu nilai dari dua nilai kebenaran, yaitu : 126 Direktorat Pembinaan SMK | 2008  0 = false = salah atau  1 = true = benar

3.8.5. Operator Penugasan dan Operator Kombinasi

Operator penugasan Assignment operator atau pemberi nilai berupa tanda sama dengan “=”. Perhatikan contoh dibawah ini: nilai = 80; Artinya : variable “nilai” diisi dengan 80 A = x y; Artinya : variable “A” diisi dengan hasil perkalian antara x dan y. Operator kombinasi merupakan gabungan antara dua operator tertentu, yaitu antara operator aritmatika atau operator bitwise dengan operator penugasan yang digunakan untuk memendekkan penulisan operasi penugasan, seperti berikut: Tabel 3.13. Operator penugasan OPERATOR ARTI CONTOH ARTINYA = Memberi nilai setelah nilai semula dikalikan x = 5; x = x 5; = Memberi nilai sisa bagi setelah nilai semula dibagi x = 5; x = x 5; = Memberi nilai sisa bagi dari pembagian nilai semula x = 5; x = x 5; += Memberi nilai setelah nilai semula ditambahkan x += 5; x = x + 5; ‐ = Memberi nilai setelah nilai semula dikurangkan x ‐= 5; x = x ‐ 5; = Memberi nilai dari pergeseran bit ke kiri x = 5; x = x 5; = Memberi nilai dari pergeseran bit ke kanan x = 5; x = x 5; = Memberi nilai hasil bitwise AND x = 5; x = x 5; |= Memberi nilai hasil bitwise OR x |= 5; x = x | 5; = Memberi nilai hasil bitwise XOR x = 5; x = x 5;

3.9. Operator Ternary

Operator ternary adalah operator yang melibatkan tiga buah operand. Yang tergolong operator ini adalah: Operator kondisi dengan symbol ?: Bentuk ungkapan operator kondisi adalah : kondisi ? ungkapan_1 : ungkapan_2 Maksud dari ungkapan kondisi adalah: Jika kondisi bernilai benar, maka nilai ungkapan kondisi berupa nilai ungkapan_1 dan jika kondisi bernilai salah, maka nilai ungkapan kondisi berupa nilai ungkapan_2. Perhatikan contoh dibawah ini: 2008 | Direktorat Pembinaan SMK 127 maksim = nilai_awal nilai_akhir ? nilai_awal : nilai_akhir; maksud dari contoh diatas dapat di ungkapkan dalam bentuk kalimat seperti ini: jika nilai_awal = 80 dan nilai_akhir = 75, maka maksim = 80 sama dengan nilai_awal jika nilai_awal = 75 dan nilai_akhir = 80, maka maksim = 80 sama dengan nilai_akhir jika nilai_awal = 75 dan nilai_akhir = 75, maka maksim = 75 sama dengan nilai_akhir Program 3.21. Operasi kondisi pada Operator Kondisi include conio.h include iostream using namespace std; main { int a, b, c, d; a = 80 ; b = 75 ; c = a b ? a : b; cout Mencari nilai yang lebih tinggi\n\n ; cout a = \n a b; cout c = \n ; cout = \n a b a b; cout = \n\n c; a = 75 ; b = 80 ; c = a b ? a : b; cout Mencari nilai yang lebih tinggi\n\n ; cout a = \n a b; cout c = \n ; cout = \n a b a b; cout = \n c; getch; return ; } Keluaran program diatas adalah sebagai berikut: Mencari Nilai yang lebih tinggi a = 80 b = 75