Anda di halaman 1dari 72

MATEMATIKA DISKRIT

1. LOGIKA MATEMATIKA

1.1 KALIMAT DEKLARATIF

A. PENGANTAR LOGIKA

Logika merupakan salah satu cabang filsafat. Logika dalam KBBI berarti
pengetahuan tentang kaidah berpikir, jalan pikiran yang masuk akal. Ketika seseorang
berlogika, maka Ia menggunakan penalarannya untuk menghasilkan kesimpulan yang
valid (benar) dan yang tidak valid (tidak benar). Kesimpulan yang diperoleh
dikembangkan berdasarkan akal budi, bukan berdasarkan pengalaman atau
perasaan.
Pembahasan terkait logika dilakukan dengan menghubungkan beberapa
pernyataan menjadi suatu kesimpulan yang valid.Berikut diberikan beberapa contoh
untuk dapat lebih memahami konsep logika.

Contoh 1 :
Pernyataan 1 : Semua lulusan terbaik Program Studi TRPL mendapat hadiah plakat
pada saat kelulusan
Pernyataan 2 : Setiap mahasiswa yang mendapat hadiah plakat dari kampus
memperoleh IPK lebih dari 3.5
Kesimpulan : Jadi, semua lulusan terbaik Program Studi TRPL memperoleh IPK
lebih dari 3.5

Contoh 2 :
Pernyataan 1 : Setiap hari kamis mahasiswa TRPL A melaksanakan perkuliahan
Matematika Diskrit
Pernyataan 2 : Setiap mahasiswa yang melaksanakan perkuliahan Matematika Diskrit
berada di ruang kelas Teori 2
Kesimpulan : Jadi, setiap hari kamis mahasiswa TRPL A berada di ruang kelas Teori
2

Dalam konsep logika, tidak menghasilkan kesimpulan mengenai benar/


salahnya suatu pernyataan. Pada contoh 1 dan 2 di atas terdapat pernyataan 1 dan
pernyataan 2. Jika pernyataan 1 dan pernyataan 2 bernilai benar, maka logika akan
mengarahkan kita kepada kesimpulan bahwa pernyataan 3 juga bernilai benar. Selain
untuk menghasilkan kesimpulan tentang valid/ tidaknya suatu pernyataan, logika juga
biasa digunakan oleh ahli Matematika dalam proses pembuktian teorema dalam
Matematika.

Untuk dapat lebih memahami bagaimana menarik kesimpulan berlogika, dapatkah


kalian menentukan kesimpulan dari pernyataan - pernyataan berikut.
Pernyataan 1 : Semua mahasiswa yang mendapat nilai dalam rentang 80 - 100 akan
memperoleh nilai huruf A
Pernyataan 2 : Setiap mahasiswa yang memperoleh huruf A akan diberikan
pengayaan
Kesimpulan :

B. KALIMAT LENGKAP

Dalam kehidupan sehari - hari, kalimat dapat diartikan sebagai kesatuan ujar
yang mengungkapkan suatu konsep pikiran dan perasaan (KBBI). Kalimat dapat
disampaikan secara tertulis ataupun lisan antara pembicara dan pendengar. Dalam
penyampaian suatu kalimat, kalimat tersebut tergolong ke dalam kalimat yang
mempunyai arti apabila pendengar dapat memahami maksud dari kalimat tersebut.
Suatu kalimat dapat dikatakan lengkap jika paling sedikit memuat subjek dan predikat.
KBBI menjelaskan bahwa subjek berkaitan dengan pokok pembicaraan/ pokok
bahasan/ bagian klausa yang menandai apa yang dikatakan oleh pembicara/ pelaku/
pokok kalimat. Predikat merupakan bagian kalimat yang menandai apa yang
dikatakan oleh pembicara tentang subjek. Tabel 1 memuat beberapa contoh kalimat
di bawah ini dapat digunakan untuk memahami perbedaan antara kalimat lengkap dan
tidak lengkap.
Tabel 1. Klasifikasi kalimat lengkap (KL) dan kalimat tidak lengkap (KTL)

Subjek Predikat Keterangan Kalimat utuh Kategori

Bima belajar - Bima belajar KL

- menulis buku - Menulis buku KTL

Tari mengerjakan tugas matematika Tari mengerjakan KL


tugas matematika

Beberapa kalimat pada tabel 1 dapat membantu kalian dalam membedakan antara
kalimat lengkap dan tidak lengkap. Untuk memastikan pemahaman kalian dalam
membedakan kalimat lengkap dan tidak lengkap, coba perhatikan beberapa kalimat
di bawah ini.
a. Setiap bilangan dapat ditarik akar
b. Barangsiapa yang sengaja dan tanpa hak menyebarkan informasi yang
ditunjukkan untuk menimbulkan rasa kebencian atau permusuhan individu dan/
atau kelompok masyarakat tertentu berdasarkan atas suku, agama, ras, dan
antargolongan (SARA)
c. Dilarang merokok!
d. Apakah Anda sudah selesai mengerjakan tugas Matematika Diskrit?
e. Andi tidak masuk perkuliahan Aljabar Linier
Setelah membaca beberapa kalimat di atas, dapatkah kalian memahami maksud dari
kalimat di atas?

C. SEMESTA PEMBICARAAN

Ketika terlibat dalam suatu pembicaraan, akan muncul suatu istilah yaitu Semesta
Pembicaraan. Semesta pembicaraan berkaitan dengan himpunan semua objek atau
anggota yang terlibat atau masuk ke dalam objek pembicaraan. Biasanya semesta
pembicaraan atau biasa dikenal dengan himpunan semesta dilambangkan dengan S.
Untuk memahami makna dari semesta pembicaraan ini perhatikan kalimat berikut.
“ Diberikan suatu himpunan A = { 2, 3, 5, 7}”

Dengan demikian, semesta pembicaraan yang mungkin dari himpunan A adalah


sebagai berikut.
● S = { bilangan prima }
● S = { bilangan asli }
● S = { bilangan cacah }

Menurut pendapatmu,
a. Mengapa ketiga semesta pembicaraan di atas dikatakan mungkin untuk
menjadi semesta pembicaraan dari himpunan A
b. Apakah memungkinkan jika S = { bilangan bulat } dan S = { bilangan desimal }
juga menjadi semesta pembicaraan dari himpunan A? Jelaskan alasanmu!

Untuk dapat lebih memahami konsep dari semesta pembicaraan, coba kalian tentukan
semesta pembicaraan yang memungkinan untuk himpunan berikut.
a. B = { Matematika Diskrit, Aljabar Linier, Kalkulus 1, Kalkulus 2}
b. C = { Programmer, Web Engineer, Software Engineer, Database Engineer,
Game Developer, Konsultan IT}

D. PROPOSISI

Proposisi merupakan kalimat deklaratif yang bernilai benar (true) atau salah (false),
tetapi tidak keduanya. Dalam matematika, proposisi selalu dimaknai secara jelas
untuk nilai kebenarannya. kalimat terbuka ini tidak ambigu dan hanya memiliki salah
satu nilai kebenaran, yaitu salah atau benar. Proposisi ini berbeda dengan pernyataan
- pernyataan yang sering kalian temui dalam kehidupan sehari hari, dimana tidak
selalu bisa ditentukan nilai kebenarannya.

Definisi : “ Proposisi adalah kalimat yang bernilai benar atau salah, tetapi tidak
keduanya sekaligus”

Untuk dapat lebih memahami konsep proposisi ini perhatikan contoh berikut.
Contoh 1
● Pangkal Pinang adalah ibukota provinsi Kepulauan Bangka Belitung
● Sebuah persegi memiliki tiga buah sudut
● 2+5=3
● Dua merupakan salah satu bilangan genap
● Nol merupakan bilangan netral (non negatif dan non positif)

Beberapa pernyataan pada contoh 1 di atas merupakan contoh proposisi. Hal ini
dikarenakan setiap pernyataan dapat dinilai kebenarannya (benar/ salah). Untuk
membuktikan bahwa benar beberapa pernyataan pada contoh 1 merupakan propsisi,
mari perhatikan penjelasan lebih lanjut berikut.

● Pangkal Pinang adalah ibukota provinsi Kepulauan Bangka Belitung ( Benar)


● Sebuah persegi memiliki tiga buah sudut ( Salah)
● 2 + 5 = 3 ( Salah )
● Dua merupakan salah satu bilangan genap ( Benar )
● Nol merupakan bilangan netral (non negatif dan non positif) ( Benar )

Selain diberikan contoh proposisi, contoh 2 berikut merupakan contoh pernyataan


yang bukan proposisi.

Contoh 2.
● 𝑥 − 5 = 12
● Anak yang menggunakan jaket merah itu lucu sekali
● Buah semangka enak rasanya
● Apakah Matematika Diskrit itu mudah?

Beberapa pernyataan pada contoh 2 di atas merupakan contoh yang bukan


merupakan proposisi. Hal ini dikarenakan setiap pernyataan tidak dapat ditentukan
dinilai kebenarannya secara pasti (benar/ salah). Untuk membuktikan bahwa benar
beberapa pernyataan pada contoh 2 bukan bukan merupakan proposisi, mari
perhatikan penjelasan lebih lanjut berikut.

● 𝑥 − 5 = 12 ( tidak bisa dinilai kebenarannya)


● Anak yang menggunakan jaket merah itu lucu sekali (bisa benar bisa salah)
● Buah semangka enak rasanya (bisa benar bisa salah)
● Apakah Matematika Diskrit itu mudah? (bisa benar bisa salah)

Keempat pernyataan di atas bukan merupakan proposisi karena yang pertama


merupakan kalimat yang nilai kebenarannya masih bersifat terbuka bergantung pada
nilai 𝑥. Kalimat kedua dan ketiga memiliki kebenaran yang relatif, di mana sebagian
orang akan menilai BENAR dan sebagian yang lain mungkin menilai SALAH. Kalimat
keempat merupakan kalimat tanya yang juga dapat dinilai berbeda BENAR/ SALAH
oleh masing - masing orang.
Untuk dapat lebih memahami konsep proposisi, putuskan apakah setiap pernyataan
berikut merupakan proposisi atau bukan!
● 2+3=7
● Cerita di novel berjudul “ Senja di Kota “ sangat bagus sekali
● Ir. Sukarno adalah presiden pertama RI
● 15 ≥ 17
● Santi adalah mahasiswi yang pandai
● Matahari terbit di sebelah barat
● Untuk sembarang bilangan bulat 𝑛 ≥ 0, maka 2𝑛 adalah bilangan genap
● Bagaimana kabarmu hari ini?
● Bilangan 20 habis dibagi 2

E. KALIMAT TERBUKA

Definisi : “ Kalimat lengkap yang bukan kalimat tanya, tetapi tidak bisa
ditentukan benar atau salahnya disebut kalimat terbuka ”

Diberikan sebuah kalimat


“ a merupakan bilangan ganjil “

Kalimat di atas memuat variabel bebas yaitu “ a “. Kalimat tersebut tidak dapat
dinyatakan benar atau salah karena mengandung variabel bebas. variabel bebas yang
dalam hal ini “a” jika diganti dengan bilangan tertentu barulah bisa dinyatakan bernilai
benar atau salah. Kalimat di atas disebut dengan istilah kalimat terbuka.
Untuk lebih memahami konsep dari kalimat terbuka, perhatikan contoh berikut.
Contoh 1.
Jika diberikan suatu himpunan semesta S = Himpunan bilangan Rill. Tentukan jenis
dari kalimat berikut.
● “𝑎 < 𝑐 < 𝑏“
● “ Untuk setiap pasangan a dan b, jika 𝑎 < 𝑏, maka terdapat 𝑐 yang memenuhi
𝑎 < 𝑐 < 𝑏

Untuk kalimat pertama, yaitu “ 𝑎 < 𝑐 < 𝑏 “ merupakan kalimat terbuka karena
kalimat ini tidak bisa ditentukan nilai benar atau salahnya. Jika selanjutnya diperjelas
dengan ditentukan nilai dari a, b, dan c nya maka dapat diputuskan kalimat “ 𝑎 < 𝑐 <
𝑏 “ bernilai benar atau salah.

Untuk kalimat kedua, “ Untuk setiap pasangan a dan b, jika 𝑎 < 𝑏, maka terdapat 𝑐
yang memenuhi 𝑎 < 𝑐 < 𝑏 “. Diberikan informasi awal bahwa diberikan pasangan
bilangan a dan b dimana 𝑎 < 𝑏, lalu diberikan kesimpulan maka terdapat 𝑐 yang
memenuhi 𝑎 < 𝑐 < 𝑏. Kalimat ini bernilai benar. Karena kita ketahui bahwa jika
diketahui dua buah (a dan b) bilangan Rill maka akan ada bilangan sebanyak tak
berhingga diantara bilangan a dan b (Kerapatan bilangan). Maka pasti akan ada
bilangan c yang memenuhi 𝑎 < 𝑐 < 𝑏. Dengan demikian, kalimat kedua bernilai
benar, jadi termasuk Poposisi.

Untuk memastikan pemahaman kalian terkait dengan kalimat terbuka, coba tentukan
apakah beberapa kalimat di bawah ini merupakan kalimat terbuka atau preposisi, jika
preposisi tentukan kalimat itu bernilai benar atau salah!
a. Jika diberikan himpunan semesta mahasiswa 1 TRPL A Polman Babel
● Randa lebih tinggi daripada Bayu
● Tantri lebih pandai daripada Sinta
● Jumlah mahasiswa laki - laki lebih banyak daripada mahasiswa
perempuan
b. Jika diberikan himpunan semesta bilangan Rill
● 𝑥𝑦𝑧 ≤ 𝑥𝑧 2
● 𝑥 2 − 2𝑥 + 6 = 0
● 𝑥 + (−𝑥) = 0 = −𝑥 + 𝑥
● 2𝑥 2 − 5𝑥 + 30 ≤ 0

1.2 KALIMAT MAJEMUK

A. KONJUNGSI, DISJUNGSI, DAN NEGASI

Definisi :
“ Misalkan p dan q adalah proposisi, maka
● Konjungsi p dan q dinyatakan dengan notasi p ∧ q, adalah proposisi “ p
dan q ”
● Disjungsi p dan q dinyatakan dengan notasi p ∨ q, adalah proposisi “ p
atau q ”
● Negasi dari q dinyatakan dengan notasi ∼ p, adalah proposisi “ tidak p
atau bukan p “

Untuk lebih memahami konsep kalimat majemuk (Konjungsi, Disjungsi, dan Negasi),
perhatikan contoh berikut.

Contoh 1.
Diketahui proposisi - proposisi berikut :
p : Mahasiswa 1 TRPL B kuliah Aljabar Linier setiap hari Senin
q : Mahasiswa Ruang kuliah Aljabar Linier di ruang teori 1
Maka
● p ∧ q : Mahasiswa 1 TRPL B kuliah Aljabar Linier setiap hari Senin dan ruang
kuliah Aljabar Linier di ruang teori 1
● p ∨ q : Mahasiswa 1 TRPL B kuliah Aljabar Linier setiap hari Senin atau ruang
kuliah Aljabar Linier di ruang teori 1
● ∼ p : Tidak benar Mahasiswa 1 TRPL B kuliah Aljabar Linier setiap hari Senin
( Mahasiswa 1 TRPL B kuliah Aljabar Linier bukan setiap hari Senin )
● ∼ q : Tidan benar ruang kuliah Aljabar Linier di ruang teori 1 ( ruang kuliah
Aljabar Linier bukan di ruang teori 1 )

Contoh 2.
Diketahui proposisi - proposisi berikut :
p : Mahasiswa 1 TRPL A melaksanakan perkuliahan praktik di ruang lab
multimedia
q : Mahasiswa 1 TRPL A menggunakan jas lab setiap perkuliahan praktik
Maka
● ∼p ∧ ∼q : Mahasiswa 1 TRPL A tidak melaksanakan perkuliahan praktik di
ruang lab multimedia dan Mahasiswa 1 TRPL A tidak menggunakan jas lab
setiap perkuliahan praktik atau dengan kata lain “ Mahasiswa 1 TRPL A tidak
melaksanakan perkuliahan praktik di ruang lab multimedia maupun
menggunakan jas lab setiap perkuliahan praktik
● q ∨ ∼p : Mahasiswa 1 TRPL A menggunakan jas lab setiap perkuliahan praktik
atau Mahasiswa 1 TRPL A tidak melaksanakan perkuliahan praktik di ruang lab
multimedia atau dengan kata lain “ Mahasiswa 1 TRPL A menggunakan jas
lab setiap perkuliahan praktik atau tidak melaksanakan perkuliahan praktik di
ruang lab multimedia
● ∼ (∼ p) : Tidak benar Mahasiswa 1 TRPL A tidak melaksanakan perkuliahan
praktik di ruang lab multimedia dengan kata lain “ Salah bahwa Mahasiswa 1
TRPL A tidak melaksanakan perkuliahan praktik di ruang lab multimedia”

Untuk memastikan pemahamanmu terkait kalimat majemuk (konjungsi, disjungsi, dan


negasi), coba selesaikan permasalahan berikut.
Diketahui proposisi - proposisi berikut :
p : Sandy adalah mahasiswa tingkat 1 program studi TRPL Polman Babel
q : Sandy adalah ketua kelas

Nyatakan proposisi berikut ke dalam ekspresi logika dalam bentuk notasi simbolik :
● Sandy adalah mahasiswa tingkat 1 program studi TRPL Polman Babel dan
ketua kelas
● Sandy adalah mahasiswa tingkat 1 program studi TRPL Polman Babel tetapi
bukan ketua kelas
● Sandy bukan mahasiswa tingkat 1 program studi TRPL Polman Babel maupun
ketua kelas
● Tidak benar bahwa Sandy itu bukan mahasiswa tingkat 1 program studi TRPL
Polman Babel atau bukan ketua kelas
● Sandy adalah mahasiswa tingkat 1 program studi TRPL Polman Babel atau
bukan mahasiswa tingkat 1 program studi TRPL Polman Babel dan ketua kelas
● Tidak benar bahwa Sandy itu bukan mahasiswa tingkat 1 program studi TRPL
Polman Babel maupun ketua kelas

B. IMPLIKASI (PROPOSISI BERSYARAT)

Definisi :
Misalkan p dan q adalah proposisi. Proposisi majemuk “ jika p maka q “ disebut
proposisi bersyarat (implikasi) dan dinotasikan dengan
𝑝 ⇒ 𝑞
Proposisi p disebut hipotesis (atau antesenden atau premis atau kondisi) dan
proposisi q disebut konklusi (atau konsekuen)

Berikut merupakan beberapa contoh kalimat sehari - hari yang mengandung konsep
biimplikasi.
a. Jika Randy lulus postest, maka ia akan mendapatkan nilai yang bagus
b. Jika mahasiswa datang terlambat lebih dari 15 menit, maka mereka tidak
diperbolehkan masuk ke dalam kelas
c. Jika Anda belajar Matematika Diskrit dengan baik, maka Anda akan mendapat
nilai A untuk mata kuliah Matematika Diskrit

Implikasi "𝐴 ⇒ 𝐵" dapat dinyatakan/ diucapkan sebagai berikut.


● “ Jika A, maka B” atau “ Bila A, maka B”, atau “ B bila A”
● “ A hanya jika B” atau “ A hanya bila B”
Karena kenyataannya jika tidak B, berarti A tidak terjadi atau dengan kata lain
jika B salah, maka pasti tidak A, artinya A bernilai salah.
● A merupakan syarat cukup untuk B
Karena jika A benar (terjadi), maka kondisi tersebut mencukupi untuk pasti B
terjadi. Dengan kata lain B benar.
● B merupakan syarat perlu untuk A
Terjadinya B merupakan suatu keharusan/ kewajiban yang perlu untuk
dipenuhi agar A dapat terjadi. Karena jika B tidak terjadi, maka otomatis A pun
tidak terjadi. Sebaliknya, terjadinya B tidak menjadi jaminan pasti terjadinya A.
Supaya A pasti terjadi, mengkin diperlukan fakta lain.

Untuk dapat lebih memahami konsep impikasi (𝑝 ⇒ 𝑞) perhatikan contoh berikut ini.
Contoh 1.
Misalkan seorang dosen mengatakan “ Jika akumulasi nilai Matematika Diskrit anda
80 atau lebih, maka anda akan mendapatkan nilai A”.
untuk memastikan apakah dosen anda berkata jujur atau tidak, tinjau 4 kasus berikut:
● Akumulasi nilai Matematika Diskrit Anda di atas 80, dan anda mendapat nilai
A. Dalam kasus ini dosen anda benar
● Akumulasi nilai Matematika Diskrit Anda di atas 80, dan anda tidak mendapat
nilai A. Dalam kasus ini dosen anda bohong (pernyataannya salah)
● Akumulasi nilai Matematika Diskrit Anda di bawah 80, dan anda mendapat nilai
A. Dalam kasus ini dosen anda tidak bisa dikatakan bohong. Mungkin ada
pertimbangan lain sehingga dosen memberikan nilai A.
● Akumulasi nilai Matematika Diskrit Anda di bawah 80, dan anda tidak mendapat
nilai A. Dalam kasus ini dosen anda benar.

Selanjutnya jika diketahui suatu proposisi, kita dapat mengubah proposisi tersebut ke
dalam bentuk proposisi “ Jika p, maka q”

Contoh 2.
“ Gagalnya Andri dalam menyelesaikan tugas programming yang diberikan oleh
dosennya, mengakibatkan IPK Andri turun di semester 3 ini”

bentuk proposisi di atas, dapat kita ubah ke dalam bentuk umum proposisi “ Jika p,
maka q” seperti berikut.

“ Jika Andri gagal menyelesaikan tugas programming yang diberikan oleh dosennya,
maka IP Andri turun di semester 3 ini”

Contoh 3.
“ Syarat perlu bagi mahasiswa untuk dapat mengikuti kegiatan magang di luar negeri
adalah memiliki IPK paling tidak 3,50”

bentuk proposisi di atas, dapat kita ubah ke dalam bentuk umum proposisi “ Jika p,
maka q” seperti berikut.

Pernyataan yang diberikan equivalen dengan “ IPK di atas 3,50 adalah syarat cukup
agar mahasiswa dapat kesempatan mengikuti kegiatan magang di luar negeri ” atau “
Jika IPK minimal 3,5 maka mahasiswa dapat kesempatan mengikuti kegiatan magang
di luar negeri”

Untuk dapat lebih memahami bagaimana konsep biimplikasi, perhatikan beberapa


pernyataan berikut. Coba ubahlah proposisi berikut ke dalam bentuk proposisi “ Jika
p, maka q”!
● Lulus kuliah dengan predikat Cumlaude terjadi bilamana mahasiswa
memperoleh IPK lebih dari 3,50
● Syarat cukup agar lulusan mahasiswa TRPL mendapat beasiswa S2 ke luar
negeri adalah nilai TOEFL minimal 550
● Kartika dapat mengambil mata kuliah Aljabar Linier hanya jika Ia sudah lulus
Matematika dasar
● Trian bersedia mengikuti kegiatan magang di PT DAK Batam jika kampus
memberikan kemudahan dalam mengikuti perkuliahan daring
● Syarat perlu bagi mahasiswa Polman Babel agar ikut kompetisi ON MIPA
nasional adalah dengan lolos pada kompetisi ON MIPA tingkat wilayah
● Tidak lulusnya Hardi dalam mata kuliah Kalkulus 1 mengakibatkan Ia tidak
dapat mengambil mata kuliah Kalkulus 2 di semester berikutnya

Setelah mencoba menyelesaikan permasalahan di atas, kalian tentu akan dapat lebih
memahami hakikat dari konsep implikasi. kalimat proposisi biasa juga dapat diubah
bentuknya menjadi bentuk proposisi “ Jika p, maka q”. Selain dapat mengubah bentuk
proposisi biasa menjadi proposisi “ Jika p, maka q”, kita juga dapat menyatakan
propsisi yang terdiri atas 2 buah proposisi menjadi beberapa bentuk notasi implikasi.
Perhatikanlah contoh 3 berikut.

Contoh 3.
Misalkan

p : Shandy lulus Seleksi masuk Polman Babel


q :Shandy dapat menjadi salah satu mahasiswa Polman
Babel

Kedua proposisi di atas, dapat dinyatakan ke dalam beberapa notasi implikasi berikut.
● Hanya jika Shandy lulus seleksi masuk Polman babel, maka Shandy dapat
menjadi salah satu mahasiswa Polman babel
Ingat kembali bahwa 𝑝 ⇒ 𝑞 dapat dibaca “ p hanya jika q. Jadi pernyataan
yang diberikan dinotasikan dengan 𝑞 ⇒ 𝑝
● Syarat cukup agar Shandy dapat menjadi salah satu mahasiswa Polman
Babel adalah Shandy lulus seleksi masuk Polman Babel
Ingat kembali bahwa 𝑝 ⇒ 𝑞 dapat dibaca “p syarat cukup bagi q. Jadi
pernyataan yang diberikan dinotasikan dengan 𝑞 ⇒ 𝑝
● Syarat perlu agar Shandy dapat menjadi salah satu mahasiswa Polman Babel
adalah lulus seleksi masuk Polman Babel
Ingat kembali bahwa 𝑝 ⇒ 𝑞 dapat dibaca “q syarat perlu bagi p. Jadi
pernyataan yang diberikan dinotasikan dengan 𝑞 ⇒ 𝑝
● Jika Shandy tidak menjadi salah satu mahasiswa Polman Babel, maka
Shandy tidak lulus seleksi masuk Polman Babel
∼𝑞 ⇒∼𝑝
● Shandy tidak dapat menjadi salah satu mahasiswa Polman Babel bilamana
Shandy tidak lulus seleksi masuk Polman Babel
Ingat kembali bahwa 𝑝 ⇒ 𝑞 dapat dibaca “q bilamana p. Jadi, pernyataan
yang diberikan dinotasikan dengan ∼ 𝑝 ⇒ ∼ 𝑞

C. BI-IMPLIKASI

Definisi :
Misalkan p dan q adalah proposisi. Proposisi majemuk “p jika dan hanya jika q”
disebut bi - implikasi dan dinotasikan dengan
𝑝⇔𝑞
Untuk lebih memahami konsep bi-impilikasi perhatikan contoh berikut.
Contoh 1.
Pernyataan majemuk berikut merupakan contoh bi-implikasi
● 1 + 1 = 2 jika dan hanya jika 2 + 2 = 4
● Syarat cukup dan syarat perlu agar mahasiswa dapat menyelesaikan pendidikan
di DIV Polman Babel adalah menyelesaikan 144 SKS mata kuliah
● Jika Rani adalah mahasiswa yang pandai, maka Rani akan mendapatkan nilai
yang baik, demikian sebaliknya.

Contoh 2.
Tentukan setiap proposisi berikut ke dalam bentuk "𝑝 ⇔ 𝑞" :
● Jika mahasiswa tidak masuk perkuliahan tanpa izin sebanyak berapa jam, maka
Dia harus menggantikan (kompen) sebanyak jam yang sama, dan jika
Mahasiswa mengantikan (kompen) sebanyak berapa jam, maka Dia tidak masuk
perkuliahan tanpa izin sebanyak jam yang sama
● Syarat cukup dan perlu agar lulus kuliah tepat waktu adalah anda giat belajar
● Randy mendapat beasiswa jika Ia berprestasi dan Randy berpretasi jika Ia
mendapat beasiswa
● Jika mata kita terlalu lama melihat ke layar komputer maka mata kita akan lelah,
begitupun sebaliknya
● Angkutan kota datang terlambat pada hari - hari ketika Saya harus berangkat
lebih pagi dari biasanya.

beberapa pernyatan di atas, dapat kita ubah bentuknya ke dalam bentuk "𝑝 ⇔ 𝑞"
seperti berikut.
● Jika mahasiswa tidak masuk perkuliahan tanpa izin sebanyak berapa jam,
maka Dia harus menggantikan (kompen) sebanyak jam yang sama, dan jika
Mahasiswa mengantikan (kompen) sebanyak berapa jam, maka Dia tidak
masuk perkuliahan tanpa izin sebanyak jam yang sama dapat dibuat menjadi “
Mahasiswa harus menggantikan (kompen) sebanyak jam tertentu jika dan
hanya jika Dia tidak masuk perkuliahan tanpa izin sebanyak jam yang sama “.
● Syarat cukup dan perlu agar lulus kuliah tepat waktu adalah anda giat belajar
dapat dibuat menjadi “ Anda giat belajar adalah syarat cukup dan perlu agar
Anda lulus kuliah tepat waktu “.
● Randy mendapat beasiswa jika Ia berprestasi dan Randy berpretasi jika Ia
mendapat beasiswa dapat dibuat menjadi “ Randy mendapat beasiswa jika dan
hanya jika Shandy berprestasi “.
● Jika mata kita terlalu lama melihat ke layar komputer maka mata kita akan lelah,
begitupun sebaliknya dapat dibuat menjadi “ Mata kita akan lelah jika dan
hanya jika mata kita terlalu lama melihat ke layar komputer “.
● Angkutan kota datang terlambat pada hari - hari ketika Saya harus berangkat
lebih pagi dari biasanya dapat dibuat menjadi “ Angkutan kota datang terlambat
jika dan hanya jika saya harus berangkat lebih pagi dari biasanya “.
Untuk dapat lebih memahami bagaimana penggunaan konsep bi-implikasi cobalah
selesaikan permasalahan berikut.
1. Misalkan p adalah Bandi bisa berbahasa Inggris, q adalah bandi bisa berbahasa
Mandarin, dan r adalah Bandi bisa berbahasa Jerman. Terjemahkan kalimat
berikut ke dalam notasi simbolik :
● Bandi bisa berbahasa Mandarin tetapi tidak bahasa Jerman
● Bandi bisa berbahasa Inggris atau bahasa Mandarin, atau Dia tidak bisa
berbahasa Jerman atau bahasa Mandarin
● Tidak benar bahwa Bandi bisa berbahasa Inggris atau bahasa Jerman, tetapi
tidak bahasa Mandarin.
● Tidak benar bahwa Bandi tidak bisa berbahasa Inggris, Jerman, maupun
Mandarin
2. Nyatakan proposisi berikut sebagai proposisi bersyarat “ Jika p maka q”
● Mahasiswa mendapatkan gelar sarjana terapan apabila ia telah menyelesaikan
144 SKS
● Syarat cukup bagi Hasbi untuk mengambil mata kuliah Aljabar Linier adalah Ia
sudah lulus mata kuliah Kalkulus 1
● Perlu mendapatkan nilai A pada 5 mata kuliah dengan bobot 3 sks lagi untuk
mendapat gelar lulus dengan predikat cumlaude.

1.3 TABEL KEBENARAN

A. KONJUNGSI, DISJUNGSI, DAN NEGASI

Nilai kebenaran dari kalimat majemuk ditentukan oleh nilai kebenaran dari proposisi
- proposisinya dan dihubungkan dengan operator logika.

Definisi :
Misalkan p dan q adalah proposisi
● Konjungsi 𝑝 ∧ 𝑞 bernilai benar jika p dan q keduanya benar, selain itu bernilai
salah.
● Disjungsi 𝑝 ∨ 𝑞 bernilai salah jika p dan q keduanya salah, selain itu bernilai
benar.
● Negasi 𝑝 yaitu ∼ 𝑝 bernilai benar jika p salah dan bernilai salah jika p benar..

Untuk dapat lebih memahami konsep konjungsi, disjungsi, dan negasi ini perhatikan
contoh berikut.

Contoh 1.
Misalkan
p : 13 adalah bilangan prima
q : Bilangan prima selalu ganjil
Jelas bahwa p bernilai benar dan q bernilai salah sehingga konjungsi 𝑝 ∧ 𝑞 : adalah
bilangan prima dan bilangan prima selalu ganjil dinyatakan salah.

Terdapat cara yang lebih praktis yang dapat digunakan untuk menentukan nilai
kebenaran suatu kalimat majemuk adalah dengan menggunakan Tabel Kebenaran.

Berikut merupakan Tabel kebenaran untuk Konjungsi, Disjungsi, dan Negasi

Tabel 1. Tabel Kebenaran Konjungsi

p q 𝑝∧𝑞

B B B

B S S

S B S

S S S

Tabel 2. Tabel Kebenaran Disjungsi

p q 𝑝∨𝑞

B B B

B S B

S B B

S S S

Tabel 3. Tabel Kebenaran Negasi

p ∼𝑝

B S

S B

Untuk dapat lebih memahami penggunaan tabel kebenaran ini, coba perhatikan
contoh soal berikut.
Contoh 1.
Jika p, q, dan r adalah proposisi. buatlah tabel kebenaran dari ekspresi logika berikut.
(𝑝 ∧ 𝑞) ∨ (∼ 𝑞 ∧ 𝑟)

Untuk dapat menyelesaikan permasalahan di atas, terlebih dahulu kita harus mengkaji
ada berapa kemungkinan nilai salah dan benar yang memenuhi jumlah proposisi.
Karena terdapat 3 buah proposisi, maka dapat dibuat banyaknya kombinasi dari
semua proposisi yang memungkinkan.

Jumlah kemungkinan (benar/ salah) dari proposisi q = B dan S = 2


Jumlah kemungkinan (benar/ salah) dari proposisi q = B dan S = 2
Jumlah kemungkinan (benar/ salah) dari proposisi q = B dan S = 2

Dengan demikian banyaknya kombinasi dari semua proposisi adalah 2 × 2 × 2 = 8

Perlu diingat, bahwa “ Jika terdapat n proposisi, maka Tabel Kebenaran terdiri dari
2𝑛 baris.

Untuk menjabarkan komponen kolom apa saja yang harus ada pada tabel kebenaran,
terlebih dahulu kita harus mendata apa saja yang menjadi komponen ekspresinya.
Ekspresi yang diberikan adalah :
(𝑝 ∧ 𝑞) ∨ (∼ 𝑞 ∧ 𝑟)

maka komponen ekspresi yang harus ada pada Tabel Kebenaran adalah :

∼ 𝑞, (𝑝 ∧ 𝑞), (∼ 𝑞 ∧ 𝑟), dan (𝑝 ∧ 𝑞) ∨ (∼ 𝑞 ∧ 𝑟)

Dengan demikian Tabel Kebenaran dapat kita jabarkan sebagai berikut.

p q r ∼𝑞 (𝑝 ∧ 𝑞) (∼ 𝑞 ∧ 𝑟) (𝑝 ∧ 𝑞) ∨ (∼ 𝑞 ∧ 𝑟)

B B B S B S B

B B S S B S B

B S B B S B B

B S S B S S S

S B B S S S S

S B S S S S S

S S B B S B B

S S S B S S S
B. IMPLIKASI DAN BI-IMPLIKASI

Definisi :
Misalkan p dan q adalah proposisi
● Implikasi 𝑝 ⇒ 𝑞 bernilai salah hanya jika p benar dan q salah, selain itu
bernilai benar
● Bi-Implikasi 𝑝 ⇔ 𝑞 bernilai benar jika p dan q bernilai sama (keduanya
benar atau keduanya salah), selain itu bernilai salah.

Berdasarkan definisi Implikasi dan bi-Implikasi di atas, maka Tabel Kebenaran yang
bisa kita buat adalah sebagai berikut.

Tabel 4. Tabel Kebenaran Implikasi

p q 𝑝⇒𝑞

B B B

B S S

S B B

S S B

Tabel 5. Tabel Kebenaran Bi-Implikasi

p q 𝑝⇔𝑞

B B B

B S S

S B S

S S B

Untuk dapat lebih memahami penggunaan Tabel Kebenaran Implikasi dan Bi-
Implikasi pada proses penarikan kesimpulan, perhatikanlah contoh berikut.
Contoh 1.
Sebuah pulau didiami oleh 2 suku penduduk asli. Penduduk suku pertama selalu
berkata jujur, sementara penduduk suku kedua selalu berkata bohong. Ketika anda
tiba di pulau ini dan bertanya kepada seorang penduduk, apakah pulau ini terdapat
emas atau tidak? Ia menjawab “Ada emas di pulau ini jika dan hanya jika saya
selalu mengatakan kebenaran”. Cari apakah terdapat emas di pulau tersebut?

Untuk menyelesaikan permasalahan di atas, yang perlu dilakukan adalah memisalkan


pernyataan di atas ke dalam dua proposisi.

p : Saya selalu mengatakan kebenaran


q : Terdapat emas di pulau ini

Dengan demikian, pernyataan penduduk tersebut dapat dinyatakan dengan

𝑝⇔𝑞

Selanjutnya kita akan meninjau 2 kemungkinan kasus terkait pernyataan penduduk


ini.
Kasus 1 : Penduduk tersebut berasal dari suku yang senantiasa berkata jujur
Kasus 2 : Penduduk tersebut berasal dari suku yang senantiasa berkata bohong

Kasus 1 : Penduduk tersebut berkata jujur. Hal ini berarti p benar dan jawaban
terhadap pernyataan kita (𝑝 ⇔ 𝑞) juga benar.
Kita memiliki Tabel Kebenaran Bi-Implikasi

p q 𝑝⇔𝑞

B B B

Terlihat bahwa jika p benar dan 𝑝 ⇔ 𝑞 benar, maka q harus benar. Dengan
demikian, ksimpulannya adalah Terdapat emas di pulau tersebut.

Kasus 2 : Penduduk tersebut berkata bohong. Hal ini berarti p tidak benar dan
jawaban terhadap pernyataan kita (𝑝 ⇔ 𝑞) juga tidak benar.
Kita memiliki Tabel Kebenaran Bi-Implikasi

p q 𝑝⇔𝑞

S B S

Terlihat bahwa jika p tidak benar dan 𝑝 ⇔ 𝑞 tidak benar, maka q harus benar.
Dengan demikian, kesimpulannya adalah Tidak terdapat emas di pulau tersebut.

C. TAUTOLOGI DAN KONTRADIKSI


Kalimat majemuk dapat selalu bernilai benar untuk berbagai kemungkinan nilai
kebenaran dari proposisi - proposisinya atau selalu bernilai salah untuk berbagai
kemungkinan nilai kebenaran dari proposisi - proposisinya. Secara definisi, Tautologi
dan Kontradiksi dapat didefinisikan sebagai berikut.

Definisi
Sebuah kalimat majemuk disebut Tautologi jika ia benar untuk semua kasus dan
disebut Kontradiksi jika ia salah untuk semua kasus.

Untuk dapat lebih memahami konsep Tautologi dan Kontradiksi ini, perhatikan contoh
berikut.

Contoh 1.
Misalkan p dan q adalah proposisi. Proposisi majemuk 𝑝 ∨ ∼ (𝑝 ∧ 𝑞) adalah sebuah
Tutologi sedangkan (𝑝 ∧ 𝑞) ∧ ∼ (𝑝 ∨ 𝑞) adalah sebuah kontradiksi. Buktikanlah
dengan Tabel Kebenaran.

Permasalahan di atas dapat kita selesaikan dengan menggunakan Tabel Kebenaran.


Dengan memisahkan setiap komponen proposisi yang perlu dibuktikan, maka
kesimpulan dapat kita tarik.

maka komponen ekspresi pertamai yang harus ada pada Tabel Kebenaran adalah :

(𝑝 ∧ 𝑞), ∼ (𝑝 ∧ 𝑞), dan 𝑝 ∨∼ (𝑞 ∧ 𝑟)

Dengan demikian Tabel Kebenaran dapat kita jabarkan sebagai berikut.

p q (𝑝 ∧ 𝑞) ∼ (𝑝 ∧ 𝑞) 𝑝 ∨∼ (𝑝 ∧ 𝑞)

B B B S B

B S S B B

S B S B B

S S S B B

Selanjutnya komponen ekspresi pertamai yang harus ada pada Tabel Kebenaran
adalah :

(𝑝 ∧ 𝑞), (𝑝 ∨ 𝑞), ∼ (𝑝 ∨ 𝑞), dan (𝑝 ∧ 𝑞) ∧ ∼ (𝑝 ∨ 𝑞)


Dengan demikian Tabel Kebenaran dapat kita jabarkan sebagai berikut.

p q (𝑝 ∧ 𝑞) (𝑝 ∨ 𝑞) ∼ (𝑝 ∨ 𝑞) (𝑝 ∧ 𝑞) ∧ ∼ (𝑝 ∨ 𝑞)

B B B B S S

B S S B S S

S B S B S S

S S S S B S

D. EKUIVALEN

Dalam proses penarikan kesimpulan, dua buah proposisi dapat dikombinasikan dalam
berbagai cara. Namun ketika proses penarikan kesimpulan yang kita lakukan sudah
tepat, maka akan tetap menghasilkan tabel kebenaran yang sama. Hal seperti ini
disebut equivalen secara logika. Decara definitif dapat kita jabarkan sebagai berikut.

Definisi.
Dua buah proposisi majemuk, P (p, q, … ) disebut equivalen secara logika,
dinotasikan P (p, q, … ) ≡ Q (p, q, … ) jika keduanya mempunyai tabel kebenaran
yang identik.

Untuk dapat lebih memahami konsep equivalen ini, perharikan contoh berikut.
Contoh 1.
Misalkan p dan q adalah proposisi. Tunjukkan bahwa proposisi majemuk ∼ (𝑝 ∨ 𝑞)
equivalen dengan proposisi majemuk ∼ 𝑝 ∧∼ 𝑞 dengan menggunakan tabel
kebenaran

Untuk membuktikan bahwa kedua proposisi majemuk itu bernilai sama atau tidak,
maka kita harus menggunakan tabel kebenaran. Tabel Kebenaran yang bisa dibuat
adalah sebagai berikut.

Tabel Kebenaran Proposisi Majemuk ∼ (𝑝 ∨ 𝑞)

p q (𝑝 ∨ 𝑞) ∼ (𝑝 ∨ 𝑞)

B B B S

B S B S
S B B S

S S S B

Tabel Kebenaran Proposisi Majemuk ∼ 𝑝 ∧∼ 𝑞

p q ∼𝑝 ∼𝑞 ∼ 𝑝 ∧∼ 𝑞

B B S S S

B S S B S

S B B S S

S S B B B

Dengan melihat kedua tabel kebenaran proposisi majemuk di atas, dapat disimpulkan
bahwa ∼ (𝑝 ∨ 𝑞) ≡ ∼ 𝑝 ∧∼ 𝑞 dengan urutan nilai kebenarannya S, S, S, B.

Untuk memastikan pemahamanmu mengenai konsep equivalen ini, coba selesaikan


permasalahan berikut.
● Tunjukkan bahwa 𝑝 ⇒ 𝑞 equivalen secara logika dengan ∼ 𝑝 ∨ 𝑞
● Tunjukkan bahwa 𝑝 ⇔ 𝑞 equivalen secara logika dengan (𝑝 ⇒ 𝑞) ∧ (𝑞 ⇒ 𝑝)
● Tunjukkan bahwa 𝑝 ⇔ 𝑞 equivalen secara logika dengan (∼ 𝑝 ∨ 𝑞) ∧ (∼ 𝑞 ∨ 𝑝)
● Tunjukkan bahwa 𝑝 ⇒ 𝑞 equivalen secara logika dengan ∼ 𝑞 ⇒∼ 𝑝

E. KONTINGENSI

Definisi :
Pernyataan majemuk yang bukan suatu Tautologi maupun Kontradiksi yang
memiliki nilai kebenaran yang benar dan salah.

Untuk dapat lebih memahami contoh dari bentuk kontingensi ini, carilah nilai
kebenaran dari contoh berikut.

Contoh 1.
Misalkan diberikan 3 buah proposisi p, q, dan r. Tentukan kesimpulan dari ekspresi
(𝑝 ∨ 𝑞) ∧ 𝑟!

Berdasarkan ekspresi (𝑝 ∨ 𝑞) ∧ 𝑟, Tabel Kebenarannya dapat dibuat seperti ini.


p q r (𝑝 ∨ 𝑞) (𝑝 ∨ 𝑞) ∧ 𝑟

B B B B B

B B S B S

B S B B B

B S S B S

S B B B B

S B S B S

S S B S S

S S S S S

F. KONVERS, INVERS, DAN KONTRAPOSISI

Selain bentuk implikasi yang sudah dibahas sebelumnya, juga terdapat bentuk
implikasi lain yang berkaitan dengan 𝑝 ⇒ 𝑞, yaitu proposisi sederhana yang
merupakan jenis dari implikasi. Ketiga jenis bentuk implikasi tersebut adalah konvers,
invers, dan kontraposisi.

Definisi.
Misalkan p dan q proposisi. Jika diketahui suatu implikasi 𝑝 ⇒ 𝑞, maka
● Konvers didefinisikan dengan 𝑞 ⇒ 𝑝
● Invers didefinisikan dengan ∼ 𝑝 ⇒∼ 𝑞
● Kontraposisi didefinisikan dengan ∼ 𝑞 ⇒∼ 𝑝

Ketiga jenis implikasi ini dapat dinyatakan dalam Tabel Kebenaran seperti berikut

Tabel Kebenaran Implikasi, Konvers, Invers, dan Kontraposisi

Implikasi Konvers Invers Kontraposisi

p q 𝑝 𝑞 (𝑝 ⇒ 𝑞) 𝑞⇒𝑝 ∼ 𝑝 ⇒∼ 𝑞 ∼ 𝑞 ⇒∼ 𝑝

B B S S B B B B

B S S B S B B S

S B B S B S S B
S S B B B S B B

Tabel ini menunjukkan bahwa proposisi bersyarat 𝑝 ⇒ 𝑞 equivalen secara logikan


dengan kontraposisinya ∼ 𝑞 ⇒∼ 𝑝

Untuk lebih dapat memahami konsep konvers, invers, dan kontraposisi, coba
perhatikan contoh berikut.

Contoh 1.
Tentukan konvers, invers, dan kontraposisi dari kalimat “ Jika Raya mempunyai
textbook “Pemrograman II”, maka Ia bisa menyelesaikan tugas dari dosen dengan
tepat waktu”

Bentuk kalimat di atas, dapat diubah bentuknya menjadi konver, invers, dan
kontraposisi seperti berikut.

Konvers : Jika Raya bisa menyelesaikan tugas dari dosen dengan tepat waktu, maka
Raya mempunyai textbook “Pemrograman II”
Invers : Jika Raya tidak mempunyai textbook “Pemrograman II”, maka Ia tidak bisa
menyelesaikan tugas dari dosen dengan tepat waktu”
Kontraposisi : ika Raya tidak bisa menyelesaikan tugas dari dosen dengan tepat
waktu, maka Ia tidak mempunyai textbook “Pemrograman II”

Untuk memastikan pemahaman kalian tetang konvers, invers, dan kontraposisi, coba
selesaikan masalah berikut.

1. Tentukan konvers, invers, dan kontraposisi dari kalimat berikut.


● Jika Rani tidak dapat menyelesaikan tugas tepat waktu, maka Ia tidak bisa
mendapatkan nilai 80
● Jika 7 lebih besar dari 4, maka 7 bukan bilangan negatif
● Sandy mendapat predikat cumlaude hanya jika Ia mendapat IPK lebih besar
dari 3,5
● Hanya jika Ranti tidak terlambat sesi wawancara, maka Ia akan diterima
bekerja di PT DAK Batam
● Perlu ada angin yang cukup agar miniatur pesawat ini dapat diterbangkan
● Cukup mendapat nilai 80 agar bisa mendapat nilai huruf A.

2. Diberikan pernyataan “ Perlu mendapatkan nilai TOEFL diatas 550 agar Riska
bisa mendapatkan kesempatan magang ke luar negeri
● Nyatakan pernyataan di atas dalam bentuk proposisi “ Jika p, maka q”
● Tentukan negasi, konvers, dan kontraposisi dari pernyataan tersebut

3. Tentukan negasi dari kalimat berikut


● Bilangan a lebih besar daripada 3 dan lebih kecil daripada 10
● Sinta lulus ujian jika dan hanya jika Ia mampu meraih angka di atas 85

4. Nyatakan ingkaran, konvers dan kontraposisi dari implikasi berikut


● Sebuah bilangan positif hanya prima jika Ia tidak mempunyai pembagi selain 1
dan dirinya sendiri
● Sebuah program dikatakan bagus hanya jika waktu eksekusinya singkat atau
kebutuhan memorinya sedikit
BAB 2

2. PEMROGRAMAN LOGIKA PADA KOTLIN


Pada materi ini akan membahas tentang penerapan konsep logika mata kuliah
matematika diskrit ke dalam pemrograman kotlin. Kotlin merupakan salah satu bahasa
pemrograman populer saat ini yang sering digunakan programmer untuk
mengembangkan aplikasi. Kotlin dikembangkan pada tahun 2010 oleh JetBrain
dimana dalam pembuatan kode lebih ringkas dan kesalahan kode dapat dengan
mudah diminimalisir. sebagai contoh menampilkan tulisan Matematika Diskrit dengan
sintak println (“Matematika Diskrit). Penulisan sintak diatas tidak perlu diakhiri dengan
titik koma berbeda dengan bahasa pemrograman lainnya yang harus mewajibkan
menggunakan titik koma sebagai akhir sebuah instruksi karena jika tidak ada titik
koma akan mengakibatkan error. Untuk mempelajari lebih dalam mengenai
pemrograman kotlin dapat mengakses situs https://kotlinlang.org/.

2.1 Dasar Pemrograman Kotlin


2.1.1 Variabel Var dan Val
Pada pemrograman kotlin, sistem dapat mengenali tipe data berdasarkan nilai
yang telah diberikan tanpa harus melakukan inisialisasi tipe data. Untuk melakukan
deklarasi variabel dapat menggunakan kata kunci val atau var. Sebagai contoh
penggunaan variabel nama dan tinggi pada kode dibawah ini.

fun main(args: Array<String>) {


var nama = "riki"
val tinggi = 175
println("Selamat Datang di Polman Negeri Babel")
println("Nama Anda: $nama")
println("Tinggi Badan: $tinggi")
}

Untuk memanggil variabel dapat menggunakan $ dan nama variabel yang menjadi
referensi sebagai contoh $nama. Perbedaan val atau var yaitu jika val hanya dapat
digunakan satu kali namun var dapat dilakukan berulang kali. Sebagai contoh pada
awalnya variabel nama bernilai riki namun di baris selanjutnya nama di set nilainya
yaitu afriansyah maka ketika hasil ditampilkan nilai terakhir kali yang telah di set yaitu
afriansyah.

fun main(args: Array<String>) {


var nama = "riki"
nama = "afriansyah"
println("Nama Anda: $nama")
}
Berbeda dengan val hanya bisa dilakukan satu kali jika ada variabel melakukan set
kembali dengan nilai yang berbeda menggunakan val maka sistem akan menampilkan
Val cannot be reassigned.

fun main(args: Array<String>) {


val nama = "riki"
nama = "afriansyah"
println("Nama Anda: $nama")
}

Selain itu juga pada pemrograman kotlin dapat menggunakan tipe data dari suatu
variabel yang akan digunakan. Adapun contoh kode penggunaan tipe data pada kotlin
sebagai berikut:

fun main(args: Array<String>) {


var nama: String = "riki Afriansyah"
var jenis_kelamin: Char = 'L'
var nilai: Int = 70
println("Nama Anda: $nama")
println("Jenis Kelamin: $jenis_kelamin")
println("Nilai : $nilai ")
}

2.1.2 Inputan nilai menggunakan scanner


Untuk melakukan inputan nilai pada console dapat menggunakan library
java.util.scanner. Misalnya ada sebuah inputan nilai pada variabel a dan b
berdasarkan inputan dari user. Terlebih dahulu lakukan import library dengan
melakukan kode import java.util.Scanner. Sebagai contoh kode dalam penggunaan
scanner sebagai berikut:

import java.util.Scanner
fun main(args: Array<String>) {
val input = Scanner (System.`in`)

//Melakukan penginputan nilai pada variabel


print("Masukkan Nilai a : ")
val a = input.nextInt()
print("Masukkan Nilai b : ")
val b = input.nextInt()

//Menampilkan isi variabel


println("Nilai a: $a")
println("Nilai b: $b")
print("Nilai a + b = ${a+b}")

}
Hasil output program apabila inputan nilai a = 12 dan b=3 sebagai berikut:
Masukkan Nilai a : 12
Masukkan Nilai b : 3
Nilai a: 12
Nilai b: 3
Nilai a + b = 15

${a+b} merupakan proses perhitungan penjumlahan nilai dari variabel a dan b yang
diinput oleh user.

2.1.3 Kondisional
Kondisional merupakan suatu instruksi akan dijalankan apabila kondisi yang
menjadi persyaratan terpenuhi. misalnya syarat untuk mendapatkan beasiswa yaitu
mahasiswa aktif dengan IPK diatas 3. Apabila ada mahasiswa IPK dibawah 3 maka
mahasiswa tersebut tidak akan mendapatkan beasiswa. Pada pemrograman kotlin
penerapan kondisional dapat menggunakan sintak IF dan apabila syarat kondisi lebih
dari satu dapat menggunakan IF Else. contoh penggunaan kondisional pada kasus
beasiswa di atas sebagai berikut:

import java.util.Scanner
fun main(args: Array<String>) {
val input = Scanner (System.`in`)
print("Masukkan Nilai IPK : ")
val Ipk = input.nextDouble()

//Kondisi
if(Ipk>3){
print("Syarat IPK Terpenuhi")
} else{
print("Mohon Maaf, IPK Tidak Terpenuhi")
}
}

Hasil output program apabila IPK yang dimasukkan 2.05 sebagai berikut:
Masukkan Nilai IPK : 2.05
Mohon Maaf, IPK Tidak Terpenuhi

Hasil output program apabila IPK yang dimasukkan 3.2 sebagai berikut:
Masukkan Nilai IPK : 3.2
Syarat IPK Terpenuhi
2.1.4 Perulangan
Perulangan merupakan suatu instruksi akan dilakukan secara berulang selama
kondisi persyaratan memenuhi. Perulangan di dalam pemrograman dapat
menggunakan sintak for, while, dan do while. Misalnya ada sebuah kalimat “Saya
berjanji tidak akan mengulanginya lagi” akan ditampilkan sebanyak 10 kali maka kode
yang dapat dibuat dengan menggunakan perulangan sebagai berikut:

fun main(args: Array<String>) {


for(i in 1 .. 10){
println("Saya berjanji tidak akan mengulanginya lagi")
}
}

Contoh penerapan perulangan di dalam matematika pada kasus perpangkatan a b.


Pada kasus ini dapat menggunakan perulangan dimana a merupakan faktor pengali
sebanyak b. Adapun kode yang dapat dibuat dalam kasus perpangkatan sebagai
berikut:

import java.util.Scanner
fun main(args: Array<String>) {
val input = Scanner (System.`in`)
print("a : ")
val a = input.nextInt()
print("b : ")
val b = input.nextInt()
var temp=1

for(i in 1..b){
temp=temp*a
}
print("$temp")
}

Hasil output program apabila a diinput 2 dan b diinput 3 sebagai berikut:


a:2
b:3
8

2.1.5 Array
Array merupakan kumpulan data dengan tipe data yang sejenis. Indeks array
dimulai dari 0. Misalnya ada sebuah kumpulan nilai menggunakan array dengan val
Arr = arrayOf(12, 21, 35, 71, 60) maka nilai Arr[0] akan bernilai 12 karena berada pada
indeks ke-0.

fun main(args: Array<String>) {


val Arr = arrayOf(12, 21, 35, 71, 60)
println("${Arr[0]}")
println("${Arr[3]}")
}

Hasil output program array sebagai berikut.


12
71

Array Arr pada indeks ke-0 bernilai 12 dan indeks-3 bernilai 71. selain itu nilai dapat
diinputkan ke dalam array menggunakan library scanner. contoh program
memasukkan nilai ke dalam array sebagai berikut:

import java.util.Scanner
fun main(args: Array<String>) {
val read = Scanner(System.`in`)
val Arr = IntArray(5)

//menginput nilai ke dalam Array


for(i in 0 ..Arr.size-1){
print("Arr[$i]=")
Arr[i] = read.nextInt()
}

println("Menampilkan Nilai Array")


//menampilkan seluruh nilai pada array
for(i in 0 ..Arr.size-1){
println("Nilai Array Indeks ke- $i adalah ${Arr[i]}")
}
}

Hasil output program inputan array sebagai berikut:


Arr[0]=12
Arr[1]=1
Arr[2]=5
Arr[3]=7
Arr[4]=8
Menampilkan Nilai Array
Nilai Array Indeks ke- 0 adalah 12
Nilai Array Indeks ke- 1 adalah 1
Nilai Array Indeks ke- 2 adalah 5
Nilai Array Indeks ke- 3 adalah 7
Nilai Array Indeks ke- 4 adalah 8
2.2 Operator Logika
Operator Logika pada materi ini berkaitan dengan materi logika pada mata
kuliah matematika diskrit yaitu konjungsi, disjungsi dan negasi. Pada pemrograman
kotlin operator logika pada konjungsi (∧) dapat menggunakan sintak && dan disjungsi
(∨) menggunakan sintak || serta negasi (∼) menggunakan sintak (!).

2.2.1 Konjungsi ( && )


Penarikan kesimpulan akan bernilai true apabila kedua atau lebih pernyataan
bernilai true. misalnya p bernilai true dan q bernilai true maka p && q akan bernilai
true. Adapun kode penerapan konjungsi di dalam pemrograman kotlin sebagai
berikut:

fun main(args: Array<String>) {


var p:Boolean=true
var q:Boolean=false

println("Konjungsi")
println("----------")
println("$p && $p = ${p&&p}")
println("$p && $q = ${p&&q}")
println("$q && $p = ${q&&p}")
println("$q && $q = ${q&&q}")
}

Hasil output program konjungsi sebagai berikut:


Konjungsi
----------
true && true = true
true && false = false
false && true = false
false && false = false

Apabila inputan p dan q berdasarkan inputan dapat menggunakan library scanner


serta tipe data yang digunakan yaitu boolean. Misalnya user memasukkan nilai
boolean dari variabel p bernilai true dan q bernilai true.

import java.util.Scanner
fun main(args: Array<String>) {
var read = Scanner(System.`in`)
var p:Boolean
var q:Boolean

print("p:")
p = read.nextBoolean()
print("q:")
q = read.nextBoolean()

print("$p && $q = ${p&&q}")


}

Hasil output program konjungsi berdasarkan inputan user sebagai berikut:


p:true
q:true
true && true = true

2.2.2 Disjungsi ( || )
Penarikan kesimpulan pada disjungsi akan bernilai true apabila kedua atau
salah satu pernyataan baik p maupun q bernilai true. Adapun kode penerapan
konjungsi di dalam pemrograman kotlin sebagai berikut:

fun main(args: Array<String>) {


var p:Boolean=true
var q:Boolean=false

println("Disjungsi")
println("----------")
println("$p || $p = ${p||p}")
println("$p || $q = ${p||q}")
println("$q || $p = ${q||p}")
print("$q || $q = ${q||q}")
}

Hasil output program disjungsi sebagai berikut:


Disjungsi
----------
true || true = true
true || false = true
false || true = true
false || false = false

Kode untuk inputan nilai boolean menggunakan scanner sebagai berikut:


import java.util.Scanner
fun main(args: Array<String>) {
var read = Scanner(System.`in`)
var p:Boolean
var q:Boolean

print("p:")
p = read.nextBoolean()
print("q:")
q = read.nextBoolean()

print("$p || $q = ${p||q}")
}

2.3 Tabel Kebenaran 2n


Untuk membuat tabel kebenaran 2n pada pemrograman kotlin dapat
menggunakan konsep perulangan dan array. misalnya n=3 yang terdiri dari variabel
p,q dan r dengan operasi (p ∧ q ∧ r) maka jumlah baris tabel kebenaran berjumlah 2 3
=8.

p q r p∧q∧r

T T T T

T T F F

T F T F

T F F F

F T T F

F T F F

F F T F

F F F F

Tabel kebenaran 2n dapat diimplementasikan ke dalam pemrograman kotlin dengan


cara melakukan set nilainya terlebih dahulu ke dalam array kemudian lakukan
perulangan. sebagai contoh kode untuk membuat tabel kebenaran 23 dengan operasi
(p ∧ q ∧ r) maka diperlukan adanya nested looping.

fun main(args: Array<String>) {


val Tb = booleanArrayOf(true,false)
for(i in 0..1){
for (j in 0 ..1){
for(k in 0..1){
println("${Tb[i]} && ${Tb[j]} && ${Tb[k]} =
${Tb[i]&&Tb[j]&&Tb[k]} ")
}
}
}
}
Hasil output program tabel dengan operasi (p ∧ q ∧ r) sebagai berikut:
true && true && true = true
true && true && false = false
true && false && true = false
true && false && false = false
false && true && true = false
false && true && false = false
false && false && true = false
false && false && false = false

Contoh lain dalam membuat tabel kebenaran 23 dengan operasi (p ∨ q ∨ r) pada


pemrograman kotlin sebagai berikut:

fun main(args: Array<String>) {


val Tb = booleanArrayOf(true,false)
for(i in 0..1){
for (j in 0 ..1){
for (k in 0 ..1) {
println("${Tb[i]} || ${Tb[j]} || ${Tb[k]} =
${Tb[i]||Tb[j]||Tb[k]} ")
}
}
}
}

Hasil output program tabel dengan operasi (p ∨ q ∨ r) sebagai berikut:


true || true || true = true
true || true || false = true
true || false || true = true
true || false || false = true
false || true || true = true
false || true || false = true
false || false || true = true
false || false || false = false

2.4 Kombinasi Operator Logika


Dalam pemrograman kotlin dapat dilakukan kombinasi penerapan operator
logika. misalnya p bernilai true, q bernilai true, dan r bernilai false dengan operasi (p
v q) ∧ r maka akan menghasilkan nilai kebenaran false.

import java.util.Scanner
fun main(args: Array<String>) {
var read = Scanner(System.`in`)
var p:Boolean
var q:Boolean
var r:Boolean

print("p:")
p = read.nextBoolean()
print("q:")
q = read.nextBoolean()
print("r:")
r = read.nextBoolean()

print("($p || $q) && $r = ${(p || q) && r} ")


}

Hasil output program dengan operasi (p v q) ∧ r sebagai berikut:


p:true
q:true
r:false
(true || true) && false = false

2.5 Negasi (∼)


Penerapan negasi pada pemrograman kotlin dapat menggunakan sintak (!).
misal variabel p bernilai true kemudian ada negasi pada variabel p maka nilai variabel
p akan bernilai false.
fun main(args: Array<String>) {
var p:Boolean=true
print("${!p}")
}
contoh kasus lain, misalnya ada tiga variabel yaitu p bernilai true, q bernilai false dan
r bernilai false dengan operasi (p ∧ ∼q) v r) maka operasi tersebut akan bernilai true.

import java.util.Scanner
fun main(args: Array<String>) {
var read = Scanner(System.`in`)
var p:Boolean
var q:Boolean
var r:Boolean

print("p:")
p = read.nextBoolean()
print("q:")
q = read.nextBoolean()
print("r:")
r = read.nextBoolean()
print("($p && !$q) || $r = ${(p && !q) || r} ")
}

Hasil output program dengan operasi (p ∧ ∼q) v r) sebagai berikut:


p:true
q:false
r:false
(true && !false) || false = true

2.6 Implementasi Implikasi dan Bi-Implikasi


Implementasi bentuk implikasi dan Bi-Implikasi dapat dilakukan dengan
mengubah bentuk tersebut ke dalam bentuk lain.
𝑝 ⇒ 𝑞 ekuivalen dengan ∼ 𝑝 ∨ 𝑞 (implikasi)
𝑝 ⇔ 𝑞 ekuivalen dengan (∼ 𝑝 ∨ 𝑞) ∧ (∼ 𝑞 ∨ 𝑝) (Bi-implikasi)

Tabel kebenaran implikasi dapat dilakukan penerapan pada pemrograman kotlin


dengan menerapkan nested looping dengan menggunakan bentuk ∼ 𝑝 ∨ 𝑞 .
fun main(args: Array<String>) {
val Tb= booleanArrayOf(true,false)
for(i in 0..1){
for (j in 0 ..1){
println("${Tb[i]} -> ${Tb[j]} = ${!Tb[i]||Tb[j]} ")
}
}
}

Hasil output program implikasi sebagai berikut:


true -> true = true
true -> false = false
false -> true = true
false -> false = true

Begitu juga dengan penerapan Bi-Implikasi pada pemrograman kotlin dengan


menggunakan bentuk (∼ 𝑝 ∨ 𝑞) ∧ (∼ 𝑞 ∨ 𝑝) .
fun main(args: Array<String>) {
val Tb = booleanArrayOf(true,false)
for(i in 0..1){
for (j in 0 ..1){
println("${Tb[i]} <-> ${Tb[j]} = ${(!Tb[i]||Tb[j]) &&
(!Tb[j] ||Tb[i])} ")
}
}
}
Hasil output program Bi-Implikasi sebagai berikut:
true <-> true = true
true <-> false = false
false <-> true = false
false <-> false = true

3. HIMPUNAN
3.1 Pengantar Himpunan
Teori himpunan merupakan salah satu teori dasar yang selalu diberikan untuk
penguasaan Matematika dari tingkat dasar hingga ke perguruan tinggi. Tanpa
disadari, dalam kehidupan sehari - hari kita sering kali menemui sekumpulan objek -
objek tertentu yang memiliki kategori pengklasifikasiannya masing - masing. Di dalam
kelas sekalipun, mahasiswa terdiri atas kumpulan mahasiswa laki - laki, kumpulan
mahasiswa perempuan, kumpulan mahasiswa dengan IPK 3 ke atas, kumpulan
mahasiswa rajin, kumpulan mahasiswa tampan, kumpulan mahasiswa cantik, dan
kumpulan lainnya. Kumpulan objek - objek tertentu yang mempunyai syarat tertentu
dan jelas sehingga observer dapat mengklasifikasi objek - objek tertentu ke dalam
kelasnya disebut dengan istilah himpunan. Dari beberapa kumpulan yang sudah di
sebutkan sebelumnya di atas, dengan menggunakan syarat tertentu yang jelas,
observer dapat menentukan objek tersebut termasuk menjadi anggota salah satu
himpunan atau tidak.

Definisi :
Himpunan (set) adalah kumpulan objek - objek yang berbeda yang memiliki sifat
tertentu yang jelas (well defined)

Di dalam suatu himpunan, anggota yang termuat di dalamnya biasa disebut dengan
elemen, anggota, atau unsur. Untuk dapat membedakan mana yang merupakan
himpunan dan mana yang bukan merupakan himpunan, dapat kita kaji contoh berikut
satu per satu.

Contoh 1.
● Kumpulan mahasiswa laki - laki
● Kumpulan mahasiswa perempuan
● Kumpulan mahasiswa dengan IPK 3 ke atas
● Kumpulan mahasiswa rajin
● Kumpulan mahasiswa tampan
● Kumpulan mahasiswa cantik
● Kumpulan mahasiswa anggota senat
● Kumpulan buah manis

Bergerak dari contoh di atas, perhatikan penjelasan berikut.


● Kumpulan mahasiswa laki - laki
Merupakan himpunan, karena memiliki syarat tertentu yang jelas
● Kumpulan mahasiswa perempuan
Merupakan himpunan, karena memiliki syarat tertentu yang jelas
● Kumpulan mahasiswa dengan IPK 3 ke atas
Merupakan himpunan, karena memiliki syarat tertentu yang jelas
● Kumpulan mahasiswa rajin
Bukan merupakan himpunan, karena tidak memiliki syarat tertentu yang jelas
● Kumpulan mahasiswa tampan
Bukan merupakan himpunan, karena tidak memiliki syarat tertentu yang jelas
● Kumpulan mahasiswa cantik
Bukan merupakan himpunan, karena tidak memiliki syarat tertentu yang jelas
● Kumpulan mahasiswa anggota senat
Merupakan himpunan, karena memiliki syarat tertentu yang jelas
● Kumpulan buah manis
Bukan merupakan himpunan, karena tidak memiliki syarat tertentu yang jelas

3.2 Representasi Himpunan


Dalam pembahasannya, himpunan dapat dinyatakan/ disajikan dalam empat cara,
yaitu :
● Enumerasi, jika himpunan yang dimaksud merupakan himpunan terbatas yang
jumlahnya tidak terlalu besar. Penulisan himpunan dengan cara enumerasi ini
mengunakan tanda kurung kurawal dan diberi nama dengan huruf Kapital atau
juga bisa berupa simbol lain.
Contoh 1 : Misal diketahui suatu himpunan A yang merupakan himpunan nama
- nama sungai yang ada di Provinsi Bangka Belitung. Dengan demikian
himpunan A dengan cara enumerasi dapat disajikan A = { Sungai Baturusa,
Sungai Rangkui, Sungai Ulu, Sungai Kurau, Sungai Cerucuk, Sungai
Lenggang, Sungai Padang }
Contoh 2 : Diketahui himpunan B yang memiliki 4 anggota bilangan prima
terkecil yaitu 2, 3, 5, 7. Himpunan B dapat ditulis B = { 2, 3, 5, 7}
Beberapa hal yang perlu diperhatikan dalam penulisan anggota himpunan yaitu
:
(1) urutan anggota tidak diperhatikan. Ketika kita menuliskan anggota
himpunan, urutan anggota tidak diperhatikan, jadi ketika kita menuliskan B = {
2, 3, 5, 7} akan sama artinya dengan B = { 2, 5, 3, 7}, B = { 7, 3, 5, 2} atau
bentuk lainnya ketika posisi anggota dipertukarkan;
(2) ketidaktepatan dalam menulis anggota himpunan berulang. Ketika
menuliskan anggota suatu himpunan tidak diperkenankan untuk menulis
anggota secara berulang, misalnya A = { 1, 2, 2, 3, 4} cukup menulis ; A = { 1,
2, 3, 4} saja.
(3) menggunakan tanda “ … “ untuk menuliskan himpunan yang jumlah
anggotanya besar dan jelas harus memiliki pola tertentu. Contohnya dalam
menuliskan Himpunan huruf kapital sebagai { a, b, c, … , y, z}, himpunan 50
bilangan asli pertama dapat ditulis { 1, 2, 3, … , 49, 50}, himpunan bilangan
bulat dapat ditulis { …, -2, -1, 0, 1, 2, … }
● Simbol - Simbol Baku
Dalam konsep himpunan terdapat beberapa simbol baku yang bersifat umum.
Dalam penulisannya, himpunan biasanya ditulis tebal “bold’ dan “kapital”.
Perhatikan beberapa contoh penulisan himpunan berikut.
C = himpunan bilangan cacah
P = himpunan bilangan bulat positif = { 1, 2, 3, … }
Z = himpunan bilangan bulat = { …, -2, -1, 0, 1, 2, … }
Q = himpunan bilangan rasional
Dalam konsep himpunan, terdapat himpunan semesta (semesta pembicaraan)
yang merupakan himpunan yang anggota - anggotanya terdiri atas semua
objek yang menjadi objek pembicaraan. Biasanya himpunan semesta
disimbolkan dengan simbol U atau S. Contoh jika diketahui himpunan A = { 1,
3} dan S = { 1, 2, 3, 4}. Maka dapat dikatakan bahwa S adalah himpunan
semesta dari himpunan A dan himpunan A adalah himpunan bagian dari S.

● Notasi Pembentuk Himpunan


Notasi pembentuk himpunan merupakan salah satu cara yang bisa digunakan
untuk menyajikan himpunan. Cara ini disebut set builder. Menyajikan himpunan
dengan menggunakan cara notasi pembentuk himpunan adalah dengan
menuliskan syarat yang jelas/ kriteria dari anggota himpunannya. Dalam
menuliskan himpunan dengan notasi pembentuk himpunan memiliki aturan
seperti :
- Terdapat tanda “|” yang mewakilkan elemen himpunan. Tanda “|” dibaca
dimana, yangmana, atau sedemikian hingga
- Tanda “|” mengartikan apa yang menjadi syarat keanggotaan himpunan
- Dalam notasi juga terdapat tanda “,” atau “;” di dalam syarat keanggotaan
dapat dibaca dan.
Contoh penulisan himpunan dengan menggunakan cara notasi pembentuk
himpunan.
- B adalah himpunan bilangan bulat negatif kurang dari 10. B dapat
dinyatakan dengan :
B = { x| x adalah himpunan bilangan bulat negatif kurang dari 10}
secara ringkas dapat ditulis
B = { x | x 𝜖 𝑃, 𝑥 < 10}
- A adalah himpunan bilangan Asli kurang dari 6. A dapat dinyatakan dengan
:
A = { x| x adalah himpunan bilangan asli kurang dari atau sama dengan 6}
secara ringkas dapat ditulis
A = { x | x 𝜖 𝑁, 𝑥 ≤ 6}

● Diagram Venn
Metode selanjutnya yang bisa digunakan untuk menyatakan himpunan adalah
diagram Venn. Diagram Venn merupakan bentuk representasi himpunan dalam
bentuk grafis. Perhatikan contoh repesentasi himpunan dalam bentuk diagram
Venn.
- Misalkan diketahui S = { 1, 2, 3, …, 10}, A = { 1, 3, 5, 7, 10 }, B = { 1, 2, 4,
5, 8}. Ketiga himpunan ini dapat disajikan dalam bentuk diagram venn
sebagai berikut.

Gambar di atas merupakan penyajian himpunan dengan menggunakan


diagram venn. Pada diagram Venn tersebut terlihat bahwa himpunan A
dan B memiliki anggota yang sama yaitu 1 dan 5. Sehingga dapat
dikatakan bahwa himpunan A dan B beriirisan. Terlihat bahwa 6 dan 9
berada di luar lingkaran. Hal itu berarti bahwa 6 dan 9 bukan merupakan
anggota himpunan A dan B namun masih berada pada lingkup semesta
pembicaraan (segi empat) karena merupakan anggota S.

3.3 Kardinalitas Himpunan

Jika berbicara tentang suatu himpunan yang berhingga (finite set) dengan
syarat memiliki n himpunan berbeda dengan syarat n merupakan bilangan non negatif.
Sebaliknya, sebuah himpunan dikatakan himpunan tak berhingga (infinite set) dengan
syarat tidak memiliki anggota tak berhingga ( ∞).

Definisi.
Kardinal himpunan (cardinality of the set) menyatakan jumlah dari anggota yang
berbeda yang termuat dalam suatu himpunan.

Kardinalitas himpunan dapat dinotasikan dengan


𝑛 (𝐴) atau |𝐴|,
dimana A merupakan himpunan.

Contoh:
● Jika diketahui S = { 1, 2, 3, … , 10 }, A = { 1, 2, 4, 7,8} dan B = { 1, 2, 3, 5, 9,
10}, maka dapat dituliskan |𝑆| = 10, |𝐴| = 5, |𝐵| = 6. Dengan demikian S,
A, dan B disebut sebagai himpunan yang berhingga.
● Manusia memiliki 5 buah alat indera yaitu mata, telinga, hidung, lidah, dan kulit.
Misalkan I adalah himpunan alat indera manusia, maka dapat dituliskan |𝐼| =
5
untuk himpunan tak berhingga maka memiliki kardinal tak hingga pula (∞). contoh
himpunan tak berhingga dapat dilihat pada contoh berikut.
Contoh :
● Jika diketahui N merupakan himpunan bilangan asli, maka |𝐴| = ∞
● Jika diketahui M merupakan himpunan koordinat titik pada suatu grafik
persamaan 𝑦 = 2𝑥 − 5. KIta ketahui bahwa pada suatu garis memiliki tak
terhingga banyaknya himpunan koordinat titik. Maka dapat dinyatakan |𝑀| =

3.4 Himpunan Kosong


Dalam konsep himpunan, terdapat sebuah istilah yang sering di temui yaitu himpunan
kosong. Seperti yang kita ketahui bahwa himpunan merupakan kumpulan objek -
objek yang memiliki syarat dan karekteristik yang jelas. Suatu himpunan dapat
memiliki anggota dan tidak memiliki anggota. Himpunan yang memiliki anggota berarti
dapat didata anggota - anggota yang memenuhi syarat yang sudah ditentukan dan
sebaliknya Himpunan yang tidak memiliki anggota berarti tidak dapat didata anggota
- anggota yang memenuhi syarat yang sudah ditentukan.

Definisi :
Suatu himpunan A dapat dikatakan sebagai himpunan kosong (empty set) jika
dan hanya jika |𝐴| = 0. Dengan kata lain dapat dikatakan bahwa himpunan
kosong merupakan himpunan yang tidak memiliki satupun anggota. Himpunan
kosong dapat dinotasikan dengan {} atau 𝜙 .

Dengan kata lain, jika A adalah himpunan kosong, maka |𝐴| = 0 dan jika |𝐴| = 0,
maka A adalah himpunan kosong. Untuk dapat memahami bagaimana konsep
himpunan kosong, perhatikan contoh berikut.

Contoh
● 𝐴 = {𝑥| 1 < 𝑥 < 2, 𝑥 𝜖 𝑍}

Untuk himpunan A, kita harus mencari dan mendata nilai x yang merupakan bilangan
bulat lebih dari 1 atau kurang dari 2. Karena tidak ada anggota yang memenuhi syarat
tersebut, maka dapat dikatakan bahwa 𝑛(𝐴) = 0 atau 𝐴 = 𝜙

● 𝐵 = {𝑥| 𝑥 2 + 5 = 0, 𝑥 𝜖 𝑅}
Dalam contoh himpunan B juga tidak memiliki anggota, karena tidak ada bilangan Rill
yang memehuhi persyaratan untuk dijadikan sebagai himpunan penyelesaian dari
persamaan 𝑥 2 + 5 = 0. Dengan kata lain dapat dikatakan bahwa persamaan 𝑥 2 + 5 =
0 tidak memiliki penyelesaian jika semesta pembicaraannya adalah bilangan Rill.
Persamaan 𝑥 2 + 5 = 0 memiliki penyelesaian berupa bilangan imajiner. Dengan
demikian maka dapat dikatakan bahwa 𝑛(𝐶) = 0 atau 𝐶 = 𝜙

3.5 Himpunan Bagian

Ketika membahas beberapa himpunan, sebuah himpunan memiliki


kemungkinan menjadi bagian dari himpunan lainnya atau merupakan anggota dari
himpunan lainnya. Contoh nyata yang bisa digunakan untuk menggambarkan konsep
ini adalah :
“ Bangka Induk, Bangka Tengah, Bangka Barat, dan Bangka Selatan merupakan
kabupaten yang ada di Pulau Bangka. Bangka Induk, Bangka Tengah, Bangka Barat,
dan Bangka Selatan juga merupakan bagian dari Kepulauan Bangka Belitung.

Definisi :
A merupakan himpunan bagian (subset) dari B jika dan hanya jika setiap
anggota dari A merupakan anggota dari B. Himpunan bagian dinotasikan
dengan ⊆. Dengan demikian dapat dinotasikan dalam bahasa matematika
dengan A ⊆ B ↔ ∀𝑥 𝜖 𝐴 ⇒ 𝑥𝜖 𝐵.

Definisi di atas dapat dinyatakan dalam bentuk diagram Venn berikut untuk
mempermudah proses pemahaman konsepnya.

Berdasarkan diagram di atas, terlihat bahwa seluruh anggota himpunan A merupakan


anggota himpunan B, Namun tidak seluruh anggota himpunan B merupakan anggota
himpunan A. Dengan demikian kondisi dari diagram di atas secara matematis dapat
dinyatakan dengan 𝐴 ⊂ 𝐵. Kondisi di atas tidak bisa dinyatakan sebagai 𝐴 ⊆ 𝐵
karena 𝐴 ⊆ 𝐵 berbeda dengan 𝐴 ⊂ 𝐵. Untuk lebih dapat memahami perbedaan
keduanya, perhatikan penjelasan berikut.
● 𝐴 ⊆ 𝐵, , berarti bahwa A merupakan himpunan bagian (subset) dari B dan juga
berlaku A = B.
● 𝐴 ⊂ 𝐵, berarti bahwa A adalah anggota himpunan dari B dan 𝐴 ≠ 𝐵. Kondisi
ini dapat dikatakan bahwa A merupakan himpunan bagian sebenarnya
(proper subset) dari B.

Untuk memastikan pemahamanmu, coba tentukan notasi matematis dari setiap


kondisi berikut.
● 𝐴 = {1, 2, 3} dan 𝐵 = {1, 2}
● 𝑃 = {1, 2, 3, 4} dan 𝑄 = {1, 2, 3, 4}
● 𝑅 = {𝑝, 𝑞, 𝑟} dan 𝑆 = {𝑜, 𝑞, 𝑟, 𝑠}
● Jika 𝐴 = {𝑥|5 ≤ 𝑥 ≤ 9, 𝑥 𝜖 𝑍} dan 𝐵 = {(𝑦|1 ≤ 𝑦 ≤ 7, 𝑥 𝜖 𝑅}
● Jika 𝑃 = {(𝑥, 𝑦)|𝑥 + 𝑦 ≤ 6, 𝑥 ≥ 0, 𝑦 ≥ 0, 𝑥 𝜖 𝑅} dan 𝑄 = {(𝑥, 𝑦)|2𝑥 + 𝑦 ≤ 6, 𝑥 ≥
0, 𝑦 ≥ 0, 𝑥 𝜖 𝑅}

3.6 Kesamaan Himpunan

Dalam teori himpunan, terdapat suatu kondisi yang menyatakan bahwa dua buah
himpunan memiliki anggota yang sama. Jika terdapat dua buah himpunan dimana
himpunan pertama memiliki anggota himpunan yang persis sama dengan himpunan
lainnya maka dapat dikatakan bahwa kedua himpunan tersebut adalah sama. Urutan
dari anggota/ elemen himpunan tidak diperhatikan.

Definisi :
Himpunan A dikatakan sama dengan himpunan B jika dan hanya jika keduanya
memiliki elemen yang sama. Dengan kata lain 𝐴 sama dengan 𝐴 jika 𝐴 adalah
himpunan bagian dari 𝐴 dan 𝐴 adalah himpunan bagian dari 𝐴. Jika tidak
demikian maka 𝐴 tidak sama dengan 𝐴.

Definisi di atas secara matematis dapat dinyatakan dengan

𝐴 = 𝐵 ↔ 𝐴 ⊆ 𝐵, 𝐵 ⊆ 𝐴

Untuk dapat lebih memahami konsep kesamaan dan ketaksamaan himpunan ini,
perhatikan kedua diagram berikut.
𝐴 ⊂ 𝐵, 𝐴 ≠ 𝐵 𝐴 ⊂ 𝐵 dan 𝐵 ⊂ 𝐴, maka 𝐴 = 𝐵

3.7. Operasi Pada Himpunan


3.7.1 Irisan (Intersection)

Irisan (Intersection) merupakan salah satu bentuk operasi pada himpunan. Dalam
bahasa sehari - hari, dua buah objek dikatakan beririsan jika ada bagian dari objek
satu juga menjadi bagian dari objek lainnya. Untuk lebih memahami konsep irisan
secara matematis perhatikan definisi berikut.

Definisi:
Irisan (Intersection) dari himpunan A dan B adalah himpunan yang setiap
anggotanya merupakan anggota dari himpunan A dan himpunan B.

Secara matematis himpunan A yang beririsan dengan himpunan B dapat dinotasikan


dengan :

𝐴 ∩ 𝐵 = {𝑥|𝑥𝜖 𝐴 𝑑𝑎𝑛 𝑥𝜖 𝐵}

Untuk menggambarkan konsep irisan dua buah himpunan, terdapat dua buah kondisi
yang memungkinkan, yaitu :
● Himpunan saling lepas
Jika terdapat dua buah himpunan saling lepas, maka irisan dari kedua
himpunan tersebut adalah himpunan kosong ( 𝐴 ∩ 𝐵 = 𝜙). Hal ini dikarenakan
tidak ada anggota himpunan A yang sama dengan anggota himpunan B.
Kondisi ini dapat dinyatakan dalam bentuk diagram sebagai berikut.
● Himpunan tidak saling lepas
Jika terdapat dua buah himpunan tidak saling lepas, maka irisan dari kedua
himpunan tersebut adalah himpunan tak kosong. Hal ini dikarenakan ada
anggota himpunan A yang sama dengan anggota himpunan B. Kondisi ini
dapat dinyatakan dalam bentuk diagram sebagai berikut.

𝐴∩𝐵

Untuk lebih memahami konsep irisan (intersection) ini, perhatikan contoh berikut.
Contoh 1.
● Jika diberikan 𝑃 = {𝑎, 𝑏, 𝑐, 𝑑, 𝑒, 𝑓} dan 𝑄 = { 𝑑, 𝑒, 𝑓, 𝑔, ℎ, 𝑖}, maka 𝐴 ∩ 𝐵 =
{𝑑, 𝑒, 𝑓}
● Jika 𝐴 = {(𝑥, 𝑦)|𝑥 + 𝑦 = 5, 𝑥 > 0, 𝑦 > 0, 𝑥, 𝑦𝜖𝑅} dan 𝐵 = {(𝑥, 𝑦)|2𝑥 + 𝑦 =
7, 𝑥 > 0, 𝑦 > 0, 𝑥, 𝑦𝜖𝑅}, maka 𝐴 ∩ 𝐵 = {(2,3)} yang merupakan titik potong dari
garis 𝑥 + 𝑦 = 5 dan 2𝑥 + 𝑦 = 7

3.7.2 Gabungan (Union)

Gabungan (Union) merupakan salah satu bentuk operasi pada himpunan.


Dalam bahasa sehari - hari, gabungan dari dua buah objek berarti seluruh elemen
yang ada pada objek dikelompokkan menjadi satu dengan seluruh elemen yang ada
pada objek lainnya. Untuk lebih memahami konsep gabungan secara matematis
perhatikan definisi berikut.

Definisi.
Gabungan (Union) dari himpunan A dan B adalah himpunan yang setiap
anggotanya merupakan anggota dari himpunan A atau himpunan B.

Secara matematis himpunan A yang digabungkan dengan himpunan B dapat


dinotasikan dengan :

𝐴 ∪ 𝐵 = {𝑥|𝑥𝜖 𝐴 𝑎𝑡𝑎𝑢 𝑥𝜖 𝐵}

Diagram Venn yang menggambarkan 𝐴 ∪ 𝐵 dapat dilihat pada gambar berikut.


Untuk lebih memahami konsep gabungan (union) ini, perhatikan contoh berikut.
Contoh 1.
● Jika diberikan 𝐴 = {𝑝, 𝑞, 𝑟, 𝑠, 𝑡} dan 𝐵 = { 𝑎, 𝑏, 𝑐}, maka 𝐴∪𝐵 =
{𝑎, 𝑏, 𝑐, 𝑝, 𝑞, 𝑟, 𝑠, 𝑡}
● 𝐴∪𝜙 = 𝐴
● Jika 𝐴 = {(𝑥, 𝑦)|𝑥 + 𝑦 = 3, 𝑥 > 0, 𝑦 > 0, 𝑥, 𝑦𝜖𝑅} dan 𝐵 = {(𝑥, 𝑦)|2𝑥 + 𝑦 =
5, 𝑥 > 0, 𝑦 > 0, 𝑥, 𝑦𝜖𝑅}, maka 𝐴 ∪ 𝐵 ={(1,2),(2,1)} yang merupakan gabungan
dari seluruh himpunan penyelesaian dari himpunan A dan B.

2.7.3 Komplemen (Complement)

Komplemen (Complement) merupakan salah satu bentuk operasi pada


himpunan. Dalam bahasa sehari - hari, komplemen dari suatu himpunan dapat
diartikan sebagai elemen - elemen yang bukan merupakan anggota dari himpunan
tersebut namun merupakan anggota dari semesta pembicaraan. Untuk dapat lebih
memahami konsep komplemen secara matematis perhatikan definisi berikut.

Definisi.
Komplemen dari suatu himpunan A terhadap himpunan Semesta S adalah suatu
himpunan yang elemennya merupakan elemen S yang bukan elemen A.

Secara matematis, komplemen dari himpunan A dapat dinotasikan dengan :


𝐴′ atau 𝐴𝑐 = {𝑥|𝑥 𝜖 𝑆 dan 𝑥 ∉ 𝐴}

Diagram Venn yang menggambarkan 𝐴′ atau 𝐴𝑐 dapat dilihat pada gambar berikut.
Untuk lebih memahami konsep komplemen (complement) ini, perhatikan contoh
berikut.
Contoh 1.
● Jika diberikan 𝑆 = {1, 2, 3, 4, 5, . . . 10} dan 𝐴 = {2, 5, 7, 8, 10} maka 𝐴𝑐 =
{1, 3, 4, 6, 9}
● Jika 𝑆 = {(𝑥, 𝑦)|𝑥 + 𝑦 = 4, 𝑥 > 0, 𝑦 > 0, 𝑥, 𝑦𝜖𝑅} dan 𝐴 = {(𝑥, 𝑦)|2𝑥 + 𝑦 = 5, 𝑥 >
0, 𝑦 > 0, 𝑥, 𝑦𝜖𝑅} maka 𝐴𝑐 = {(2,2}

2.7.4 Selisih (Difference)

Selisih (Difference) merupakan salah satu bentuk operasi pada himpunan.


Dalam bahasa sehari - hari, Selisih dari dua buah himpunan dapat diartikan sebagai
elemen - elemen yang merupakan anggota dari suatu himpunan namun bukan
merupakan anggota dari himpunan lainnya. Untuk dapat lebih memahami konsep
Selisih secara matematis perhatikan definisi berikut.

Definisi.
Selisih dari himpunan A dan B merupakan suatu himpunan yang anggotanya
merupakan anggota A tetapi bukan merupakan anggota dari B

Secara matematis, komplemen dari himpunan A dapat dinotasikan dengan :


𝐴 − 𝐵 = {𝑥|𝑥 𝜖 𝐴 dan 𝑥 ∉ 𝐵} = 𝐴 ∩ 𝐵′

Diagram Venn yang menggambarkan 𝐴 − 𝐵 dapat dilihat pada gambar berikut.

Untuk lebih memahami konsep Selisih (Difference) ini, perhatikan contoh berikut.
Contoh 1.
● Jika diberikan 𝐴 = {1, 2, 3, 4, 5, . . . 10} dan 𝐵 = {2, 5, 7, 8, 10} maka 𝐴 − 𝐵 =
{1, 3, 4, 6, 9} dan 𝐵 − 𝐴 = 𝜙
● Jika 𝑃 = {7, 9, 11} dan 𝑄 = {7, 9, 10} maka 𝑃 − 𝑄 = {11} dan 𝑄 − 𝑃 = {10}

2.7.5 Beda Setangkup (Symmetric Difference)

Beda Setangkup (Symmetric Difference) merupakan salah satu bentuk operasi


pada himpunan. Dalam bahasa sehari - hari, beda setangkup dari dua buah himpunan
dapat diartikan sebagai suatu himpunan yang elemen - elemennya merupakan bagian
dari salah satu himpunannya namun tidak pada keduanya.

Untuk dapat lebih memahami konsep Selisih secara matematis perhatikan


definisi berikut.

Definisi.
Jika A dan B adalah himpunan, maka beda setangkup dari A dan B adalah suatu
himpunan yang anggotanya ada pada A dan B tetapi tidak pada keduanya.

Secara matematis, komplemen dari himpunan A dapat dinotasikan dengan :


𝐴 ⊕ 𝐵 = (𝐴 − 𝐵) ∪ (𝐵 − 𝐴)

Diagram Venn yang menggambarkan 𝐴 ⊕ 𝐵 dapat dilihat pada gambar berikut.

Untuk lebih memahami konsep Selisih (Difference) ini, perhatikan contoh berikut.
Contoh 1.
● Jika diberikan 𝐴 = {1, 2, 3, 4, 5, . . . 10} dan 𝐵 = {2, 5, 7, 8, 10} maka 𝐴 ⊕ 𝐵 =
{1, 3, 4, 6, 9} dan 𝐵 ⊕ 𝐴 = {1, 3, 4, 6, 9}
● Jika 𝑃 = {7, 9, 11} dan 𝑄 = {7, 9, 10} maka 𝑃 ⊕ 𝑄 = {10,11} dan 𝑄 ⊕ 𝑃 =
{10,11}
BAB 4

4. PEMROGRAMAN OPERASI HIMPUNAN PADA KOTLIN


Himpunan merupakan kumpulan objek-objek yang memiliki nilai berbeda satu
dengan yang lainnya. misalnya himpunan enam bilangan asli pertama: A =
{1,2,3,4,5,6}. Misalnya Himpunan B={1,1,3,4,4,5,6}. Himpunan B ini bukan merupakan
himpunan karena ada nilai anggota pada himpunan B lebih dari satu. Implementasi
himpunan pada pemrograman kotlin dapat menggunakan array yang merupakan
kumpulan data dengan tipe data sejenis. sebagai contoh sebuah array A memiliki
kapasitas penampung data sebanyak 100 dengan tipe data integer maka dapat
diinisialisasi var A = IntArray(100). Setelah itu tentukan jumlah elemen pada himpunan
A yang dapat digunakan kemudian masukkan nilai anggota pada himpunan A dengan
menggunakan scanner. adapun kode penerapan himpunan pada pemrograman kotlin
sebagai berikut.

import java.util.Scanner
fun main(args: Array<String>) {
val read = Scanner(System.`in`)
var A = IntArray(100)
var m:Int

println("Program Himpunan")
println("-------------------------------")
print("Masukkan banyak elemen = ")
m=read.nextInt()

//memasukkan anggota ke dalam himpunan A


println("Anggota Himpunan A = {")
for(i in 0..m-1){
print("A[$i]=")
A[i]=read.nextInt()
}
println("}")

//Menampilkan anggota pada himpunan A


println("Menampilkan Anggota Himpunan A")
print("A = {")
for(i in 0..m-1){
if(i!= m-1) {
print("${A[i]},")
} else {
print("${A[i]}")
}
}
print("}")
}
Hasil output program himpunan dengan menggunakan array sebagai berikut.
Program Himpunan
-------------------------------
Masukkan banyak elemen = 5
Anggota Himpunan A = {
A[0]=1
A[1]=3
A[2]=5
A[3]=6
A[4]=7
}
Menampilkan Anggota Himpunan A
A = {1,3,5,6,7}

Penjelasan kode diatas untuk menampilkan himpunan A = {1,3,5,6,7} dengan


menggunakan kode perulangan dan kondisi.
for(i in 0..m-1){
if(i!= m-1) {
print("${A[i]},")
} else {
print("${A[i]}")
}
}
Pada perulangan i dimulai dari indeks ke-0 dan diakhir m-1 atau 5-1=4 karena array
dimulai pada indeks ke-0. Apabila nilai i tidak sama dengan m-1 maka akan
menampilkan nilai anggota dengan koma yaitu 1,3,5,6, sebaliknya apabila nilai i sama
dengan m-1 maka sistem tidak menampilkan nilai anggota dengan koma namun
hanya nilai anggota saja yang ditampilkan yaitu 7. Apabila user memasukkan nilai
anggota secara acak sementara hasil himpunan harus ditampilkan secara berurutan
maka dapat menerapkan sebuah fungsi pengurutan. Berbagai metode pengurutan
yang dapat digunakan seperti selection sort, bubble sort, merge sort dan metode
lainnya. pada materi ini dalam pengurutan menggunakan metode selection sort
dimana nilai tertinggi/terendah akan ditempatkan sesuai dengan posisi indeks array
secara ascending maupun descending.

function Selection Sort pada pemrograman kotlin sebagai berikut:


// Function Selection Sort
fun Selectionsort(T: IntArray, size:Int) {
var min: Int
var temp: Int
for (i in 0 until size-1) {
min = i
for (j in i + 1..size-1) {
if (T[j] < T[min]) {
min = j
}
}
temp = T[min]
T[min] = T[i]
T[i] = temp
}

for(i in 0..size-1){
if(i!= size-1) {
print("${T[i]},")
} else {
print("${T[i]}")
}
}
}
kemudian untuk memanggill function selection sort pada main program sebagai
berikut:

import java.util.Scanner
fun main(args: Array<String>) {
val read = Scanner(System.`in`)
var A = IntArray(100)
var m:Int

println("Program Himpunan")
println("-------------------------------")
print("Masukkan banyak elemen = ")
m=read.nextInt()

//memasukkan anggota ke dalam himpunan A


println("Anggota Himpunan A = {")
for(i in 0..m-1){
print("A[$i]=")
A[i]=read.nextInt()
}
println("}")

//Menampilkan anggota pada himpunan A


println("Menampilkan Anggota Himpunan A")
print("A = {")
Selectionsort(A,m)
print("}")
}
Hasil output himpunan anggota dengan pengurutan sebagai berikut.
Program Himpunan
-------------------------------
Masukkan banyak elemen = 5
Anggota Himpunan A = {
A[0]=3
A[1]=1
A[2]=6
A[3]=7
A[4]=2
}
Menampilkan Anggota Himpunan A
A = {1,2,3,6,7}

4.1 Irisan (Intersection)


Pada operasi himpunan irisan yaitu melakukan pengecekan kesamaan nilai
anggota yang ada pada kedua himpunan. Adapun untuk membuat program irisan
pada kotlin dapat dengan menggunakan array dan kondisional. Terdapat tiga array
yang dapat digunakan yaitu Array A untuk menampung anggota himpunan A, Array
B untuk menampung anggota himpunan B dan Array C untuk menampung hasil irisan
himpunan A dan B. Adapun kode kotlin dalam program irisan dua himpunan sebagai
berikut:

import java.util.Scanner
fun main(args: Array<String>) {
val read = Scanner(System.`in`)
var A = IntArray(100)
var B = IntArray(100)
var C = IntArray(100)
var n:Int
var m:Int
var total_irisan=0
var x=0

println("Program Irisan Himpunan A dan B")


println("-------------------------------")
print("Masukkan n(A) = ")
m=read.nextInt()
print("Masukkan n(B) = ")
n=read.nextInt()

println("Anggota Himpunan A = {")


for(i in 0..m-1){
print("A[$i]=")
A[i]=read.nextInt()
}
println("}")

println("Anggota Himpunan B = {")


for(i in 0..n-1){
print("B[$i]=")
B[i]=read.nextInt()
}
println("}")

// irisan
for (i in 0 until m) {
for (j in 0 until n) {
if (A[i] == B[j]) {
C[x] = A[i]
total_irisan++
x++
}
}
}

println("----------------")
//Tampilkan Himpunan A
print("A = {")
Selectionsort(A,m)
print("}")
println()
//Tampilkan Himpunan B
print("B = {")
Selectionsort(B,n)
print("}")
println()
if (total_irisan == 0) {
println("A // B")
} else {
print("A Irisan B = {")
Selectionsort(C,total_irisan)
print("}")
}

fun Selectionsort(T: IntArray, size:Int) {


var min: Int
var temp: Int
for (i in 0 until size-1) {
min = i
for (j in i + 1..size-1) {
if (T[j] < T[min]) {
min = j
}
}
temp = T[min]
T[min] = T[i]
T[i] = temp
}

for(i in 0..size-1){
if(i!= size-1) {
print("${T[i]},")
} else {
print("${T[i]}")
}
}
}

Hasil output program apabila inputan pada himpunan A dan B terdapat anggota yang
beririsan.
Program Irisan Himpunan A dan B
-------------------------------
Masukkan n(A) = 6
Masukkan n(B) = 4
Anggota Himpunan A = {
A[0]=1
A[1]=6
A[2]=5
A[3]=2
A[4]=8
A[5]=7
}
Anggota Himpunan B = {
B[0]=3
B[1]=7
B[2]=1
B[3]=9
}
----------------
A = {1,2,5,6,7,8}
B = {1,3,7,9}
A Irisan B = {1,7}

Hasil output program apabila inputan pada himpunan A dan B tidak terdapat anggota
yang beririsan akan menampilkan himpunan saling lepas.
Program Irisan Himpunan A dan B
-------------------------------
Masukkan n(A) = 3
Masukkan n(B) = 5
Anggota Himpunan A = {
A[0]=1
A[1]=4
A[2]=3
}
Anggota Himpunan B = {
B[0]=5
B[1]=8
B[2]=6
B[3]=9
B[4]=2
}
----------------
A = {1,3,4}
B = {2,5,6,8,9}
A // B

Langkah pertama yaitu melakukan inputan jumlah anggota atau kardinalitas pada
himpunan A yang merupakan set nilai pada variabel m dan kardinalitas himpunan B
dengan set nilai pada variabel n. Setelah itu masukkan nilai anggota pada masing-
masing himpunan. misalnya A = { 1,2,5,6,7,8 } dan B = {1,3,7,9} setelah itu sistem
akan mencari nilai anggota yang sama pada himpunan A dan B yaitu 1 dan 7. adapun
algoritma untuk mencari nilai kesamaan tersebut sebagai berikut:
// irisan
for (i in 0 until m) {
for (j in 0 until n) {
if (A[i] == B[j]) {
C[x] = A[i]
total_irisan++
x++
}
}
}
Penjelasan kode diatas apabila nilai anggota pada array A dan B bernilai sama maka
nilai tersebut akan dimasukkan ke dalam array C.

Gambar 4.1 Pencarian nilai yang sama pada array A dan B.

Gambar 4.1 pada awalnya array A dimulai dari indeks ke-0 dengan nilai 1. nilai indeks
pada array A tersebut dibandingkan dengan semua nilai yang ada pada array B.
Gambar panah berwarna hijau menunjukkan adanya nilai 1 yang ditemukan pada
array B yaitu array pada indeks ke-2. Kemudian nilai 1 yang ditemukan dimasukkan
ke dalam array C serta variabel total_irisan akan melakukan increment. Proses
pencarian anggota irisan ini dilakukan perulangan sampai jumlah elemen pada Array
A terpenuhi. Variabel total_irisan digunakan untuk menghitung banyaknya jumlah
anggota irisan. Apabila tidak ada irisan pada himpunan A dan B maka nilai variabel
total_irisan = 0 serta sistem akan menampilkan A//B (himpunan saling lepas). untuk
melakukan pengurutan anggota pada suatu himpunan dapat menggunakan berbagai
metode sorting salah satunya yaitu selection sort.

4.2 Gabungan (Union)


Operasi himpunan gabungan merupakan operasi yang menggabungkan nilai
anggota pada himpunan A dan B. Pada penerapan operasi himpunan gabungan
dengan pemrograman kotlin dapat dilakukan dengan menggabungkan kedua array
yaitu array A dan B kedalam array C apabila nilai pada kedua himpunan tersebut tidak
memiliki irisan. Sebagai contoh A={1,3,5,6} dan B={2,7,8} maka himpunan gabungan
A dan B = {1,2,3,5,6,7,8}. Apabila pada kedua himpunan memiliki irisan maka langkah
yang harus dilakukan mencari nilai anggota yang beririsan terlebih dahulu. kemudian
mencari nilai anggota himpunan A dan B yang bukan merupakan irisan setelah itu
menggabungkan nilai anggota himpunan A dan B yang bukan merupakan irisan dan
nilai anggota yang beririsan pada kedua himpunan tersebut. Adapun kode himpunan
operasi gabungan pada pemrograman kotlin sebagai berikut:

import java.util.Scanner
fun main(args: Array<String>) {
val read = Scanner(System.`in`)
var A = IntArray(100)
var B = IntArray(100)
var C = IntArray(100)
var GAB = IntArray(100)
var n:Int
var m:Int
var temp: Int
var total_irisan=0
var x=0
var y=0

println("Program Gabungan Himpunan A dan B")


println("-------------------------------")
print("Masukkan n(A) = ")
m=read.nextInt()
print("Masukkan n(B) = ")
n=read.nextInt()

println("Anggota Himpunan A = {")


for(i in 0..m-1){
print("A[$i]=")
A[i]=read.nextInt()
}
println("}")

println("Anggota Himpunan B = {")


for(i in 0..n-1){
print("B[$i]=")
B[i]=read.nextInt()
}
println("}")

// irisan
for (i in 0 until m) {
for (j in 0 until n) {
if (A[i] == B[j]) {
C[x] = A[i]
total_irisan++
x++
}
}
}
//Masukkan Array A ke GAB

if(total_irisan!=0){
//Masukkan Array A ke GAB tidak termasuk irisan
for (i in 0 until m) {
temp = 0
for (j in 0 until x) {
if (A[i] == C[j]) {
temp = 1
}
}
if (temp == 0) {
GAB[y]=A[i]
y++
}
}

//Masukkan Array B ke GAB tidak termasuk irisan


for (i in 0 until n) {
temp = 0
for (j in 0 until x) {
if (B[i] == C[j]) {
temp = 1
}
}
if (temp == 0) {
GAB[y]=B[i]
y++

}
}
//Masukan Irisan ke GAB
for (i in 0 until x) {
GAB[y]=C[i]
y++
}
} else {
//Masukkan Array A ke GAB
for (i in 0 until m) {
GAB[y]=A[i]
y++
}

//Masukkan Array B ke GAB


for (i in 0 until n) {
GAB[y]=B[i]
y++
}
}
println("----------------")
//Tampilkan Himpunan A
print("A = {")
Selectionsort(A,m)
print("}")
println()
//Tampilkan Himpunan B
print("B = {")
Selectionsort(B,n)
print("}")
println()
//Tampilkan Himpunan Gabungan A dan B
print("A Gabungan B = {")
Selectionsort(GAB,y)
print("}")
}

fun Selectionsort(T: IntArray, size:Int) {


var min: Int
var temp: Int
for (i in 0 until size-1) {
min = i
for (j in i + 1..size-1) {
if (T[j] < T[min]) {
min = j
}
}
temp = T[min]
T[min] = T[i]
T[i] = temp
}

for(i in 0..size-1){
if(i!= size-1) {
print("${T[i]},")
} else {
print("${T[i]}")
}
}
}
Hasil output program operasi himpunan gabungan apabila himpunan A dan B tidak
terdapat nilai anggota yang beririsan.
Program Gabungan Himpunan A dan B
-------------------------------
Masukkan n(A) = 4
Masukkan n(B) = 3
Anggota Himpunan A = {
A[0]=1
A[1]=6
A[2]=5
A[3]=3
}
Anggota Himpunan B = {
B[0]=8
B[1]=2
B[2]=7
}
----------------
A = {1,3,5,6}
B = {2,7,8}
A Gabungan B = {1,2,3,5,6,7,8}

Hasil output program operasi himpunan gabungan apabila himpunan A dan B terdapat
nilai anggota beririsan.
Program Gabungan Himpunan A dan B
-------------------------------
Masukkan n(A) = 5
Masukkan n(B) = 6
Anggota Himpunan A = {
A[0]=1
A[1]=5
A[2]=3
A[3]=6
A[4]=2
}
Anggota Himpunan B = {
B[0]=9
B[1]=1
B[2]=7
B[3]=8
B[4]=2
B[5]=3
}
----------------
A = {1,2,3,5,6}
B = {1,2,3,7,8,9}
A Gabungan B = {1,2,3,5,6,7,8,9}

Ilustrasi penjelasan pada kode diatas dijelaskan pada gambar 4.2 dan 4.3 sebagai
berikut.

Gambar 4.2 Gabungan Himpunan A dan B tidak ada nilai anggota yang beririsan

Pada gambar 4.2 nilai anggota array A akan mencari nilai yang sama dengan array B
apabila tidak ditemukan maka tidak ada nilai anggota yang beririsan yaitu
total_irisan=0. Kemudian seluruh nilai anggota pada array A akan dimasukkan ke
dalam array GAB dan juga seluruh nilai anggota pada array B dimasukkan ke dalam
array GAB. Nilai seluruh array GAB akan dilakukan sorting menggunakan fungsi
selection sort agar nilai anggota yang ditampilkan secara berurutan.
Gambar 4.3 Gabungan himpunan A dan B ada nilai anggota yang beririsan

Pada gambar 4.3 nilai anggota array A akan mencari nilai yang sama pada anggota
yang ada di array B. Nilai anggota yang beririsan akan dimasukkan ke dalam array C
sehingga diperoleh C={1,3,2}. Nilai anggota pada array A yang tidak beririsan dengan
array C maka nilai anggota tersebut dimasukkan ke dalam array GAB sehingga
diperoleh GAB ={ 5,6}. Kemudian nilai anggota pada array B yang tidak beririsan
dengan array C akan dimasukkan ke dalam array GAB sehingga array GAB menjadi
GAB ={ 5,6,9,7,8}. Langkah terakhir memasukkan nilai anggota irisan yaitu array C ke
dalam array GAB sehingga diperoleh GAB= {5,6,9,7,8,1,3,2}. setelah itu
menggunakan function selection sorting agar nilai anggota yang ditampilkan berurutan
sehingga hasilnya menjadi A gabungan B = {1,2,3,5,6,7,8,9}

4.3 Komplemen (Complement)


Operasi himpunan komplemen merupakan anggota himpunan semesta yang
bukan merupakan bagian dari himpunan A. Misalnya soal himpunan U merupakan
himpunan semesta bilangan asli kurang dari 10 maka himpunan U={1,2,3,4,5,6,7,8,9}
dan himpunan A ={ 1,3,5,7,8}. Hasil himpunan Ac= {2,4,6,9} dimana anggota
komplemen A yaitu anggota himpunan U yang bukan anggota dari himpunan A.
Adapun kode program kotlin pada operasi komplemen himpunan sebagai berikut.

import java.util.Scanner
fun main(args: Array<String>) {
val A = IntArray(100)
val Comp = IntArray(100)
val n: Int
val m: Int
var temp: Int
var x=0

val `in` = Scanner(System.`in`)


println("Komplemen Himpunan A ")
print("Masukkan Batas Bilangan Asli U = ")
n = `in`.nextInt()
print("Masukkan n(A) = ")
m = `in`.nextInt()

// mengisi data ke array A


println("Anggota Himpunan A = {")
for (i in 0 until m) {
print("A[$i]= ")
A[i] = `in`.nextInt()
}
println("}")
println("-------------")

//Komplemen A
print("U = { ")
for (i in 1..n) {
if(i!= n) {
print("$i,")
} else {
print("$i")
}
}
println("}")

//Tampilkan Himpunan A
print("A = { ")
Selectionsort(A,m)
print("}")
//Komplemen
for (i in 1..n) {
temp = 0
for (j in 0.. m) {
if (i == A[j]) {
temp = 1
}
}
if (temp == 0) {
Comp[x] = i
x++
}
}
println()
//Tampilkan Hasil Komplemen
print("Komplemen A = {")
Selectionsort(Comp,x)
print("}")
}

fun Selectionsort(T: IntArray, size:Int) {


var min: Int
var temp: Int
for (i in 0 until size-1) {
min = i
for (j in i + 1..size-1) {
if (T[j] < T[min]) {
min = j
}
}
temp = T[min]
T[min] = T[i]
T[i] = temp
}

for(i in 0..size-1){
if(i!= size-1) {
print("${T[i]},")
} else {
print("${T[i]}")
}
}
}

Hasil output program operasi himpunan komplemen sebagai berikut.


Program Komplemen Himpunan A
Masukkan Batas Bilangan Asli U = 9
Masukkan n(A) = 4
Anggota Himpunan A = {
A[0]= 2
A[1]= 5
A[2]= 1
A[3]= 7
}
-------------
U = { 1,2,3,4,5,6,7,8,9}
A = { 1,2,5,7}
Komplemen A = {3,4,6,8,9}

Pada gambar 2.4 dibawah ini menjelaskan tentang kode program pada operasi
komplemen dengan kotlin.

Gambar 2.4 Komplemen himpunan A

Pada gambar 4.4 menjelaskan tentang operasi komplemen pada pemrograman kotlin.
User memberikan inputan batasan himpunan bilangan asli dengan menggunakan
variabel n. Kemudian user memasukan nilai anggota himpunan A ke dalam array A.
misal n=9 berarti himpunan U={1,2,3,4,5,6,7,8,9} dengan menggunakan perulangan
kemudian dilakukan pencarian nilai anggota array A yang sama dengan U. Apabila
nilai anggota U tidak ada yang sama dengan nilai anggota pada array A maka nilai
tersebut dimasukkan ke dalam array Comp.
for (i in 1..n) {
temp = 0
for (j in 0.. m) {
if (i == A[j]) {
temp = 1
}
}
if (temp == 0) {
Comp[x] = i
x++
}
}
Pada kode diatas dilakukan perulangan dari 1 sampai dengan batas n dalam hal ini
n=9. kemudian di dalam perulangan terdapat nested looping yang digunakan untuk
mencari kesamaan pada nilai perulangan dengan nilai pada array C. Apabila
kondisional nilai i sama dengan sekumpulan nilai array C (i==A[j]) maka temp=1
artinya pada array C ditemukan nilai anggota yang sama namun apabila i tidak sama
dengan sekumpulan nilai pada Array C (temp=0) maka nilai i tersebut dimasukkan ke
dalam array Comp yang merupakan kumpulan nilai anggota komplemen dari
himpunan A.

4.4 Selisih (difference)


Operasi selisih dua himpunan merupakan nilai anggota yang tidak ada pada
himpunan yang lain. sebagai contoh A={1,2,3,4,5,6} dan B={1,4,6,8,9} maka A -
B={2,3,5} dan B - A={1,8,9}. Adapun himpunan operasi selisih pada pemrograman
kotlin sebagai berikut:

import java.util.Scanner
fun main(args: Array<String>) {
val A = IntArray(100)
val B = IntArray(100)
val BdiffA = IntArray(100)
val AdiffB = IntArray(100)
val n: Int
val m: Int
var temp: Int
var x=0
var y=0
val `in` = Scanner(System.`in`)
println("Program Selisih (Difference)")
println("A - B dan B - A")
print("Masukkan n(A) = ")
m = `in`.nextInt()
print("Masukkan n(B) = ")
n = `in`.nextInt()

// mengisi data ke array A


println("Anggota Himpunan A = {")
for (i in 0 until m) {
print("A[$i]= ")
A[i] = `in`.nextInt()
}
println("}")
println("-------------")

// mengisi data ke array B


println("Anggota Himpunan B = {")
for (i in 0 until n) {
print("B[$i]= ")
B[i] = `in`.nextInt()
}
println("}")
println("-------------")

//Tampilkan Himpunan A
print("A = {")
Selectionsort(A,m)
print("}")
println()

//Tampilkan Himpunan B
print("B = {")
Selectionsort(B,n)
print("}")
println()

// A-B
for (i in 0 until m) {
temp = 0
for (j in 0 until n) {
if (A[i] == B[j]) {
temp = 1
}
}
if (temp == 0) {
AdiffB[x]=A[i]
x++
}
}

//B-A
for (i in 0 until n) {
temp = 0
for (j in 0 until m) {
if (B[i] == A[j]) {
temp = 1
}
}
if (temp == 0) {
BdiffA[y]=B[i]
y++
}
}
print("A - B = {")
Selectionsort(AdiffB,x)
print("}")
println()
print("B - A = {")
Selectionsort(BdiffA,y)
print("}")
}

fun Selectionsort(T: IntArray, size:Int) {


var min: Int
var temp: Int
for (i in 0 until size-1) {
min = i
for (j in i + 1..size-1) {
if (T[j] < T[min]) {
min = j
}
}
temp = T[min]
T[min] = T[i]
T[i] = temp
}

for(i in 0..size-1){
if(i!= size-1) {
print("${T[i]},")
} else {
print("${T[i]}")
}
}
}

Hasil output operasi selisih pada himpunan A-B dan B-A sebagai berikut.
Program Selisih (Difference)
A - B dan B - A
Masukkan n(A) = 3
Masukkan n(B) = 3
Anggota Himpunan A = {
A[0]= 5
A[1]= 1
A[2]= 3
}
-------------
Anggota Himpunan B = {
B[0]= 3
B[1]= 1
B[2]= 2
}
-------------
A = {1,3,5}
B = {1,2,3}
A - B = {5}
B - A = {2}

Pada gambar 4.5 dibawah ini menjelaskan tentang kode program pada operasi selisih
A - B dan gambar 4.6 merupakan operasi selisih B - A dengan kotlin.

Gambar 4.5 Selisih Himpunan A - B


Adapun penjelasan kode pada gambar 4.5 Selisih Himpunan A - B sebagai berikut:
// A-B
for (i in 0 until m) {
temp = 0
for (j in 0 until n) {
if (A[i] == B[j]) {
temp = 1
}
}
if (temp == 0) {
AdiffB[x]=A[i]
x++
}
}

Perulangan pertama dilakukan untuk mengambil nilai pada array A kemudian pada
perulangan kedua dilakukan untuk mengambil nilai pada array B serta melakukan
kondisional apabila nilai perbandingan pada Array A dan B tidak sama maka nilai
tersebut akan dimasukkan ke dalam array AdiffB. Misalnya pada indeks ke-0 pada
array A bernilai 5 kemudian nilai 5 tersebut akan dilakukan perbandingan dengan
sekumpulan nilai pada array B dan hasilnya tidak ada nilai 5 pada array B (temp=0)
kemudian nilai tersebut dimasukkan ke dalam array AdiffB. Pada indeks ke-1=1 dan
indeks ke-2=3 pada array A memiliki nilai yang sama pada array B sehingga temp=1
sehingga nilai 1 dan 3 tidak dimasukkan ke dalam AdiffB. setelah didapat nilai anggota
selisih A-B maka untuk melakukan pengurutan nilai anggota tersebut dapat
menggunakan fungsi selection sort.

Pada gambar 2.6 merupakan operasi selisih himpunan B - A. secara algoritma sama
seperti operasi himpunan A - B.

Gambar 4.6 Selisih Himpunan B - A

Array B pada indeks-0 yaitu 3 akan dibandingkan dengan sekumpulan nilai pada array
A dan ditemukan nilai 3 berada pada indeks ke-2 pada array A sehingga temp=1
begitu juga pada indeks-1 array B bernilai 1 dan ditemukan nilai yang sama pada
indeks-1 array A. karena temp=1 maka nilai tersebut tidak dimasukkan ke dalam array
BdiffA. Nilai pada array B indeks ke-2 bernilai 2 dan setelah dilakukan perbandingan
ternyata nilai tersebut tidak ditemukan pada array B maka nilai 2 dimasukkan ke dalam
array BdiffA. Nilai anggota selisih B - A dapat dilakukan pengurutan nilai anggota
dengan menggunakan fungsi selection sort.

4.5 Beda Setangkup (Symmetric Difference)


Operasi beda setangkup merupakan gabungan nilai anggota A - B dan B - A
artinya gabungan nilai anggota himpunan A dan B namun tidak ada nilai anggota yang
beririsan. Misalnya A={2,4,6} dan B={2,3,5} maka himpunan beda setangkup A dan B
={3,4,5,6}. Adapun himpunan operasi beda setangkup pada pemrograman kotlin
sebagai berikut:

import java.util.Scanner
fun main(args: Array<String>) {
val A = IntArray(100)
val B = IntArray(100)
val BS = IntArray(100)
val n: Int
val m: Int
var temp: Int
var x=0
var y=0
val `in` = Scanner(System.`in`)

println("Program Beda Setangkup (Symmetric Difference)")


print("Masukkan n(A) = ")
m = `in`.nextInt()
print("Masukkan n(B) = ")
n = `in`.nextInt()

// mengisi data ke array A


println("Anggota Himpunan A = {")
for (i in 0 until m) {
print("A[$i]= ")
A[i] = `in`.nextInt()
}
println("}")
println("-------------")

// mengisi data ke array B


println("Anggota Himpunan B = {")
for (i in 0 until n) {
print("B[$i]= ")
B[i] = `in`.nextInt()
}
println("}")
println("-------------")

//Tampilkan Himpunan A
print("A = {")
Selectionsort(A,m)
print("}")
println()

//Tampilkan Himpunan B
print("B = {")
Selectionsort(B,n)
print("}")
println()

// A-B
for (i in 0 until m) {
temp = 0
for (j in 0 until n) {
if (A[i] == B[j]) {
temp = 1
}
}
if (temp == 0) {
BS[x]=A[i]
x++
}
}

//B-A
for (i in 0 until n) {
temp = 0
for (j in 0 until m) {
if (B[i] == A[j]) {
temp = 1
}
}
if (temp == 0) {
BS[x]=B[i]
x++
}
}
print("A Beda Setangkup B = {")
Selectionsort(BS,x)
print("}")
}

fun Selectionsort(T: IntArray, size:Int) {


var min: Int
var temp: Int
for (i in 0 until size-1) {
min = i
for (j in i + 1..size-1) {
if (T[j] < T[min]) {
min = j
}
}
temp = T[min]
T[min] = T[i]
T[i] = temp
}

for(i in 0..size-1){
if(i!= size-1) {
print("${T[i]},")
} else {
print("${T[i]}")
}
}
}

Hasil Program
Program Beda Setangkup (Symmetric Difference)
Masukkan n(A) = 3
Masukkan n(B) = 3
Anggota Himpunan A = {
A[0]= 6
A[1]= 2
A[2]= 4
}
-------------
Anggota Himpunan B = {
B[0]= 5
B[1]= 2
B[2]= 3
}
-------------
A = {2,4,6}
B = {2,3,5}
A Beda Setangkup B = {3,4,5,6}

Penjelasan ilustrasi program pada operasi beda setangkup dapat dilihat pada gambar
4.7.

Gambar 4.7 Beda setangkup Himpunan A dan B

Pada langkah awal yaitu mencari nilai anggota himpunan selisih A - B={4,6} yang
merupakan nilai anggota Array A yang tidak dimiliki oleh nilai anggota pada Array B.
kemudian nilai anggota himpunan selisih A - B dimasukkan ke dalam array BS.
Langkah selanjutnya yaitu mencari nilai anggota himpunan selisih B - A = {3,5}
kemudian nilai anggota himpunan selisih B - A dimasukkan ke dalam array BS dengan
melanjutkan posisi indeks terakhir sebelumnya sehingga nilai anggota array BS ={
4,6,3,5}. Setelah itu melakukan pengurutan nilai anggota BS dengan menggunakan
fungsi selection sort.

Anda mungkin juga menyukai