SlideShare a Scribd company logo
Ekspresi
Tim Olimpiade Komputer Indonesia
1/26
Kilas Balik: Assignment
• Program menjadi kurang bermanfaat jika kita hanya bisa
mengisi variabel dengan nilai yang pasti.
• Kadang-kadang dibutuhkan hal yang lebih ekspresif seperti
penjumlahan:
a = 5;
b = 2;
jumlah = a + b;
• Kenyataannya, hal ini dapat diwujudkan pada pemrograman.
• Perintah ”a + b” biasa disebut sebagai ekspresi.
2/26
Mengenal Ekspresi
• Ekspresi terdiri dari dua komponen: operator dan operand.
• Operand menyatakan nilai yang akan dioperasikan, misalnya
bilangan atau suatu ekspresi lagi.
• Operator menyatakan bagaimana operand akan dioperasikan,
apakah ditambah, dikali, atau dibagi?
3/26
Mengenal Ekspresi (lanj.)
Bisa juga dibentuk ekspresi bersarang, yaitu ekspresi yang
operand-nya merupakan ekspresi lagi:
4/26
Operasi Numerik
• Operasi pada bilangan yang dapat dilakukan adalah
penjumlahan (+), pengurangan (-), perkalian (*), pembagian
(/), dan modulo (%).
• Jika kedua operand merupakan bilangan bulat, hasil
pengoperasian selalu bilangan bulat juga.
• Ketika setidaknya salah satu dari operand ada yang bertipe
data floating point, pengoperasian akan selalu menghasilkan
floating point.
5/26
Operasi Numerik (lanj.)
• Operasi pembagian pada kedua operand berupa bilangan bulat
didefinisikan sebagai: membagi, lalu dibulatkan (ke bawah
untuk hasil positif, ke atas untuk hasil negatif). Contoh:
• 7 / 2 = 3
• 10 / 2 = 5
• 3 / 5 = 0
• -5 / 2 = -2
• Operasi pembagian dengan salah satu operand berupa floating
point akan menghasilkan floating point pula. Contoh:
• 10.0 / 5 = 2.0000000
• 7 / 2.0 = 3.5000000
6/26
Operasi Numerik (lanj.)
• Operasi modulo adalah mengambil sisa bagi dari operand
pertama terhadap operand kedua. Contoh:
• 7 mod 2 = 1
• 10 mod 2 = 0
• 3 mod 5 = 3
• 8 mod 3 = 2
• Operasi mod hanya bisa dilakukan apabila kedua operand
memiliki tipe data bilangan bulat.
7/26
Contoh Program: kuadrat.cpp
• Setelah memahami tentang operasi numerik, coba perhatikan
program berikut dan cari tahu apa keluarannya!
#include <cstdio>
int a, b, c, x, hasil;
int main() {
a = 1;
b = 3;
c = -2;
x = 2;
hasil = a*x*x + b*x + c;
printf("ax^2 + bx + c = %dn", hasil);
}
8/26
Prioritas Pengerjaan
• Seperti pada ilmu matematika, ada juga prioritas pengerjaan
pada ekspresi numerik. Tabel berikut menunjukkan
prioritasnya:
Prioritas Operasi
1 *,/,mod
2 +,-
• Jika ada beberapa operasi bersebelahan yang memiliki
prioritas sama, operasi yang terletak di posisi lebih kiri akan
dikerjakan lebih dahulu.
9/26
Contoh Program: numerik.cpp
• Kita juga bisa menggunakan tanda kurung untuk mengatur
prioritas pengerjaan suatu ekspresi.
• Perhatikan contoh berikut dan coba jalankan programnya:
#include <cstdio>
int hasil1, hasil2;
int main() {
hasil1 = 3+5 / 4;
hasil2 = (3+5) / 4;
printf("%dn", hasil1);
printf("%dn", hasil2);
}
• Isi dari variabel hasil1 adalah 4, karena operasi ”5 div 4”
memiliki prioritas yang lebih tinggi untuk dikerjakan, dan
menghasilkan nilai 1. Barulah ”3 + 1” dilaksanakan.
10/26
Operasi Unary
• Pada C++, terdapat pula operasi unary numerik.
• Operasi unary berarti hanya melibatkan satu operand.
• Misalnya terdapat variabel x, operasi unary tersedia berupa:
• x++, artinya tambah x dengan 1.
• x--, artinya kurangi x dengan 1.
11/26
Contoh Operasi Unary
Perhatikan dan coba eksekusi program berikut untuk memahami
operasi unary:
#include <cstdio>
int main() {
int x = 5;
x++;
printf("x: %dn", x);
x--;
printf("x: %dn", x);
}
12/26
Fungsi Dasar Numerik
Untuk membantu perhitungan, C++ menyediakan fungsi-fungsi
pada STL ”cmath”.
• round: membulatkan suatu bilangan pecahan bilangan bulat
terdekat (hasilnya tetap bertipe floating point). Contoh:
round(1.2) akan menghasilkan 1.0, sementara round(1.87)
akan menghasilkan 2.0.
• sqrt: mendapatkan akar kuadrat dari suatu bilangan.
Contoh: sqrt(9) akan menghasilkan 3.00, dan sqrt(3) akan
menghasilkan 1.73205....
13/26
Contoh Program: cmath.cpp
• Perhatikan contoh penggunaan STL cmath berikut:
#include <cstdio>
#include <cmath>
int main() {
printf("%lfn", sqrt(5));
printf("%lfn", round(5.2));
printf("%lfn", round(5.6));
}
14/26
Operasi Relasional
• Kita juga bisa melakukan operasi relasional, yaitu:
• kurang dari (<)
• lebih dari (>)
• sama dengan (==)
• kurang dari atau sama dengan (<=)
• lebih dari atau sama dengan (>=)
• tidak sama dengan (! =)
• Operasi relasional harus melibatkan dua operand (ingat bahwa
operand bisa jadi berupa ekspresi lagi), dan menghasilkan
sebuah nilai kebenaran.
• Pada C++, nilai kebenaran dinyatakan dengan tipe data
boolean.
15/26
Contoh Program: relasional.cpp
• Perhatikan contoh berikut dan coba jalankan programnya:
#include <cstdio>
int main() {
printf("%dn", 2 > 1);
printf("%dn", 2 < 1);
printf("%dn", 2 == 1);
printf("%dn", 2 >= 1);
printf("%dn", 1 == 1);
printf("%dn", 1 != 1);
printf("%dn", 1 != 2);
}
16/26
Operasi Relasional pada Floating Point
• Karena komputer tidak dapat secara sempurna menyimpan
nilai floating point, Anda perlu hati-hati saat membandingkan
dua bilangan riil.
• Ekspresi berikut mungkin saja bernilai FALSE:
(0.1 + 0.2) == 0.3
• Sebab 0.1 + 0.2 bisa saja bernilai 0.30000000000000001
17/26
Operasi Relasional pada Floating Point (lanj.)
• Untuk memeriksa kesamaan antara dua nilai floating point,
biasanya dilibatkan suatu nilai toleransi.
• Misalnya, kedua nilai dianggap sama apabila selisih mereka
kurang dari 10−8.
18/26
Operasi Relasional (lanj.)
• Operasi relasional dapat dilakukan pada setiap tipe data
ordinal, sehingga bisa juga diterapkan pada char.
• Perbandingan karakter dilakukan dengan membandingkan
kode ASCII mereka, sehingga menjadi seperti membandingkan
angka biasa.
• Contoh:
• ’a’ < ’b’ akan bernilai TRUE
• ’a’ > ’z’ bernilai FALSE
• ’A’ < ’a’ akan bernilai TRUE
19/26
Operasi Relasional (string)
• Lebih jauh lagi, string sebenarnya merupakan untaian char.
Operasi relasional juga bisa diterapkan pada string (meskipun
string bukan tipe data ordinal).
• C++ akan membandingkan karakter demi karakter dari kiri ke
kanan. Begitu ditemukan ada perbedaan karakter, lebih kecil
atau tidaknya suatu string ditentukan oleh karakter tersebut.
• Contohnya, ”aa” < ”ab” akan bernilai TRUE.
• Jika sampai salah satu string habis dan tidak ditemukan ada
perbedaan karakter, maka stirng yang lebih pendek dianggap
lebih kecil.
• Contohnya ”a” < ”aa” bernilai TRUE.
20/26
Contoh Program: relasional2.pas
• Perhatikan contoh berikut dan coba jalankan programnya:
#include <cstdio>
int main() {
printf("%dn", ’a’ > ’A’);
printf("%dn", ’a’ < ’A’);
printf("%dn", ’a’ >= ’A’);
printf("%dn", ’a’ == ’A’);
printf("%dn", "a" < "aa");
printf("%dn", "abcb" > "abca");
printf("%dn", "abc" == "abc");
printf("%dn", "abc" <= "abc");
}
21/26
Operasi Boolean
• Operasi boolean merupakan operasi yang hanya melibatkan
nilai-nilai kebenaran. Terdiri atas: not (!), and (&&), or (||),
xor (b).
• Operasi-operasi ini sesuai dengan sebuah cabang ilmu
matematika yang bernama ”aljabar boolean”.
• Operasi not merupakan operasi unary. Gunanya untuk
membalik nilai kebenaran.
• Tabel berikut menunjukkan efek dari penggunaan not, yang
cara penulisannya dengan tanda seru (!) sebelum variabelnya.
a !a
TRUE FALSE
FALSE TRUE
22/26
Operasi Boolean (lanj.)
• Operasi boolean yang lainnya merupakan operasi binary, yang
artinya melibatkan dua operand.
• Tabel berikut menunjukkan efek dari penggunaan
operator-operator tersebut:
a b a && b a || b abb
TRUE TRUE TRUE TRUE FALSE
TRUE FALSE FALSE TRUE TRUE
FALSE TRUE FALSE TRUE TRUE
FALSE FALSE FALSE FALSE FALSE
23/26
Operasi Boolean (lanj.)
• Prioritas pengerjaan dari operator boolean secara berurutan
adalah: not, and, or, xor.
• Tanda kurung juga bisa digunakan untuk menentukan operasi
mana yang perlu dijalankan terlebih dahulu. Bahkan sangat
disarankan untuk selalu menggunakan tanda kurung untuk
kejelasan.
24/26
Contoh Program: relasional3.pas
• Perhatikan contoh berikut dan coba jalankan programnya:
#include <cstdio>
int main() {
printf("%dn", 2 > 1);
printf("%dn", !(2 > 1));
printf("%dn", (2 > 1) && (3 > 1));
printf("%dn", ((2 > 1) || (3 < 1)) && (1 == 1));
printf("%dn", (1 != 1) ^ !(1 != 1));
}
• Perhatikan bahwa tanda kurung diperlukan dalam ekspresi
”not (2 > 1)”. Dengan tanda kurung, ”2 > 1” akan
dievaluasi terlebih dahulu, menghasilkan nilai boolean.
Barulah operator not bisa mengolah nilai boolean tersebut.
25/26
Selanjutnya...
• Kini kalian sudah mempelajari tentang variabel, ekspresi, dan
masukan/keluaran.
• Artinya, sudah waktunya untuk menulis program-program
sederhana.
26/26

More Related Content

PDF
pemrograman-dasar-03-ekspresi untuk sma.pdf
DOCX
Laporan Praktikum 3 DPK Operator
PDF
Pertemuan 3 Operator
PPTX
3 adp operator
PDF
Pertemuan 3 Operator
PDF
E1 e117049 nurfadhila fahmi_tugas3
PPT
Bab 3 operator
PPT
pemrograman-dasar-03-ekspresi untuk sma.pdf
Laporan Praktikum 3 DPK Operator
Pertemuan 3 Operator
3 adp operator
Pertemuan 3 Operator
E1 e117049 nurfadhila fahmi_tugas3
Bab 3 operator

Similar to pemrograman-dasar-cpp_03-ekspresi.pdf (20)

PDF
Diskusi Dasar Pemrograman Pertemuan Ke-6.pdf
PPTX
Simple-Process_Java.pptx
PPTX
Algoritma&Pemrograman C++ Pertemuan 3
DOCX
Laporan praktikum modul ii & iii
PPTX
Bab 6 konsep dasar pemrograman (2)
PDF
PPTX
05 konsep dasar pemrograman (2)
PPTX
05 konsep dasar pemrograman (2)
PPTX
05 konsep dasar pemrograman (2)
PDF
PDF
P1 2-tipe data
PDF
C programming language notes (4)
PPT
Pertemuan 6.ppt
PDF
Operator bahasa c
PPT
Algoritma Pemrograman - Operator
PDF
Dasar c
PDF
M04b dasar program c
PPTX
Pertemuan 5&6.pptx Pertemuan 5&6.pptx Pertemuan 5&6.pptx
PPTX
Pertemuan 5&6.pptx [Autosaved].pptx Pertemuan 5&6.pptx [Autosaved].pptx
Diskusi Dasar Pemrograman Pertemuan Ke-6.pdf
Simple-Process_Java.pptx
Algoritma&Pemrograman C++ Pertemuan 3
Laporan praktikum modul ii & iii
Bab 6 konsep dasar pemrograman (2)
05 konsep dasar pemrograman (2)
05 konsep dasar pemrograman (2)
05 konsep dasar pemrograman (2)
P1 2-tipe data
C programming language notes (4)
Pertemuan 6.ppt
Operator bahasa c
Algoritma Pemrograman - Operator
Dasar c
M04b dasar program c
Pertemuan 5&6.pptx Pertemuan 5&6.pptx Pertemuan 5&6.pptx
Pertemuan 5&6.pptx [Autosaved].pptx Pertemuan 5&6.pptx [Autosaved].pptx
Ad

Recently uploaded (20)

DOCX
Modul Ajar Deep Learning PKN Kelas 10 SMA Terbaru 2025
PPTX
Modul 4 Asesmen-dalam-Pembelajaran-Mendalam.pptx
PDF
BAHASA INDONESIA KELAS 6 SD TEKS INFORMATIF
DOCX
Lembar Kerja Mahasiswa Information System
PPTX
materi pencegahan perkawinan usia anak.pptx
PDF
ANALISIS SOALAN BAHASA MELAYU SPM 2021-2024 (1).pdf
PPTX
ppt kelas XII materi sifat koligatif larutan
PPTX
Bahan Tayang OJT Pembelajaran Mendalam KS
PDF
Pengenalan Undang-undang pengakap laut.pdf
PPTX
XI BAB 7 SISTEM PERNAPASAN pada kelas xi
DOCX
Modul Ajar Deep Learning PJOK Kelas 12 SMA Terbaru 2025
PDF
Deck Rumah Pendidikan untuk Mendukung Program Prioritas Kemendikdasmen.pdf
DOCX
Modul Ajar Deep Learning PAI & BP Kelas 10 SMA Terbaru 2025
PPTX
PPT Kurikulum Berbasis Cinta tahun 2025.
PDF
Lembar Kerja Mahasiswa Konsep Sistem Operasi
PPTX
Bahan Presentasi Persamaan Elips .pptx
DOCX
LKPD_Bab_1_Informatika_Kelas_9. : Informatika dan Keterampilan Generikdocx
PPTX
Paparan Penyesuaian Juknis BOSP Tahun 2025
PPTX
2. Modul 2 Fase C Berpikir Komputasional.pptx
PPTX
PPT MATERI KODING DAN KECERDASAN ARTIFISIAL UNTUK PEMBELAJARAN
Modul Ajar Deep Learning PKN Kelas 10 SMA Terbaru 2025
Modul 4 Asesmen-dalam-Pembelajaran-Mendalam.pptx
BAHASA INDONESIA KELAS 6 SD TEKS INFORMATIF
Lembar Kerja Mahasiswa Information System
materi pencegahan perkawinan usia anak.pptx
ANALISIS SOALAN BAHASA MELAYU SPM 2021-2024 (1).pdf
ppt kelas XII materi sifat koligatif larutan
Bahan Tayang OJT Pembelajaran Mendalam KS
Pengenalan Undang-undang pengakap laut.pdf
XI BAB 7 SISTEM PERNAPASAN pada kelas xi
Modul Ajar Deep Learning PJOK Kelas 12 SMA Terbaru 2025
Deck Rumah Pendidikan untuk Mendukung Program Prioritas Kemendikdasmen.pdf
Modul Ajar Deep Learning PAI & BP Kelas 10 SMA Terbaru 2025
PPT Kurikulum Berbasis Cinta tahun 2025.
Lembar Kerja Mahasiswa Konsep Sistem Operasi
Bahan Presentasi Persamaan Elips .pptx
LKPD_Bab_1_Informatika_Kelas_9. : Informatika dan Keterampilan Generikdocx
Paparan Penyesuaian Juknis BOSP Tahun 2025
2. Modul 2 Fase C Berpikir Komputasional.pptx
PPT MATERI KODING DAN KECERDASAN ARTIFISIAL UNTUK PEMBELAJARAN
Ad

pemrograman-dasar-cpp_03-ekspresi.pdf

  • 2. Kilas Balik: Assignment • Program menjadi kurang bermanfaat jika kita hanya bisa mengisi variabel dengan nilai yang pasti. • Kadang-kadang dibutuhkan hal yang lebih ekspresif seperti penjumlahan: a = 5; b = 2; jumlah = a + b; • Kenyataannya, hal ini dapat diwujudkan pada pemrograman. • Perintah ”a + b” biasa disebut sebagai ekspresi. 2/26
  • 3. Mengenal Ekspresi • Ekspresi terdiri dari dua komponen: operator dan operand. • Operand menyatakan nilai yang akan dioperasikan, misalnya bilangan atau suatu ekspresi lagi. • Operator menyatakan bagaimana operand akan dioperasikan, apakah ditambah, dikali, atau dibagi? 3/26
  • 4. Mengenal Ekspresi (lanj.) Bisa juga dibentuk ekspresi bersarang, yaitu ekspresi yang operand-nya merupakan ekspresi lagi: 4/26
  • 5. Operasi Numerik • Operasi pada bilangan yang dapat dilakukan adalah penjumlahan (+), pengurangan (-), perkalian (*), pembagian (/), dan modulo (%). • Jika kedua operand merupakan bilangan bulat, hasil pengoperasian selalu bilangan bulat juga. • Ketika setidaknya salah satu dari operand ada yang bertipe data floating point, pengoperasian akan selalu menghasilkan floating point. 5/26
  • 6. Operasi Numerik (lanj.) • Operasi pembagian pada kedua operand berupa bilangan bulat didefinisikan sebagai: membagi, lalu dibulatkan (ke bawah untuk hasil positif, ke atas untuk hasil negatif). Contoh: • 7 / 2 = 3 • 10 / 2 = 5 • 3 / 5 = 0 • -5 / 2 = -2 • Operasi pembagian dengan salah satu operand berupa floating point akan menghasilkan floating point pula. Contoh: • 10.0 / 5 = 2.0000000 • 7 / 2.0 = 3.5000000 6/26
  • 7. Operasi Numerik (lanj.) • Operasi modulo adalah mengambil sisa bagi dari operand pertama terhadap operand kedua. Contoh: • 7 mod 2 = 1 • 10 mod 2 = 0 • 3 mod 5 = 3 • 8 mod 3 = 2 • Operasi mod hanya bisa dilakukan apabila kedua operand memiliki tipe data bilangan bulat. 7/26
  • 8. Contoh Program: kuadrat.cpp • Setelah memahami tentang operasi numerik, coba perhatikan program berikut dan cari tahu apa keluarannya! #include <cstdio> int a, b, c, x, hasil; int main() { a = 1; b = 3; c = -2; x = 2; hasil = a*x*x + b*x + c; printf("ax^2 + bx + c = %dn", hasil); } 8/26
  • 9. Prioritas Pengerjaan • Seperti pada ilmu matematika, ada juga prioritas pengerjaan pada ekspresi numerik. Tabel berikut menunjukkan prioritasnya: Prioritas Operasi 1 *,/,mod 2 +,- • Jika ada beberapa operasi bersebelahan yang memiliki prioritas sama, operasi yang terletak di posisi lebih kiri akan dikerjakan lebih dahulu. 9/26
  • 10. Contoh Program: numerik.cpp • Kita juga bisa menggunakan tanda kurung untuk mengatur prioritas pengerjaan suatu ekspresi. • Perhatikan contoh berikut dan coba jalankan programnya: #include <cstdio> int hasil1, hasil2; int main() { hasil1 = 3+5 / 4; hasil2 = (3+5) / 4; printf("%dn", hasil1); printf("%dn", hasil2); } • Isi dari variabel hasil1 adalah 4, karena operasi ”5 div 4” memiliki prioritas yang lebih tinggi untuk dikerjakan, dan menghasilkan nilai 1. Barulah ”3 + 1” dilaksanakan. 10/26
  • 11. Operasi Unary • Pada C++, terdapat pula operasi unary numerik. • Operasi unary berarti hanya melibatkan satu operand. • Misalnya terdapat variabel x, operasi unary tersedia berupa: • x++, artinya tambah x dengan 1. • x--, artinya kurangi x dengan 1. 11/26
  • 12. Contoh Operasi Unary Perhatikan dan coba eksekusi program berikut untuk memahami operasi unary: #include <cstdio> int main() { int x = 5; x++; printf("x: %dn", x); x--; printf("x: %dn", x); } 12/26
  • 13. Fungsi Dasar Numerik Untuk membantu perhitungan, C++ menyediakan fungsi-fungsi pada STL ”cmath”. • round: membulatkan suatu bilangan pecahan bilangan bulat terdekat (hasilnya tetap bertipe floating point). Contoh: round(1.2) akan menghasilkan 1.0, sementara round(1.87) akan menghasilkan 2.0. • sqrt: mendapatkan akar kuadrat dari suatu bilangan. Contoh: sqrt(9) akan menghasilkan 3.00, dan sqrt(3) akan menghasilkan 1.73205.... 13/26
  • 14. Contoh Program: cmath.cpp • Perhatikan contoh penggunaan STL cmath berikut: #include <cstdio> #include <cmath> int main() { printf("%lfn", sqrt(5)); printf("%lfn", round(5.2)); printf("%lfn", round(5.6)); } 14/26
  • 15. Operasi Relasional • Kita juga bisa melakukan operasi relasional, yaitu: • kurang dari (<) • lebih dari (>) • sama dengan (==) • kurang dari atau sama dengan (<=) • lebih dari atau sama dengan (>=) • tidak sama dengan (! =) • Operasi relasional harus melibatkan dua operand (ingat bahwa operand bisa jadi berupa ekspresi lagi), dan menghasilkan sebuah nilai kebenaran. • Pada C++, nilai kebenaran dinyatakan dengan tipe data boolean. 15/26
  • 16. Contoh Program: relasional.cpp • Perhatikan contoh berikut dan coba jalankan programnya: #include <cstdio> int main() { printf("%dn", 2 > 1); printf("%dn", 2 < 1); printf("%dn", 2 == 1); printf("%dn", 2 >= 1); printf("%dn", 1 == 1); printf("%dn", 1 != 1); printf("%dn", 1 != 2); } 16/26
  • 17. Operasi Relasional pada Floating Point • Karena komputer tidak dapat secara sempurna menyimpan nilai floating point, Anda perlu hati-hati saat membandingkan dua bilangan riil. • Ekspresi berikut mungkin saja bernilai FALSE: (0.1 + 0.2) == 0.3 • Sebab 0.1 + 0.2 bisa saja bernilai 0.30000000000000001 17/26
  • 18. Operasi Relasional pada Floating Point (lanj.) • Untuk memeriksa kesamaan antara dua nilai floating point, biasanya dilibatkan suatu nilai toleransi. • Misalnya, kedua nilai dianggap sama apabila selisih mereka kurang dari 10−8. 18/26
  • 19. Operasi Relasional (lanj.) • Operasi relasional dapat dilakukan pada setiap tipe data ordinal, sehingga bisa juga diterapkan pada char. • Perbandingan karakter dilakukan dengan membandingkan kode ASCII mereka, sehingga menjadi seperti membandingkan angka biasa. • Contoh: • ’a’ < ’b’ akan bernilai TRUE • ’a’ > ’z’ bernilai FALSE • ’A’ < ’a’ akan bernilai TRUE 19/26
  • 20. Operasi Relasional (string) • Lebih jauh lagi, string sebenarnya merupakan untaian char. Operasi relasional juga bisa diterapkan pada string (meskipun string bukan tipe data ordinal). • C++ akan membandingkan karakter demi karakter dari kiri ke kanan. Begitu ditemukan ada perbedaan karakter, lebih kecil atau tidaknya suatu string ditentukan oleh karakter tersebut. • Contohnya, ”aa” < ”ab” akan bernilai TRUE. • Jika sampai salah satu string habis dan tidak ditemukan ada perbedaan karakter, maka stirng yang lebih pendek dianggap lebih kecil. • Contohnya ”a” < ”aa” bernilai TRUE. 20/26
  • 21. Contoh Program: relasional2.pas • Perhatikan contoh berikut dan coba jalankan programnya: #include <cstdio> int main() { printf("%dn", ’a’ > ’A’); printf("%dn", ’a’ < ’A’); printf("%dn", ’a’ >= ’A’); printf("%dn", ’a’ == ’A’); printf("%dn", "a" < "aa"); printf("%dn", "abcb" > "abca"); printf("%dn", "abc" == "abc"); printf("%dn", "abc" <= "abc"); } 21/26
  • 22. Operasi Boolean • Operasi boolean merupakan operasi yang hanya melibatkan nilai-nilai kebenaran. Terdiri atas: not (!), and (&&), or (||), xor (b). • Operasi-operasi ini sesuai dengan sebuah cabang ilmu matematika yang bernama ”aljabar boolean”. • Operasi not merupakan operasi unary. Gunanya untuk membalik nilai kebenaran. • Tabel berikut menunjukkan efek dari penggunaan not, yang cara penulisannya dengan tanda seru (!) sebelum variabelnya. a !a TRUE FALSE FALSE TRUE 22/26
  • 23. Operasi Boolean (lanj.) • Operasi boolean yang lainnya merupakan operasi binary, yang artinya melibatkan dua operand. • Tabel berikut menunjukkan efek dari penggunaan operator-operator tersebut: a b a && b a || b abb TRUE TRUE TRUE TRUE FALSE TRUE FALSE FALSE TRUE TRUE FALSE TRUE FALSE TRUE TRUE FALSE FALSE FALSE FALSE FALSE 23/26
  • 24. Operasi Boolean (lanj.) • Prioritas pengerjaan dari operator boolean secara berurutan adalah: not, and, or, xor. • Tanda kurung juga bisa digunakan untuk menentukan operasi mana yang perlu dijalankan terlebih dahulu. Bahkan sangat disarankan untuk selalu menggunakan tanda kurung untuk kejelasan. 24/26
  • 25. Contoh Program: relasional3.pas • Perhatikan contoh berikut dan coba jalankan programnya: #include <cstdio> int main() { printf("%dn", 2 > 1); printf("%dn", !(2 > 1)); printf("%dn", (2 > 1) && (3 > 1)); printf("%dn", ((2 > 1) || (3 < 1)) && (1 == 1)); printf("%dn", (1 != 1) ^ !(1 != 1)); } • Perhatikan bahwa tanda kurung diperlukan dalam ekspresi ”not (2 > 1)”. Dengan tanda kurung, ”2 > 1” akan dievaluasi terlebih dahulu, menghasilkan nilai boolean. Barulah operator not bisa mengolah nilai boolean tersebut. 25/26
  • 26. Selanjutnya... • Kini kalian sudah mempelajari tentang variabel, ekspresi, dan masukan/keluaran. • Artinya, sudah waktunya untuk menulis program-program sederhana. 26/26