BAB II LANDASAN TEORI
2.1
Pengertian Logika dan Pernyataan
Kebenaran suatu teori yang dikemukakan setiap ilmuwan, matematikawan maupun para ahli merupakan hal yang sangat menentukan reputasi mereka. Untuk mendapatkan hal tersebut, mereka akan berusaha untuk mengaitkan suatu fakta atau data dengan fakta atau data lainnya melalui suatu proses penalaran yang sahih atau valid. Sebagai akibatnya, logika merupakan ilmu yang sangat penting dipelajari. Di dalam mata pelajaran matematika, aplikasi logika seringkali ditemukan meskipun tidak secara formal disebut sebagai belajar logika.
2.1.1
Logika Menurut Irving M.Copi pengertian logika adalah: “Ilmu yang mempelajari
metode dan hukum-hukum yang digunakan untuk membedakan penalaran yang betul dan penalaran yang salah.” (Irving M. Copi, Intruductions of Logic, Mac millan publishing New York, 1978).
Itu adalah pengertian logika yang sama dengan pengertian mantiq (arab) yang diungkapkan oleh George F Kneller. Mantig adalah “penyelidikan tentang dasar-dasar berpikir yang benar” (George F Kneller, Logic and language of Education, New York, 1996).
Dari pengertian logika atau definisi logika di atas, kita dapat menarik kesimpulan bahwa logika dan berpikir adalah dua hal yang sangat berbeda. Dimana berpikir adalah bagian dari logika, namun berpikir belum tentu berarti berlogika.
8
9
Disaat mempelajari matematika maupun ilmu-ilmu lainnya penalaran itu menjadi sangat penting dan menentukan. Secara etimologis, logika berasal dari kata Yunani ‘logos’ yang berarti kata, ucapan, pikiran secara utuh atau bisa juga berarti ilmu pengetahuan (Kusumah, 1986). Dalam arti luas, logika adalah suatu cabang ilmu yang mengkaji penurunan-penurunan kesimpulan yang sahih (valid, correct) dan yang tidak sahih (tidak valid, incorrect). Proses berpikir yang terjadi disaat menurunkan atau menarik kesimpulan dari pernyataan-pernyataan yang diketahui benar atau dianggap benar itu sering juga disebut dengan penalaran (reasoning).
Sering terdengar pernyataan bahwa matematika diajarkan untuk mendidik seseorang secara praktis, teratur, tajam dan logis. Apakah sebenarnya berpikir secara logis itu?
Suatu ucapan benar atau salah disebut sebagai suatu pernyataan atau kalimat. Setiap pernyataan adalah suatu ucapan, tetapi tidak setiap ucapan merupakan suatu pernyataan, sebagai contoh: “Siapakah namamu” atau “Marilah kesini”. Semuanya adalah ucapan-ucapan, tetapi bukan merupakan suatu pernyataan, karena ucapan-ucapan tersebut tidak dapat dinyatakan sebagai benar atau salah. Kalimat yang menerangkan sesuatu atau menyatakan sesuatu yang dapat dianggap sebagai pernyataan, misalnya: “Paris adalah ibukota Perancis” atau “Dua adalah suatu bilangan asli”. Dua pernyataan tersebut dinyatakan sebagai benar, karena menerangkan atau menyatakan sesuatu hal yang benar (Markaban, Logika 2004: 2-3). Dalam logika, kata-kata seperti “dan”, “atau”, “tidak”, “jika…maka” dan lain-lain memegang peranan yang sangat penting. Kata-kata tersebut merangkaikan buah pikiran, relasi-relasi dan cara yang dilakukan yang disebut sebagai struktur logis dari suatu pernyataan. Sebagai contoh, pernyataanpernyataan yang memiliki struktur logis yang sama adalah sebagai berikut: 1. Setiap orang adalah laki-laki dan perempuan. 2. Setiap zat adalah organis atau anorganis. 3. Setiap penduduk adalah warga Negara atau warga Asing.
10
Pernyataan di atas bisa digambarkan dengan skema sebagai berikut: “Setiap … (i) … adalah … (ii) … atau … (iii) …”. Dengan (i), (ii) dan (iii) merupakan kata benda atau kata nama.
Kebenaran dari pernyataan di atas tergantung dari struktur logisnya dan tidak tergantung pada isi pernyataannya. Pernyataan yang demikian dikatakan benar secara logis atau selalu benar. Contoh lain: “Jika setiap manusia adalah fana dan Anton adalah manusia maka Anton adalah fana”.
Dari contoh di atas, struktur logisnya adalah sebagai berikut: “Jika setiap … (i) … adalah … (ii) … dan … (iii) … adalah … (iv) … maka … (v) … adalah … (vi) …”. Jika (i) dan (iv) diisi dengan kata benda yang sama, (ii) dan (vi) dengan kata sifat yang sama, (iii) dan (v) dengan kata nama yang sama, maka selalu diperoleh suatu pernyataan yang benar. Tetapi kalau ditinjau dari pernyataan yang lain, misalnya: “Suhu di dalam ruangan ini adalah 25 derajat Celcius”. Kebenaran dari pernyataan ini harus didasarkan oleh fakta, jadi pernyataan ini tidak selalu benar.
Dalam logika, kebenaran dari suatu pernyataan didasarkan pada kebenaran logisnya. Pernyataan “Besok pagi matahari akan terbit” bukan merupakan suatu kebenaran logis, karena mungkin saja besok pagi hujan atau mendung sehingga matahari tidak terbit. Pernyataan “Jika harga tiket per-lembar Rp 50.000,- maka harga tiket 5 lembar adalah Rp 250.000,-“ merupakan suatu keharusan logis. Kebenaran pernyataan ini terkandung dalam pernyataan itu sendiri dan tidak tergantung pada suatu fakta. Inilah kebenaran dalam matematika yaitu kebenaran yang relatif.
Dua pernyataan dikatakan logis ekivalen jika kedua pernyataan ini sesuai dalam kebenaran dan kesalahannya dan ini semata-mata didasarkan pada struktur
11
logisnya. Misalnya, “Tidak ada sesuatu zat yang tidak organis dan tidak pula anorganis”. Pernyataan ini sama dengan pernyataan “Setiap zat adalah organis atau anorganis”.
Bukan suatu pekerjaan yang mudah untuk menentukan apakah suatu pernyataan logis atau benar ataukah dua pernyataan logis ekivalen, demikian pula apakah suatu pernyataan membawakan suatu pernyataan lain atau tidak. Studi dari hubungan logika matematika dengan pernyataan-pernyataan yang dinyatakan dalam hubungan kalimat ini dinamakan kalkulus proposisi (propositional calculus).
Kalkulus proposisi dapat digunakan untuk menentukan apakah sebuah kalimat adalah valid atau kontradiktif dan apakah dua buah kalimat merupakan kalimat-kalimat yang ekivalen satu dengan lainnya.
2.1.2
Pernyataan Dimulai sejak masih kecil, setiap manusia sedikit demi sedikit melengkapi
perbendaharaan kata-katanya. Disaat berkomunikasi, seseorang harus menyusun kata-kata yang dimilikinya menjadi suatu kalimat yang memiliki arti atau makna. Kalimat adalah susunan kata-kata yang memiliki arti yang dapat berupa pernyataan (“pintu itu tertutup.”), pertanyaan (“apakah pintu itu tertutup?”), perintah (“tutup pintu itu!”), ataupun permintaan (“tolong pintunya ditutup.”). Dari empat macam kalimat tersebut, hanya pernyataan saja yang memiliki nilai benar atau salah, tetapi tidak sekaligus benar atau salah. Meskipun para ilmuwan, matematikawan ataupun ahli-ahli lainnya sering menggunakan beberapa macam kalimat tersebut dalam kehidupan sehari-harinya, namun hanya pernyataan saja yang menjadi perhatian mereka dalam mengembangkan ilmunya.
Setiap ilmuwan, matematikawan ataupun ahli-ahli lainnya akan berusaha untuk menghasilkan suatu pernyataan atau teori yang benar. Suatu pernyataan (termasuk teori) tidak akan ada artinya jika tidak bernilai benar. Karenanya, pembicaraan mengenai benar tidaknya suatu kalimat yang memuat suatu teori
12
telah menjadi pembicaraan dan perdebatan para ahli filsafat dan logika sejak dahulu kala. Perlunya pengkajian secara umum bahwa tidak semua pernyataan selalu mempunyai arti, misalnya pernyataan berikut: 1. Harimau adalah bilangan bulat. 2. Batu makan rumput. 3. 9 mencintai.
Pernyataan 1, 2 dan 3 di atas secara gramatika merupakan suatu pernyataan, tetapi pernyataan tersebut hanyalah sebuah rangkaian kata-kata yang tidak mempunyai arti (meaningless).
Secara umum, setiap pernyataan yang mempunyai makna atau arti dapat dikelompokkan menjadi dua kategori, yaitu: Kategori yang pertama, pernyataan yang dikelompokkan menjadi suatu pernyataan yang tidak mempunyai nilai benar saja atau salah saja. Contoh pernyataan dari kategori ini adalah: 1. Mudah-mudahan hari ini tidak hujan. 2. Astaga! Pernyataan-pernyataan kelompok ini tidak digunakan dalam logika matematika.
Sedangkan kategori yang kedua yaitu pernyataan-pernyataan yang jelas merupakan suatu pernyataan yang bernilai benar saja atau salah saja. Misalnya: 1. 8 habis dibagi 2. 2. 4 adalah bilangan ganjil. 3. Ibu kota Negara Jepang adalah Jakarta.
Pernyataan pertama bernilai benar, sedangkan pernyataan kedua dan ketiga bernilai salah.
Suatu pernyataan yang mempunyai nilai benar saja atau salah saja disebut pernyataan deklaratif. Jadi, pernyataan deklaratif adalah suatu pernyataan
13
berarti yang mempunyai nilai benar saja atau bernilai salah saja tetapi bukan kedua-duanya (Markaban, Logika 2004: 2-4).
2.2
Proposisi
Didalam penggunaannya bahasa matematika khususnya pada logika matematis, yang dimaksud proposisi adalah kalimat atau pernyataan yang selalu mempunyai nilai kebenaran, mungkin pernyataan itu bernilai benar saja atau salah saja tetapi tidak kedua-duanya. Sebab pada prinsipnya fakta-fakta yang ada dalam kehidupan sehari-hari hanya dapat disajikan dalam bentuk pernyataan matematis yang selalu mempunyai nilai benar saja atau salah saja (Noeryanti, Modul Logika Matematika). Contoh: 1. 2 + 2 = 4 2. 2 + 3 = 7 3. x + y = y + x, untuk semua x, y R
Semua pernyataan di atas merupakan proposisi. Untuk proposisi 1 dan 2 dinyatakan bernilai benar, sedangkan proposisi 2 dinyatakan bernilai salah. Pernyataan yang menggunakan istilah seperti, semua, setiap, sesuatu, beberapa disebut sebagai proposisi umum. Sedangkan pernyataan yang tidak mengandung kata-kata tersebut disebut sebagai proposisi khusus. Proposisi tunggal dapat dirangkaikan menjadi proposisi majemuk dengan menggunakan kata-kata seperti dan, atau, tidak, jika…maka, dan lain-lain.
Suatu proposisi terdiri dari operand-operand yang biasanya diwakili oleh huruf-huruf dalam abjad dan operator-operator yang memiliki aturan nilai kebenarannya masing-masing. Nilai kebenaran dari suatu proposisi tergantung kepada operator-operator yang terdapat dalam proposisi dan nilai masing-masing operand. Semakin banyak jumlah operand dan operator dalam suatu proposisi, maka proses penentuan nilai kebenaran dari proposisi tersebut akan semakin rumit.
14
Proposisi biasanya dilambangkan dengan huruf kecil seperti p, q, r, s,… Misalnya: p : 6 adalah bilangan genap. q :2+3=7 r :2<5 Maka, proposisi p dan proposisi r diatas dinyatakan bernilai benar sedangkan q dinyatakan bernilai salah.
2.3
Operasi Proposisi
Operasi proposisi sering disebut juga sebagai perakit atau perangkai proposisi. Dari satu atau dua pernyataan tunggal dapat diberikan operator tidak, dan, atau, jika…maka…, dan …jika dan hanya jika… sehingga terbentuk suatu negasi, konjungsi, disjungsi, implikasi dan bi-implikasi. Operasi-operasi pada proposisi berdasarkan urutan prioritasnya adalah sebagai berikut: 1. Operasi Negasi (Not). 2. Operasi Konjungsi (And). 3. Operasi Disjungsi (Or). 4. Operasi Implikasi (If…then). 5. Operasi Bi-implikasi atau Ekivalensi (If…and…only…if). 6. Operasi NAND (not AND) 7. Operasi XOR (exclusive XOR)
2.3.1
Negasi (Not) Negasi adalah pengingkaran terhadap nilai kebenaran suatu pernyataan.
Negasi dari suatu proposisi memiliki nilai kebenaran yang berlawanan dengan nilai kebenaran proposisi itu sendiri. Dalam kalkulus proposisi, negasi dilambangkan dengan simbol ~. Negasi dari suatu proposisi p dapat dinyatakan dengan ~ p. Jika p benar maka ~ p salah, dan sebaliknya jika p salah maka ~ p benar. Misalnya, Jika p adalah Surabaya ibukota Jawa Timur, maka negasi atau ingkaran dari pernyataan p tersebut adalah
15
~ p yaitu, Surabaya bukan ibukota Jawa Timur atau Tidak benar bahwa Surabaya ibukota Jawa Timur.
Dari contoh di atas terlihat jelas bahwa p merupakan pernyataan yang bernilai benar karena Surabaya pada kenyataannya memang ibukota Jawa Timur, sehingga ~ p akan bernilai salah. Namun jika p bernilai salah maka ~ p akan bernilai benar seperti ditunjukkan pada tabel kebenaran dibawah ini.
Tabel 2.1 Nilai kebenaran operasi Negasi (Not) p B S
~p S B
Dari tabel nilai kebenaran operasi Negasi (Not) di atas, p adalah proposisi, ~ p merupakan negasi dari proposisi p. Sedangkan, B merupakan nilai kebenaran benar (true) dan S merupakan nilai kebenaran salah (false). Contoh operasi negasi lainnya seperti pada tabel berikut:
Tabel 2.2 Contoh operasi Negasi (Not) p Budi seorang mahasiswa 7 adalah bilangan genap
~p Budi bukan seorang mahasiswa 7 adalah bukan bilangan genap
Jika proposisi Budi seorang mahasiswa bernilai benar maka proposisi Budi bukan seorang mahasiswa bernilai salah, demikian sebaliknya, jika proposisi Budi seorang mahasiswa bernilai salah maka proposisi Budi bukan seorang mahasiswa bernilai benar. Hal yang sama juga berlaku untuk proposisi 7 adalah bilangan genap.
2.3.2
Konjungsi (And) Konjungsi adalah suatu pernyataan majemuk yang menggunakan operator
dan. Contoh: Budi makan nasi dan minum kopi. Pernyataan tersebut ekivalen
16
dengan dua dua pernyataan tunggal berikut: Budi makan nasi dan sekaligus Budi minum kopi. Dalam hal pernyataan di atas bernilai benar dan hal mana bernilai salah dalam empat kasus berikut: 1. Budi memang benar makan nasi dan ia juga minum kopi. 2. Budi makan nasi namun ia tidak minum kopi. 3. Budi tidak makan nasi namun ia minum kopi. 4. Budi tidak makan nasi dan ia tidak minum kopi.
Pada kasus pertama, Budi memang benar makan nasi dan ia juga minum kopi. Dalam kasus seperti ini, sudah jelas bahwa pernyataan tersebut dinyatakan bernilai benar. Alasannya, pernyataan tersebut sesuai dengan kenyataannya. Pada kasus kedua, Budi makan nasi namun ia tidak minum kopi. Dalam hal ini, tentunya pernyataan tersebut dinyatakan bernilai salah karena meskipun Budi sudah makan nasi namun ia tidak minum kopi sebagaimana kenyataannya. Sejalan dengan itu, pada kasus ketiga, Budi tidak makan nasi meskipun ia sudah minum kopi. Sebagaimana kasus kedua tadi, maka akan dinyatakan bahwa pernyataan tersebut bernilai salah karena Budi tidak makan nasi sebagaimana pernyataan bahwa Budi makan nasi dan minum kopi. Akhirnya, pada kasus keempat, Budi tidak makan nasi dan ia tidak minum kopi. Dalam hal ini akan dinyatakan bahwa pernyataan tersebut bernilai salah karena tidak ada kesesuaian antara yang dinyatakan dengan kenyataan yang sesungguhnya.
Berdasarkan penjelasan di atas, dapat disimpulkan bahwa konjungsi dari dua proposisi p dan q hanya akan bernilai benar apabila kedua proposisi p dan q bernilai benar, sedangkan nilai kebenaran yang selain itu akan bernilai salah sebagaimana ditunjukkan pada tabel kebenaran berikut:
Tabel 2.3 Nilai kebenaran operasi Konjungsi (And) p B B S S
q B S B S
p˄q B S S S
17
Dari tabel nilai kebenaran operasi Konjungsi (And) simbol p, q adalah proposisi, p q merupakan konjungsi dari proposisi p dan q. Sedangkan, B merupakan nilai kebenaran benar (true) dan S merupakan nilai kebenaran salah (false). Dalam kalkulus proposisi, operasi konjungsi atau and dilambangkan dengan simbol . Operasi konjungsi dari dua proposisi p dan q dapat dinyatakan dengan p q.
2.3.3
Disjungsi (Or) Disjungsi adalah pernyataan majemuk yang menggunakan operator atau.
Contohnya: Budi makan nasi atau minum kopi. Dari contoh pernyataan tersebut di atas, pernyataan mana dari empat kasus berikut yang bernilai benar: 1. Budi memang benar makan nasi dan ia juga minum kopi. 2. Budi makan nasi namun ia tidak minum kopi. 3. Budi tidak makan nasi namun ia minum kopi. 4. Budi tidak makan nasi dan ia tidak minum kopi.
Pada kasus pertama, Budi memang benar makan nasi dan ia juga minum kopi. Dalam kasus ini, tidaklah mungkin Anda akan mengatakan pernyataan tadi bernilai salah karena pernyataan tersebut sesuai dengan kenyataannya. Pada kasus kedua, Budi makan nasi namun ia tidak minum kopi. Dalam hal ini tentunya Anda akan menyatakan bahwa pernyataan majemuk tadi bernilai benar karena Budi sudah benar makan nasi meskipun ia tidak munim kopi sebagaimana contoh pernyataan di atas. Sedangkan pada kasus ketiga, Budi tidak makan nasi namun ia minum kopi. Sebagaimana kasus kedua tadi, Anda akan menyatakan bahwa pernyataan majemuk pada contoh di atas bernilai benar karena meskipun Budi tidak makan nasi namun ia sudah minum kopi. Akhirnya, pada kasus keempat, Budi tidak makan nasi dan ia tidak minum kopi. Dalam hal ini Anda akan menyatakan bahwa pernyataan majemuk pada kasus keempat bernilai salah
18
karena tidak ada kesesuaian antara yang dinyatakan dengan kenyataan yang sesungguhnya yaitu Budi makan nasi atau minum kopi. Berdasarkan penjelasan di atas, dapat disimpulkan bahwa disjungsi p q akan bernilai salah hanya jika komponen-komponennya (baik p maupun q) keduanya bernilai salah, yang selain itu akan bernilai benar sebagaimana ditunjukkan pada tabel kebenaran berikut:
Tabel 2 4 Nilai kebenaran operasi Disjungsi (Or) p B B S S
q B S B S
p q B B B S
Dari tabel nilai kebenaran operasi Disjungsi (Or) simbol p, q adalah proposisi, p q merupakan disjungsi dari proposisi p dan q. Sedangkan, B merupakan nilai kebenaran benar (true) dan S merupakan nilai kebenaran salah (false). Dalam kalkulus proposisi, operasi disjungsi atau or dilambangkan dengan simbol . Operasi disjungsi dari dua proposisi p dan q dinyatakan dengan p q.
2.3.4
Implikasi (If…Then) Implikasi sering disebut juga dengan kondisional adalah suatu pernyataan
bersyarat satu arah. Misalkan ada dua pernyataan p dan q, yang sering menjadi perhatian para ilmuwan maupun matematikawan adalah menunjukkan atau membuktikan bahwa jika p bernilai benar akan mengakibatkan q bernilai benar juga. Untuk mencapai keinginannya tersebut, diletakkan kata jika sebelum pernyataan pertama lalu diletakkan juga kata maka diantara pernyataan pertama dan pernyataan kedua, sehingga didapatkan suatu pernyataan majemuk yang disebut dengan implikasi, pernyataan bersyarat, kondisional atau hypothetical dengan notasi “” . Misalnya, p q. Notasi di atas dapat dibaca dengan: 1. Jika p maka q. 2. q jika p. 3. p adalah syarat cukup untuk q, atau
19
4. q adalah syarat perlu untuk p. Implikasi p q merupakan pernyataan majemuk yang paling sulit dipahami. Untuk membantu memahami kalimat majemuk implikasi tersebut, proses pembelajaran dapat dimulai dengan cara bercerita dengan menyatakan pernyataan majemuk berikut ini: Jika hari hujan maka saya membawa payung. Dalam hal ini dimisalkan: p: Hari hujan. q: Saya membawa payung.
Pada contoh pernyataan majemuk di atas, pernyataan mana dari empat kasus berikut yang bernilai benar atau salah: 1. Hari benar-benar hujan dan saya benar-benar membawa payung. 2. Hari benar-benar hujan namun saya tidak membawa payung. 3. Hari tidak hujan namun saya membawa payung. 4. Hari tidak hujan dan saya tidak membawa payung.
Pada kasus pertama, hari benar-benar hujan dan saya benar-benar membawa payung sebagaimana contoh pernyataan di atas. Bagaimana mungkin pernyataan di atas berbohong dalam kasus ini? Dengan demikian jelaslah bahwa kedua komponen yang sama-sama bernilai benar itu telah menyebabkan pernyataan majemuk (implikasi) tersebut akan bernilai benar. Pada kasus kedua, hari itu benar-benar hujan akan tetapi saya tidak membawa payung sebagaimana yang seharusnya berdasarkan contoh pernyataan di atas, bagaimana mungkin pernyataan tersebut akan bernilai benar? Dengan kata lain, komponen p yang bernilai benar namun tidak diikuti dengan komponen q yang seharusnya bernilai benar juga, akan menyebabkan pernyataan majemuk (implikasi) tersebut akan bernilai salah. Akhirnya,untuk kasus ketiga dan keempat, dimana hari itu tidak hujan, tentunya tidak akan menyebut pernyataan majemuk (implikasi) tersebut sebagai pernyataan yang salah. Karena pada contoh pernyataan, hanyalah menyatakan bahwa sesuatu akan terjadi yaitu dia akan membawa payung jikalau hari hujan. Dengan demikian jelaslah bahwa implikasi p q hanya akan bernilai
20
salah untuk kasus kedua dimana p bernilai benar namun q bernilai salah, sedangkan yang selain itu implikasi p q akan bernilai benar seperti ditunjukkan tabel kebenaran berikut ini: Tabel 2.5 Nilai kebenaran operasi Implikasi (If…Then) p B B S S
q B S B S
pq B S B B
Dari tabel nilai kebenaran operasi Implikasi (If…Then) simbol p, q adalah proposisi, p q merupakan implikasi dari proposisi p dan q. Sedangkan, B merupakan nilai kebenaran benar (true) dan S merupakan salah (false). Dalam kalkulus proposisi, operasi implikasi atau if…then dilambangkan dengan simbol . Operasi implikasi atau if…then dari dua proposisi p dan q dinyatakan dengan p q.
2.3.5
Bi-implikasi (If…And…Only…If) Bi-implikasi adalah pernyataan majemuk dari dua pernyataan p dan q yang
dinotasikan dengan p q yang bernilai sama dengan (p q) (q p) sehingga dapat dibaca: p jika dan hanya jika q atau p bila dan hanya bila q. Ekivalensi dari dua proposisi p dan q akan bernilai benar apabila kedua proposisi p dan q bernilai sama. Contoh bi-implikasi: 1. Suatu segitiga adalah segitiga siku-siku jika dan hanya jika luas persegi pada hipotenusanya sama dengan jumlah luas dari persegi-persegi pada kedua sisi yang lain. 2. Suatu segitiga adalah segitiga sama sisi bila dan hanya bila ketiga sisinya sama. Bi-implikasi juga sering disebut bi-kondisional atau ekivalensi yaitu merupakan pernyataan bersyarat dua arah. Untuk lebih jelasnya selain contoh tersebut di atas, berikut ini contoh bi-implikasi lainnya: p
: Dua garis a dan b berpotongan.
q
: Garis a dan b tidak sejajar.
21
p q : Dua garis a dan b berpotongan jika dan hanya jika garis a dan b tidak sejajar.
Proposisi dua garis a dan b berpotongan jika dan hanya jika garis a dan b tidak sejajar hanya akan bernilai benar apabila proposisi dua garis a dan b berpotongan dan garis a dan b tidak sejajar bernilai sama yaitu benar atau salah. Dalam kalkulus proposisi, operasi ekivalensi sangat penting digunakan dalam pendefinisian. Dari beberapa contoh bi-implikasi di atas, pada dasarnya mengacu pada tabel kebenaran dari operasi ekivalensi yang dinyatakan sebagai berikut: Tabel 2.6 Nilai kebenaran operasi Bi-implikasi (If…And…Only…If) p B B S S
q B S B S
pq B S S B
Dari tabel nilai kebenaran operasi Bi-implikasi (If…and…Only…If) simbol p, q adalah proposisi, p q merupakan bi-implikasi dari proposisi p dan q. Sedangkan, B merupakan nilai kebenaran benar (true) dan S merupakan nilai kebenaran salah (false). Dalam kalkulus proposisi, operasi bi-implikasi atau if…and…only…if dilambangkan dengan simbol . Operasi bi-implikasi dari dua proposisi p dan q dinyatakan dengan p q.
2.3.6
NAND (not AND) Tabel Kebenarannya adalah sebagai berikut: p
q
p|q
B B S S
B S B S
S B B B
Jika diperhatikan nilai kebenaran dari (A│B), maka hasilnya akan terlihat terbalik dari A ↔ B, oleh karena itu disebut “bukan dan (not and)” atau operator
22
nand (kadang-kadang disebut sheffer stroke). Simbolnya berupa vertical sroke [│]. Definisi: misalnya A dan B adalah proposisi. Proposisi “A bukan B”, yang disimbolkan dengan A│B, adalah proposisi yang bernilai salah, jika nilai A bernilai benar dan B bernilai benar, dan jika lainnya pasti benar.
2.3.7
XOR (exclusive-OR) Perangkai “XOR” (exlusive or), mempunyai tabel kebenaran A xor B
berikut ini: p B B S S
q B S B S
pq S S S B
Jika diperhatikan, A xor B tampak terbalik dari A ↔ B yakni jika A dan B nilainya sama, maka hasilnya Salah (F), tetapi jika A dan B nilainya berbeda, maka hasilnya Betul (T). Definisi: Misalnya A dan B adalah proposisi. Proposisi “A xor B”, yang disimbolkan dengan A+B adalah bernilai benar jika A dan B bernilai sama, baik benar ataupun salah, jika A dan B berbeda pasti salah.
2.4
Prinsip Utama Logika
Prinsip-prinsip logika matematika yang benar dapat menjadi dasar dalam membuat kesimpulan yang valid dari suatu pernyataan majemuk atau ganda. Setiap pernyataan-pernyataan yang digunakan dalam menarik kesimpulan (konklusi) disebut premis. Beberapa prinsip utama logika yang terkemuka adalah: 1. Hukum Penyisihan Tengah Untuk setiap proposisi p, proposisi p atau tidak p akan selalu bernilai benar. Hukum ini dapat dinyatakan dengan
p ~p
Contoh: p
: Bilangan n adalah genap.
p ~p : Bilangan n adalah genap atau bilangan n adalah tidak genap.
23
Proposisi p ~p bernilai benar, karena bilangan terdiri bilangan genap dan tidak genap (ganjil). Hukum ini dapat dibuktikan dengan menggunakan tabel kebenaran sebagai berikut:
Tabel 2.7 Nilai kebenaran hukum penyisihan tengah
p B S
p ~p B B
~p S B
2. Hukum Kontradiksi Untuk setiap proposisi p, proposisi p dan tidak p akan selalu bernilai salah. Hukum ini dapat dinyatakan dengan
p ~p
Contoh: (a) Adalah tidak benar, seorang mahasiswa lulus dan sekaligus tidak lulus. (b) Adalah tidak benar bahwa sekaligus dua garis berpotongan dan juga tidak berpotongan.
Hukum ini dapat dibuktikan dengan menggunakan tabel kebenaran sebagai berikut: Tabel 2.8 Nilai kebenaran hukum kontradiksi p B S
~p S B
p ~p S S
Dari tabel-tabel nilai kebenaran prinsip utama logika di atas, simbolsimbol p dan ~p adalah proposisi, p ~p merupakan pernyataan hukum penyisihan tengah dan p ~p merupakan pernyataan hukum kontradiksi. Sedangkan, B merupakan nilai kebenaran benar (true) dan S merupakan nilai kebenaran salah (false).
24
2.5
Tautologi
Tautologi merupakan istilah dalam kalkulus proposisi. Sebuah proposisi dikatakan bernilai Tautologi, jika proposisi tersebut bernilai benar terhadap setiap pemberian nilai kebenaran bagi setiap variabelnya. Jadi, Tautologi adalah suatu ekspresi logika yang selalu bernilai benar didalam tabel kebenarannya. Contoh tautologi:
pp
Tabel 2.9 Nilai kebenaran tautologi p B S
pp B B
Jika tautologi dipakai pada suatu argumen, berarti argumen tersebut harus mempunyai nilai benar pada seluruh pasangan dalam tabel kebenaran yang membuktikan argumen tersebut valid. Argumen berarti memiliki premis-premis dan mempunyai kesimpulan. Jika premis-premis benar, maka kesimpulan juga harus benar. Sebagai contoh dari tautologi adalah sebagai berikut: Jika Budi pergi kuliah, maka Fitri juga pergi kuliah. Jika Shinta tidur, maka Fitri pergi kuliah. Dengan demikian, jika Budi pergi kuliah atau Shinta tidur, maka Fitri pergi kuliah. Diubah ke variable proposisional: p
: Budi pergi kuliah.
q
: Fitri pergi kuliah.
r
: Shinta tidur.
Diubah menjadi ekspresi logika yang terdiri dari premis-premis dan kesimpulan. Ekspresi logika 1 dan 2 adalah premis-premis, sedangkan ekspresi logika 3 adalah kesimpulan. 1. p q (premis). 2. r q (premis). 3. (p r) q (kesimpulan). Selanjutnya dapat ditulis sebagai berikut: ((p q) (r q)) ((p r) q)
25
Dari contoh tautologi di atas, dapat dibuktikan nilai kebenarannya menggunakan tabel kebenaran seperti berikut ini: Tabel 2.10 Nilai kebenaran proposisi ((pq)(rq))((pr)q) p B B B B S S S S
q B B S S B B S S
r pq rq (pq) (rq) (p r) (p r)q ((pq) (rq))((p r)q) B B B B B B B S B B B B B B B S S S B S B S S B S B S B B B B B B B B S B B B S B B B B S S B S B S B B B S B B
Dari tabel kebenaran di atas menunjukkan hasil tautologi, maka argumen pada contoh tautologi ini adalah valid. Dalam pemanfaatan tautologi, ada beberapa hal penting yang diakibatkan oleh tautologi, yakni: 1. Implikasi secara logis, misalnya p dan q adalah dua buah ekspresi logika, maka jika dikatakan p secara logis mengimplementasikan q dapat ditulis dengan p q. 2. Ekivalen secara logis, misalnya p dan q adalah dua buah ekspresi logika, maka jika dikatakan p ekivalen secara logis dengan q dapat ditulis dengan p = q, dengan syarat p = q, jika dan hanya jika p q adalah tautologi.
2.6
Ekivalensi Logis
Dua proposisi p dan q dikatakan ekivalensi logis apabila memenuhi 2 syarat berikut: 1. Nilai kebenaran kedua proposisi p dan q adalah sama (tabel kebenarannya identik). 2. Operasi ekivalensi dari kedua proposisi p dan q adalah tautologi.
Dalam kalkulus proposisi ada beberapa hukum yang berlaku berdasarkan pada ekivalensi logis (Logically Equivalent). Beberapa hukum tersebut antara lain
26
adalah: Double Negation (Negasi Ganda), Komutatif (Pertukaran), Asosiatif (Pengelompokan), Distributif (Penyebaran), Hukum de Morgan dan Implikasi.
2.7
Hubungan Antar Proposisi
Suatu ekivalensi logis yang sangat menarik adalah ekivalensi antara suatu pernyataan dan kontrapositifnya. Yang dimaksud dengan kontrapositif dari suatu proposisi adalah kebalikan dari lawan atau boleh juga lawan dari kebalikan proposisi tersebut sebagaimana pada gambar dibawah ini:
Gambar 2.1 Hubungan antar proposisi p q
Sebagaimana terlihat pada di atas, maka hubungan antar proposisi dapat juga diterapkan sebagai berikut: 1. Implikasi
:pq
2. Kebalikan dari implikasi (konvers)
:qp
3. Lawan dari implikasi (invers)
: ~p ~q
4. Kontrapositif dari implikasi
: ~q ~p
Berdasarkan hubungan antar proposisi tersebut, untuk memperjelas contoh perbandingan antara implikasi dan kontrapositif dari implikasi dapat dilihat pada tabel berikut ini:
Tabel 2.11 Contoh perbandingan antar proposisi Implikasi
Kontrapositif dari implikasi
Jika A orang Jawa maka A orang Indonesia.
Jika A bukan orang Indonesia maka A bukan orang Jawa.
Jika hewan itu ayam maka ia berkaki dua.
Jika hewan itu tidak berkaki dua maka ia bukan ayam.
Jika A maka tidak B. Jika tidak A maka B.
Jika B maka tidak A. Jika tidak B maka A.
27
2.8
Penurunan Deduktif
Penurunan Deduktif merupakan suatu bentuk penarikan kesimpulan dari satu atau beberapa proposisi lain yang telah diakui kebenarannya dengan didasarkan pada bentuk dan struktur logis proposisi,tanpa memperhatikan isi atau arti dari proposisi tersebut.
Kesimpulan (conclusion) selayaknya (suppossed to) diturunkan dari premis-premis atau premis-premis selayaknya mengimplikasikan kesimpulan. Dalam argumentasi yang valid, kesimpulan akan bernilai benar jika setiap premis yang digunakan di dalam argumen juga bernilai benar. Jadi, validitas argumen tergantung pada bentuk argumen itu dan dengan bantuan tabel nilai kebenaran. Beberapa bentuk penarikan kesimpulan dalam kalkulus proposisi yang benar pada prinsip-prinsip logika matematika yang valid, antara lain: 1. Prinsip Modus Ponens 2. Prinsip Modus Tollens 3. Prinsip Disjunctive Syllogism 4. Prinsip Hypothetical Syllogism
2.8.1
Prinsip Modus Ponens Prinsip Modus Ponens merupakan salah satu bentuk penarikan kesimpulan
yang berdasarkan pada struktur logis dari operasi Implikasi. Prinsip Dasar: Premis 1 : p q (Benar) Premis 2 : p (Benar) -------------------------------------------------- AND Kesimpulan : q (Benar)
Artinya: Jika pernyataan p q bernilai benar dan p bernilai benar maka dapat disimpulkan bahwa q pasti bernilai benar, hal ini dapat dituliskan sebagai (p q) p q merupakan suatu tautologi, dengan tabel nilai kebenaran berikut ini:
28
Tabel 2.12 Nilai kebenaran prinsip modus ponens p B B S S
p q B S B B
q B S B S
(p q) p B S S S
(p q) p q B B B B
Langkah 1 dan 2 disebut sebagai perandaian sedangkan langkah 3 disebut sebagai kesimpulan. Prinsip modus ponens selalu bernilai benar (tautologi). Contoh: Premis 1 : Jika saya belajar maka saya lulus ujian. Premis 2 : Saya belajar. ----------------------------------------------------------------------- AND Kesimpulan : Saya lulus ujian.
Dimana: p = Saya belajar. q = Saya lulus ujian.
2.8.2
Prinsip Modus Tollens Prinsip Modus Tollens merupakan bentuk penarikan kesimpulan yang
berdasarkan pada aturan kontrapositif dari operasi Implikasi. Prinsip Dasar:
Premis 1 : p q (Benar) Premis 2 : ~q (Benar) ---------------------------------------------- AND Kesimpulan : ~p (Benar) Artinya: Jika pernyataan p q bernilai benar dan ~q bernilai benar maka dapat disimpulkan bahwa ~p pasti bernilai benar, hal ini dapat dituliskan sebagai (p q) ~q ~p merupakan suatu tautologi, dengan tabel nilai kebenaran berikut ini:
Tabel 2.13 kebenaran prinsip modus tollens p B B S S
q B S B S
~p S S B B
~q S B S B
p q B S B B
(p q) ~q S S S B
(p q) ~q ~p B B B B
29
Prinsip modus tollens ini tidak lain adalah prinsip modus ponens yang selalu bernilai benar (tautologi). Contoh: Premis 1
: Jika saya belajar maka saya lulus ujian.
Premis 2 : Saya tidak lulus ujian. ----------------------------------------------------------------------- AND Kesimpulan : Saya tidak belajar.
Dimana: p = Saya belajar. q = Saya lulus ujian. Dalam bentuk lain, karena implikasi p q ekivalen dengan kontraposisinya yaitu ~q ~p. Maka diperoleh: Premis 1 : ~q ~p (Benar) Premis 2 : ~q (Benar) ---------------------------------------------------- AND Kesimpulan : ~p (Benar)
Artinya: Jika pernyataan ~q ~p bernilai benar dan ~q bernilai benar maka dapat disimpulkan bahwa ~p pasti bernilai benar, hal ini dapat dituliskan sebagai (~q ~p) ~q ~p merupakan suatu tautologi, dengan tabel nilai kebenaran berikut ini: Tabel 2.14 Nilai kebenaran kontraposisi modus ponens p B B S S
q ~p ~q ~q p (~q ~p) ~q (~q ~p) ~q ~p B S S B S B S S B S S B B B S B S B S B B B B B
Contoh: Premis 1 : Jika saya belajar maka saya lulus ujian. Premis 2 : Saya tidak lulus ujian. ----------------------------------------------------------------------- AND Kesimpulan : Saya tidak belajar.
Dimana: p = Saya belajar. q = Saya lulus ujian.
30
2.8.3
Prinsip Disjunctive Syllogism Prinsip Disjunctive Syllogism atau silogisma disjungtif merupakan bentuk
penarikan kesimpulan yang berdasarkan pada hukum De Morgan untuk operasi Implikasi.
Prinsip Dasar: Premis 1 : p q (Benar) Premis 2 : ~q (Benar) ---------------------------------------------- AND Kesimpulan : p (Benar)
Artinya: Jika pernyataan p q bernilai benar dan ~q bernilai benar maka dapat disimpulkan bahwa p pasti bernilai benar, dinyatakan (p q) ~q p sebagai tautologi, dengan tabel nilai kebenaran berikut ini:
Tabel 2.15 Nilai kebenaran prinsip disjunctive syllogism p B B S S
q B S B S
~q S B S B
p q B B B S
(p q) ~q
(p q) ~q p
S B S S
B B B B
Contoh: Premis 1 : Belajar itu menyenangkan atau membosankan. Premis 2 : Belajar itu tidak membosankan. --------------------------------------------------------------------------------- AND Kesimpulan : Belajar itu menyenangkan.
Dimana: p = Belajar itu menyenangkan. q = Belajar itu membosankan.
2.8.4
Prinsip Hypothetical Syllogism Prinsip Hypothetical Syllogism merupakan bentuk penarikan kesimpulan
yang berdasarkan pada aturan ekivalensi logis (logically equivalent) untuk operasi Implikasi. Prinsip Dasar: Premis 1 : p q (Benar) Premis 2 : q r (Benar) ---------------------------------------------- AND Kesimpulan : p r (Benar)
31
Artinya: Jika pernyataan p q bernilai benar dan q r bernilai benar maka dapat disimpulkan bahwa p r pasti bernilai benar, dapat dinyatakan sebagai (p q) (q r) (p r) sebagai tautologi, dengan tabel nilai kebenaran berikut ini:
Tabel 2.16 Nilai kebenaran prinsip hypothetical syllogism p B B B B S S S S
q B B S S B B S S
r pq qr pr (pq) (qr) (pq) (qr) (pr) B B B B B B S B S S S B B S B B S B S S B S S B B B B B B B S B S B S B B B B B B B S B B B B B
Contoh: Premis 1
: Jika kamu benar maka saya salah.
Premis 2 : Jika saya salah, saya minta maaf. ---------------------------------------------------------------- AND Kesimpulan : Jika kamu benar, saya minta maaf.
Dimana: p = Kamu benar. q = Saya salah. r = Saya minta maaf.
2.9
Perancangan Perangkat Lunak
Perancangan Perangkat Lunak merupakan disiplin managerial dan teknis yang berkaitan dengan pembuatan dan pemeliharaan produk perangkat lunak secara sistematis, termasuk pengembangan dan modifikasinya. Tujuan dari perancangan perangkat lunak adalah untuk memperbaiki kualitas produk perangkat lunak dan meningkatkan produktivitasnya. Dalam melakukan perancangan dan pengembangan perangkat lunak ada beberapa hal yang perlu diperhatikan, diantaranya: Kebutuhan dan batasan-batasan yang diinginkan pengguna harus ditentukan dan dinyatakan secara tegas, produk perangkat lunak harus dirancang sedemikian rupa sehingga mampu mengakomodasi paling tidak kepentingan tiga pihak (pelaksana implementasi, pengguna dan pemelihara produk), penulisan source code harus dilakukan dengan hati-hati dan senantiasa
32
melalui tahapan uji (testing), dilengkapi dengan dokumen-dokumen pendukung produk perangkat lunak yang relevan (seperti: instruksi penginstalasian, dokumen pemeliharaan dan pengembangan).
Pada awal tahun 1990-an sudah mulai muncul berbagai macam metodemetode yang digunakan dalam dunia pengembangan perangkat lunak sebagai metodologi analisis dan perancangan perangkat lunak yang berbasiskan Objek. Dari perkembangan metodologi yang telah digunakan sebelumnya, maka saat ini telah menjadi standar dunia internasional dalam metodologi analisis dan perancangan perangkat lunak yang berbasiskan Objek tersebut adalah Unified Modeling Language (UML). Bahasa pemodelan UML ini memiliki beberapa konsep dasar yang merupakan standar dalam berbagai pendekatan dalam solusi pemodelan. Konsep-konsep tersebut digunakan dalam penyeragaman analisa, perancangan dan implementasi berbagai sistem perangkat lunak.
Saat ini perangkat lunak semakin luas dan besar lingkupnya, sehingga tidak bisa lagi dibuat asal-asalan. Perangkat lunak saat ini seharusnya dirancang dengan memperhatikan hal-hal seperti scalability, security, dan execution yang baik walaupun dalam kondisi yang sulit. Selain itu arsitekturnya harus didefinisikan dengan jelas, agar bug mudah ditemukan dan diperbaiki. Keuntungan
lain
dari
perencanaan
arsitektur
yang
matang
adalah
dimungkinkannya penggunaan kembali modul atau komponen untuk aplikasi perangkat lunak lain yang membutuhkan fungsionalitas yang sama dengan yang sudah ada sebelumnya. Pemodelan (modeling) adalah proses merancang perangkat lunak sebelum melakukan pengkodean (coding). Model perangkat lunak dapat dianalogikan seperti pembuatan blueprint pada pembangunan gedung. Membuat model dari sebuah sistem yang kompleks sangatlah penting karena kita tidak dapat memahami sistem semacam itu secara menyeluruh. Semakin komplek sebuah sistem, semakin penting pula penggunaan teknik pemodelan yang baik. Dengan menggunakan model, diharapkan pengembangan perangkat lunak dapat memenuhi semua kebutuhan pengguna dengan lengkap dan tepat, termasuk faktor-faktor seperti scalability, robustness, security dan sebagainya. Kesuksesan
33
suatu pemodelan perangkat lunak ditentukan oleh tiga unsur, yang kemudian terkenal dengan sebuan segitiga sukses (the triangle for success). Ketiga unsur tersebut adalah metode pemodelan (notation), proses (process) dan tool yang digunakan.
Gambar 2.2 The triangle of sucess
Memahami notasi pemodelan tanpa mengetahui cara pemakaian yang sebenarnya akan membuat proyek gagal. Dan pemahaman terhadap metode pemodelan dan proses disempurnakan dengan penggunaan tool yang tepat.
2.10
MySQL
MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis di bawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunaannya tidak cocok dengan penggunaan GPL. Tidak seperti Apache yang merupakan software yang dikembangkan oleh komunitas umum, dan hak cipta untuk kode sumber dimiliki oleh penulisnya masing-masing, MySQL dimiliki dan disponsori oleh sebuah perusahaan komersial Swedia yaitu MySQL AB. MySQL AB memegang penuh hak cipta
34
hampir atas semua kode sumbernya. Kedua orang Swedia dan satu orang Finlandia yang mendirikan MySQL AB adalah: David Axmark, Allan Larsson, dan Michael "Monty" Widenius (Achmad Solichin, 2008).
Beberapa kelebihan MySQL antara lain : -
Free (bebas didownload)
-
Stabil dan tangguh
-
Fleksibel dengan berbagai pemrograman
-
Security yang baik
-
Dukungan dari banyak komunitas
-
Kemudahan management database.
-
Mendukung transaksi
-
Perkembangan software yang cukup cepat.
2.10.1 Instalasi MySQL di Windows Persiapan 1. Download Source MySQL di http://www.mysql.com/downloads/MySQL versi terakhir saat materi ini dibuat adalah MySQL 5.0.45. Silahkan Anda download versi terakhir tersebut dan simpan di komputer Anda. Pada dasarnya, instalasi untuk setiap versi MySQL tidak jauh berbeda. 2. Proses Instalasi MySQL -
Setelah Anda mendapatkan source MySQL, selanjutnya Anda perlu mengekstrak file tersebut ke komputer Anda.
-
2.11
Jalankan file Setup.exe yang ada di dalam folder source MySQL.
Unified Modeling Language (UML)
Sejarah Unified Modeling Language (UML) sendiri cukup panjang, di era tahun 1990 seperti kita ketahui puluhan metodologi pemodelan berorientasi objek telah bermunculan di dunia. Diantaranya adalah: metodologi booch [1], metodologi coad [2], metodologi OOSE [3], metodologi OMT [4], metodologi shlaer-mellor [5], metodologi wirfs-brock [6] dan sebagainya. Masa itu terkenal
35
dengan masa perang metodologi (method war) dalam perancangan berorientasi objek. Masing-masing metodologi membawa notasi sendiri-sendiri, yang mengakibatkan timbul masalah baru apabila kita bekerjasama dengan pihak yang menggunakan metodologi yang berbeda.
Dimulai pada bulan Oktober 1994 Grady Booch, James Rumbaugh bergabung untuk menggunakan metode berorientasi objek. Kemudian tahun 1995 Ivan Jacobson juga bergabung, dan merupakan tiga tokoh yang boleh dikatakan metodologinya
banyak
digunakan
mempelopori usaha
untuk
penyatuan
metodologi perancangan berorientasi objek. Seiring dengan perkembangannya, ketiga tokoh menyusun tiga buku serial tentang UML pada tahun 1999 [7] [8] [9]. Sejak saat itulah UML telah menjadi standar bahasa pemodelan untuk aplikasi berorientasi objek.
Unified Modeling Language (UML) merupakan satu kumpulan konvensi pemodelan yang digunakan untuk menentukan atau menggambarkan sebuah sistem software yang terkait dengan objek (Whitten L. Jeffry et al, 2004). Dengan menggunakan UML dapat membuat model untuk semua jenis aplikasi perangkat lunak, dimana aplikasi tersebut dapat berjalan pada perangkat keras, sistem operasi dan network apapun, serta ditulis dalam bahasa pemrograman apapun. Tetapi karena dalam konsep dasarnya UML juga menggunakan class dan operation, maka Bahasa Pemodelan UML lebih cocok untuk pembuatan perangkat lunak dalam bahasa pemrograman berorientasi objek (C+, Java, VB), namun demikian tetap dapat digunakan pada bahasa pemrograman prosedural.
Seperti bahasa-bahasa lainnya, UML mendefinisikan notasi dan syntax atau semantik. Notasi UML merupakan sekumpulan bentuk khusus untuk menggambarkan berbagai diagram perangkat lunak. Setiap bentuk memiliki makna tertentu, dan UML syntax mendefinisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan. Notasi UML terutama diturunkan dari tiga notasi yang telah ada sebelumnya: Grady Booch OOD (Object-Oriented Design), Jim Rumbaugh OMT (Object Modeling Technique), dan Ivar Jacobson OOSE
36
(Object-Oriented Software Engineering). Unified Modeling Language (UML) biasa digunakan untuk: 1. Menggambarkan batasan sistem dan fungsi-fungsi sistem secara umum, dibuat dengan usecase dan actor. 2. Menggambarkan kegiatan atau proses bisnis yang dilaksanakan secara umum, dibuat dengan interaction diagrams. 3. Menggambarkan representasi struktur statik sebuah sistem dalam bentuk class diagrams. 4. Membuat model behavior ”yang menggambarkan kebiasaan atau sifat sebuah sistem” dengan state transition diagrams. 5. Menyatakan arsitektur implementasi fisik menggunakan component and development diagrams. 6. Menyampaikan atau memperluas fungsionality dengan stereotypes.
UML merupakan salah satu alat bantu yang sangat handal dalam bidang pengembangan sistem berorientasi objek karena UML menyediakan bahasa pemodelan visual yang memungkinkan pengembang sistem membuat blue print atas visinya dalam bentuk yang baku. UML berfungsi sebagai jembatan dalam mengkomunikasikan beberapa aspek dalam sistem melalui sejumlah elemen grafis yang bisa dikombinasikan menjadi diagram. UML mempunyai banyak diagram yang dapat mengakomodasi berbagai sudut pandang dari suatu perangkat lunak yang akan dibangun. Diagram-diagram tersebut digunakan untuk (Henderi et al, 2008: 71): 1. Mengkomunikasikan ide. 2. Melahirkan ide-ide baru dan peluang-peluang baru. 3. Menguji ide dan membuat prediksi. 4. Memahami struktur dan relasi-relasinya.
2.11.1 Konsep Dasar Unified Modeling Language (UML) Pemodelan menggunakan Unified Modeling Language merupakan metode pemodelan berorientasi objek dan berbasis visual. Karenanya pemodelan menggunakan UML merupakan pemodelan objek yang fokus pada pendefinisian
37
struktur statis dan model sistem informasi yang dinamis daripada mendefinisikan data dan model proses yang tujuannya adalah pengembangan tradisional. Dari berbagai penjelasan yang terdapat pada buku-buku UML, sebenarnya konsep dasar UML dapat dirangkum dalam bentuk tabel seperti dibawah ini:
Tabel 2. 17 Konsepsi dasar UML Major Area
View
Diagrams
Structural
Static view
Class diagram
Usecase view
Usecase diagram
Implementation view State machine view Activity view
Component diagram Statechart diagram Activity diagram Sequence diagram Colaborating diagram
Main Concepts Class, association,generalization, dependency, realization, interface Usecase, actor, association, extend, include, usecase generalization Component, interface, dependency, realization State, event, transition,action State, activity, completion transition, fork, join Interaction, object, message, activation Collaborating, interaction, collaboration rule, message
Class diagram
Package, subsystem, model
All
Constraint, stereotype, tagged values
Dynamic
Interaction view Model Management Extensibility
Model management view All
Abstraksi konsep dasar UML yang terdiri dari structural classification, dynamic behavior, dan model management, bisa kita pahami dengan mudah apabila kita melihat gambar diatas dari Diagrams. Main concepts bisa kita pandang sebagai term yang akan muncul pada saat kita membuat diagram. Dan view adalah kategori dari diagram tersebut. Untuk menguasai UML, sebenarnya cukup dua hal yang harus diperhatikan: 1. Menguasai pembuatan diagram UML. 2. Menguasai langkah-langkah pengembangan dengan UML.
Seperti juga tercantum pada Tabel konsepsi dasar UML diatas yang mendefinisikan diagram-diagram: usecase diagram, class diagram, statechart diagram, activity diagram, sequence diagram, collaboration diagram, component diagram dan deployment diagram.
38
2.11.1.1
Usecase Diagram
Usecase Diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah usecase merepresentasikan sebuah interaksi antara aktor dengan sistem. Usecase merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, meng-create sebuah daftar belanja dan sebagainya. Seorang/sebuah aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu.
Usecase diagram dapat sangat
membantu dalam menyusun requirement sebuah sistem, mengkomunikasikan rancangan dengan klien dan merancang testcase untuk semua feature yang ada pada sistem. Sebuah usecase dapat meng-include fungsionalitas usecase lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa usecase yang di-include akan dipanggil setiap kali usecase yang meng-include dieksekusi secara normal. Sebuah usecase dapat di-include oleh lebih dari satu usecase lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common . Sebuah usecase juga dapat mengextend usecase lain dengan behaviour-nya sendiri. Sementara hubungan generalisasi antar usecase menunjukkan bahwa usecase yang satu merupakan spesialisasi dari yang lain.
Usecase Diagram secara grafis menggambarkan interaksi antara sistem, sistem eksternal, dan pengguna. Dengan kata lain usecase diagram secara grafis mendeskripsikan siapa yang akan menggunakan sistem dan dalam cara apa pengguna (user) mengharapkan interaksi dengan sistem itu. Usecase secara naratif digunakan untuk secara tekstual menggambarkan sekuensi langkah-langkah dari setiap interaksi
2.11.1.2
Class Diagram
Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan sistem berorientasi objek. Class menggambarkan keadaan (atribut/properti) suatu sistem sekaligus menawarkan layanan untuk manipulasi keadaan (method/fungsi). Class diagram
39
menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain seperti containment, pewarisan (inheritance), gabungan (association) dan lain-lain. Class memiliki tiga area pokok: 1. Nama (dan stereotype). 2. Atribute. 3. Metode.
Atribut dan metode dapat memiliki salah satu sifat berikut: 1. Private, tidak dapat dipanggil dari luar class yang bersangkutan. 2. Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang mewarisinya. 3. Public, dapat dipanggil oleh siapa saja.
Class dapat merupakan implementasi dari sebuah interface, yaitu class abstrak yang hanya memiliki metode. Interface tidak dapat langsung diinstansiasikan, tetapi harus diimplementasikan dahulu menjadi sebuah class, dengan demikian interface mendukung resolusi metode pada saat run-time. Class juga memiliki hubungan antar class, diantaranya: 1. Asosiasi, yaitu hubungan statis antar class. Umumnya menggambarkan class yang memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain. Panah navigability menunjukkan arah query antar class. 2. Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas…”). 3. Pewarisan, yaitu hubungan hirarkis antar class. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metode class asalnya dan menambahkan fungsionalitas baru, sehingga ia disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi. 4. Hubungan dinamis, yaitu rangkaian pesan (message) yang di-passing dari satu class ke class lain. Hubungan dinamis dapat digambarkan dengan menggunakan sequence diagram.
40
2.11.1.3
Behaviour Diagram
2.11.1.3.1 Statechart Diagram Statechart diagram menggambarkan transisi dan perubahan keadaan (dari satu state ke state lainnya) suatu objek pada sistem sebagai akibat dari stimuli yang diterima. Pada umumnya statechart diagram menggambarkan class tertentu (satu class dapat memiliki lebih dari satu statechart diagram). Dalam UML, state digambarkan berbentuk segi empat dengan sudut membulat dan memiliki nama sesuai kondisinya saat itu. Transisi antar state umumnya memiliki kondisi guard yang merupakan syarat terjadinya transisi yang bersangkutan, dituliskan dalam kurung siku. Action yang dilakukan sebagai akibat dari event tertentu dituliskan dengan diawali garis miring. Titik awal dan akhir digambarkan berbentuk lingkaran berwarna penuh dan berwarna setengah.
2.11.1.3.2 Activity Diagram Activity diagrams menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Activity diagram merupakan state diagram khusus, dimana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum. Sebuah aktivitas dapat direalisasikan oleh satu usecase atau lebih. Aktivitas menggambarkan proses yang berjalan, sementara usecase menggambarkan bagaimana aktor menggunakan sistem untuk melakukan aktivitas. Sama seperti state, standar UML menggunakan segi empat dengan sudut membulat
untuk
menggambarkan
aktivitas.
Decision
digunakan
untuk
menggambarkan behaviour pada kondisi tertentu. Untuk mengilustrasikan prosesproses paralel (fork dan join) digunakan titik sinkronisasi yang dapat berupa titik, garis horizontal atau vertikal. Activity diagram dapat dibagi menjadi beberapa
41
object swimlane untuk menggambarkan objek mana yang bertanggung jawab untuk aktivitas tertentu.
2.11.1.4
Interaction Diagram
2.11.1.4.1 Sequence Diagram Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atas dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait). Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan. Masing-masing objek, termasuk aktor, memiliki lifeline vertikal. Message digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Pada fase desain berikutnya, message akan dipetakan menjadi operasi/metoda dari class. Activation bar menunjukkan lamanya eksekusi sebuah proses, biasanya diawali dengan diterimanya sebuah message.
Untuk
objek-objek
yang
memiliki
sifat
khusus,
standar
UML
mendefinisikan icon khusus untuk objek boundary, controller dan persistent entity.
2.11.1.4.2 Collaboration Diagram Collaboration diagram juga menggambarkan interaksi antar objek seperti sequence diagram, tetapi lebih menekankan pada peran masing-masing objek dan bukan pada waktu penyampaian message. Setiap message memiliki sequence number, dimana message dari level tertinggi memiliki nomor 1. Messages dari level yang sama memiliki prefiks yang sama.
42
2.11.1.5
Component Diagram
Component diagram menggambarkan struktur dan hubungan antar komponen perangkat lunak, termasuk ketergantungan (dependency). Komponen perangkat lunak adalah modul berisi code, baik berisi source code maupun binary code, baik library maupun executable, baik yang muncul pada compile-time, linktime, maupun run-time. Umumnya komponen terbentuk dari beberapa class dan/atau package, tapi dapat juga dari komponen-komponen yang lebih kecil. Komponen dapat juga berupa interface, yaitu kumpulan layanan yang disediakan sebuah komponen untuk komponen lain.
2.11.1.6
Deployment Diagram
Deployment atau physical diagram menggambarkan detail bagaimana komponen di-deploy dalam infrastruktur sistem, dimana komponen akan terletak (pada mesin, server atau perangkat keras apa), bagaimana kemampuan jaringan pada lokasi tersebut, spesifikasi server, dan hal-hal lain yang bersifat fisikal. Sebuah node adalah server, workstation atau perangkat keras lain yang digunakan untuk men-deploy komponen dalam lingkungan sebenarnya. Hubungan antar node (misalnya TCP/IP) dan requirement dapat juga didefinisikan dalam diagram ini.
2.11.2 Langkah-langkah Penggunaan UML Berikut ini langkah-langkah yang dapat dilakukan dalam pengembangan perangkat lunak dengan menggunakan UML: 1. Membuat daftar business process dari level tertinggi untuk mendefinisikan aktivitas dan proses yang mungkin muncul. 2. Memetakkan
usecase
untuk
tiap
business
process
untuk
mendefinisikan dengan tepat fungsionalitas yang harus disediakan oleh sistem. Kemudian memperhalus usecase diagram dan melengkapi dengan requirement, constraints dan catatan-catatan lain. 3. Membuat deployment diagram secara kasar untuk mendefinisikan arsitektur fisik sistem. 4. Mendefinisikan requirement lain (non-fungsional, security dan sebagainya) yang juga harus disediakan oleh sistem.
43
5. Berdasarkan usecase diagram, dapat mulai membuat activity diagram. 6. Mendefinisikan objek-objek level atas (package atau domain) dan buatlah sequence dan/atau collaboration diagram untuk tiap alir pekerjaan. Jika sebuah usecase memiliki kemungkinan alir normal dan error, maka perlu dibuat satu diagram untuk masing-masing alir. 7. Membuat rancangan user interface model yang menyediakan antarmuka bagi pengguna untuk menjalankan skenario usecase. 8. Berdasarkan model-model yang sudah ada, dapat buat class diagram. Setiap package atau domain dipecah menjadi hierarki class lengkap dengan atribut dan metodenya. Akan lebih baik jika untuk setiap class dibuat unit-test untuk menguji fungsionalitas class dan interaksi dengan class lain. 9. Setelah class diagram dibuat, maka dapat dilihat kemungkinan pengelompokan class menjadi komponen-komponen. Karena itu perlu dibuat component diagram pada tahap ini. Mendefinisikan tes integrasi untuk setiap komponen untuk meyakinkan berinteraksi dengan baik. 10. Memperhalus deployment diagram yang sudah dibuat. Dibuat lebih detail kemampuan dan requirement perangkat lunak, sistem operasi, jaringan, dan sebagainya. Memetakkan komponen ke dalam code. 11. Mulai membangun sistem. Ada dua pendekatan yang dapat digunakan: a. Pendekatan usecase yaitu dengan meng-assign setiap usecase kepada tim pengembang tertentu untuk mengembangkan unit code yang lengkap dengan tes. b. Pendekatan komponen, yaitu meng-assign setiap komponen kepada tim pengembang tertentu. 12. Melakukan uji modul dan uji integrasi serta memperbaiki model berserta code-nya. Model harus selalu sesuai dengan code yang aktual. 13. Perangkat lunak siap dirilis.