180 likes | 556 Vues
TE E 2 103 Algoritma dan Pemrograman. Operator dan Ekspresi. Dosen: Abdillah, MIT Hp : 0853 6581 8665 Email: abdill 01 @ gmail.com Website: www. abdill01.wordpress.com. Tujuan. Mahasiswa memahami jenis operator dan ekspresi serta penggunaannya dalam program C.
E N D
TEE 2103Algoritma dan Pemrograman Operatordan Ekspresi Dosen: Abdillah, MIT Hp: 0853 6581 8665 Email: abdill01@gmail.com Website: www.abdill01.wordpress.com
Tujuan Mahasiswa memahami jenis operator dan ekspresi serta penggunaannya dalam program C.
Operator dan Ekspresi • Operator adalah karakter simbol yang menentukan sebuah ekspresi. Misalnya pada ekspresix + y karakter + adalah operator, sedangkan karakter x dan y adalah operand. • Pada C terdapat operator aritmetika, perbandingan, logika, penaikan, penurunan dan penugasan.
Operator Aritmetika • Operator aritmetika terdiri atas + ‒ * / dan % (modulus). • Ekspresi x/y pada bilangan bulat akan memotong semua angka di belakang koma. Misalnya hasil pembagian bilangan bulat 5/9 yakni 0,55 akan terpotong menjadi 0. Contoh lain: 4/3, 8/3 dan 15/4 akan menghasilkan 1, 2 dan 3.
Operator Modulus • Ekspresi x%y menghasilkan sisa hasil pembagian x/y. Misalnya ekspresi 5%9 menghasilkan nilai 9. Contoh lain: 5%3, 11%4 dan 15%5 akan menghasilkan 2, 3 dan 0. • Operator % tidak dapat diaplikasikan pada bilangan berkoma (float dan double).
Precedence • Operator * / dan % memiliki precedence (derajat komputasi) yang sama. • Operator + dan ‒ memiliki derajat komputasi lebih rendah.
Operator Perbandingan • Operator relasional (perbandingan) terdiri atas > >= < <= == dan !=. Operator > >= < dan <= memiliki derajat komputasi yang sama. Operator == dan != memiliki derajat komputasi lebih rendah. • Operator perbandingan memiliki derajat komputasi lebih rendah daripada operator aritmetika.
Operator Logika • Operator logika terdiri atas && dan ||. Ekspresi logika bernilai 1 jika benar 0 jika salah. • Derajat komputasi operator && lebih tinggi daripada operator || dan derajat komputasi keduanya lebih rendah daripada operator perbandingan.
Contoh Program Tahun kabisat diuji menggunakan operator aritmetika, perbandingan dan logika. Tahun kabisat adalah tahun yang habis dibagi 4 dan tidak habis dibagi 100, atau tahun yang habis dibagi 400. if ((tahun%4 == 0 && tahun%100 != 0) || tahun%400 == 0) printf("%d adalahtahunkabisat\n", tahun); else printf("%d bukan tahunkabisat\n", tahun);
Latihan • Tulislah sebuah program yang membaca sebuah bilangan tahun dan menentukan apakah tahun tersebut adalah kabisat atau bukan. • Gunakan fungsi scanf untuk membaca nilai tahun dari piranti masukan (keyboard). printf("Masukkanbilangan tahun: "); scanf("%d",&tahun);
Konversi Tipe Data Jika sebuah operator memiliki operand yang berbeda tipe, maka operand itu dikonversi dengan aturan sbb: • Jika salah satu operand adalah long double, konversi operand yang lainnya ke long double. • Atau jika salah satu operand adalah double, konversi operand yang lainnya ke double. • Atau jika salah satu operand adalah float, konversi operand yang lainnya ke float. • Atau konversi char dan short ke int • Maka jika salah satu operand adalah long, konversi operand yang lainnya ke long.
Operator Menaik dan Menurun • C menyediakan operator untuk menaikkan dan menurunkan nilai variabel, yakni ++ dan ‒‒. • Operator menaik menambah 1 pada operand sedangkan operator menurun mengurangi 1. • Penulisan operator menaik dan menurun bisa sebagai awalan atau akhiran. Misalnya n memiliki nilai 5, kemudian x = n++ ini berarti memberi nilai 5 pada x, tapi x = ++n akan memberi nilai 6 pada x.
Operator Penugasan • Operator penugasan adalah +=. • Ekspresi i = i + 2 dapat ditulis dalam bentuk ringkas i += 2
Ekspresi Bersyarat Statement di atas dapat ditulis dalam ekspresi bersyarat dengan format sbb: expr1 ? expr2 : expr3; Ekspresi expr1dievaluasi pertama kali. Jika kondisi (syarat) bernilai benar, maka expr2dievaluasi. Jika salah, maka ekspresi expr3dievaluasi. Hanya salah satu dari expr2 dan expr3 yang dievaluasi. if (a > b) z = a; else z = b; z = (a > b) ? a : b;
Contoh Program Sebuah contoh program konversi char ke int adalah fungsi lower, yang memetakan karakter tunggal ke huruf kecil untuk himpunan karakter ASCII. /* lower: konversi c ke huruf kecil ASCII */ int lower(int c) { if (c >= 'A' && c <= 'Z') return c + 'a' - 'A'; else return c; }
Latihan • Tulislah sebuah sebuah fungsi htoi (s), yang mengkonversi string hexadesimal ke nilai bilangan bulat. Angka yang diperbolehkan adalah 0-9, a-f dan A-F.