PEMROGRAMAN TERSTRUKTUR PERTEMUAN VIII OPERASI DALAM ALGORITMA/PROGRAM 1. Operasi Aritmatik 2. Operasi Perbandingan/ Relasional 3. Operasi logika. 1. Operasi aritmatik Operator Aritmatika dalam bahasa C++ : + (Tambah/ Penjumlahan) - (Kurang/ Pengurangan) * (Kali/ Perkalian) / (Bagi) % ( sisa hasil bagi) Tabel Operator Aritmatika Simbol Fungsi Contoh + Penambahan X = y + 6; - Pengurangan Y = x 5; * Perkalian Y = y * 3; / Pembagian Z = x / y; % Modulo (sisa bagi) A = % 3; ++ Increment (Penambah) X++; atau ++X; Decrement (Pengurang) Z ; atau Z; Contoh Operator % : 1. Menentukan bilangan ganjil atau genap yang dibaca. /* Program menentukan bilangan ganjil atau genap */ #include <iostream.h> void main() { int bil; cout << Masukkan bilangan : ; cin>>bil; if ( bil % 2 == 0) cout <<"Bil. genap"<<endl<<endl; else cout <<"Bil. ganjil"<<endl<<endl; }
Contoh Operator ++: 1. Dari potongan program berikut ini : bil=; cout <<++bil<<endl; 2. Dari potongan program berikut ini : bil=; cout <<bil++<<endl; Hasil eksekusi program ini adalah : 11 11 Hasil eksekusi program ini adalah : 11 Contoh Operator : 1. Dari potongan program berikut ini : bil=; cout <<- -bil<<endl; 2. Dari potongan program berikut ini : bil=; cout <<bil- -<<endl; Hasil eksekusi program ini adalah : 9 9 Hasil eksekusi program ini adalah : 9
Combined Operator Setiap ekspresi yang terbentuk : <Variabel> = <Variabel> <Operator> <Exp> ; dapat diganti <Variabel> <Operator> = <Exp> ; Ekspresi Dapat diganti dengan A = a + b ; A + = b ; A = a b ; A = b ; A = a * b ; A * = b ; A = a / b ; A / = b ; A = a % b ; A % = b ; A = a & b ; A & = b ; A = a b ; A = b ; A = a ^ b ; A ^ = b ; 2. Operasi Perbandingan / Relasional Operasai Relasional Operasi terhadap bilangan bulat Tabel Operator Relasi Operasi Simbol Fungsi = = = Sama dengan! = Tidak sama dengan < < Lebih kecil dari > > Lebih besar dari <= Lebih kecil atau sama dengan >= Lebih besar atau sama dengan?: Conditional assignment Keterangan : Conditional assignment?: memiki bentuk : True Nama_variable = ekspresi logika atau relasi? ekspresi-1 : ekspresi-2; False
1. if (gol== A ) gaji_pokok=150000; 2. if (status!= T ) tunjangan_tetap = 0.15 * gaji_pokok; 3. if (nilai >= 60) status= L ; /* Lulus */ else status= G ; /* Gagal */ statement diatas dapat diganti dengan : status = nilai >= 60? L : G ; 3. Operasai Logika AND, OR, NOT Tabel kebenaran logika A Not A True False False True Operasi logika hanya mempunyai dua nilai, yaitu True atau False Tabel Operator logika Simbol Fungsi Contoh && AND (a= = b) && (b<c) OR (a= =b) (b-c)! NOT!a Tabel kebenaran A B!A A&&B A B True True False True True True False False False True False True True False True False False True False False Pembeli akan mendapat diskon 1,5 %, apabila barang yang dibeli berjumlah > 50 atau harga barang berjumlah > Rp. 0.000,- If ( jml_brg > 50 jml_hrg > 0000) diskon = 0.015 * jml_hrg;
EKSPRESI Ekspresi Operand dan Operator Hasil Evaluasi dari sebuah Ekpresi nilai yang sesuai dengan type operand yang dipakai. MACAM MACAM EKPRESI 1. Ekspresi aritmatika Operator Aritmatik. 2. Ekspresi Numerik Operandnya berupa Numerik. a. (A/2.5)+C*B Operandnya adalah A, B, dan C, dan Operatornya adalah /,+,* b. (J*K)-*(O+K) Operandnya adalah O, I, J, K, dan Operatornya adalah +,*,- 3. Ekspresi Relasional Operator Relasional. Hasil Evaluasi Ekspresi nilai, nilai bertype Bolean ( True and False ). a. Ada = True b. Ada = true Not Ada (Hasil : False ) Ada and True (Hasil : True ) c. 7 < 5 (Hasil : False) d. Ada = true X = 9 Y = 19 Ada Or (X =Y ) (Hasil True ) e. Dari ekspresi logika dibawah ini akan menghasilkan nilai FALSE, kecuali : a. (5<4) and (3>2) c. not (5>=5) e. Tidak ada yang benar b. (5<4) or (3<2) d. (5>5) or (3<2) f. Jika x=1, y=5 dan z=, berikut ini adalah ekspresi relasi yang bernilai TRUE, kecuali : a. x+5< c. z-2>3 e. x+y>7 b. y>x+3 d. y>z-7 g. Dari soal f : ( x + 5 < ) && (z 2 > 3) Hasilnya : True atau False?
h. Dari soal f : ( y > x + 3 ) ( x + y > 7 ) Hasilnya : True atau False? PERIORITAS OPERATOR ARITMATIKA (dari tinggi ke rendah) PERIORITAS OPERATOR KETERANGAN 1 ( ) Tanda kurung 2 ++ Penambah dan pengurang 3 * / % Kali, bagi dan sisa 4 + Tambah dan kurang 5 = += -= *= /= %= Operator pemberi nilai aritmatika 6! Operator logika tidak/bukan 7 <> <= >= Operator relasi!= == 8 && Operator logika AND dan OR Bila diketahui a=0, b= dan c=2, tentukan hasil ekspresi aritmatika berikut ini : a. d = a / 2 * b; d. z = a/(2*b); b. x = a * b / 5 * c; e. p = a + b / 2 * b; c. y = a * ( b / 5 ) * c; f. q = a + c / + b; Soal : Anda diminta untuk menghitung jumlah pegawai yang berstatus Part time yang berjenis kelamin Laki, serta jumlah pegawai yang berstatus Part time yang berjenis kelamin Wanita. Input adalah NIP, Status dan jenis_kelamin. Bacalah input dengan cara proses pengulangan. Seleksi sesuai aturan diatas, kemudian jumlahkan pegawai yang berstatus Part time yang berjenis kelamin Laki atau jumlahkan pegawai yang berstatus Part time yang berjenis kelamin Wanita. Jika NIP yang Anda masukkan = 999, maka proses berulang atau proses input data selesai.
Penyelesaian Soal : #include <iostream.h> void main() { int nip,jml_part_lk=0,jml_part_wn=0; ; char status, jk; while (1) /* while(1) akan selalu bernilai TRUE karena 1=TRUE */ { cout<<"nip : "; cin>>nip; if (nip==999) break; cout<<"status (P/T) : "; cin>>status; cout<<"jenis kelamin (L/W) : "; cin>>jk; if (status=='p' && jk=='l') jml_part_lk++; else jml_part_wn++; } cout<<endl; } cout <<"Jumlah pegawai Part-time Laki-laki : "<<jml_part_lk<<endl; cout <<"Jumlah pegawai Part-time Wanita : "<<jml_part_wn<<endl;
SOAL : PT. MEDCO melakukan seleksi penerimaan pegawai, peserta akan DITERIMA apabila Nilai Test lebih dari 70 dan yang berumur dibawah 25 tahun. Sejumlah peserta akan diseleksi berdasarkan persyaratan diatas. Anda diminta untuk mencetak Keterangan yang berisi DITERIMA atau GAGAL, dan pada bagian akhir proses pengulangan di cetak jumlah yang diterima dan yang ditolak. Input : NoTest, Nilai dan Umur Output : Keterangan Proses : Gunakan proses pengulangan while untuk membaca sejumlah nilai Peserta.