11 May 2013

Belajar JAVA 11 : Logic

          Logik?? Fikir Logik? Logic Gates? Boolean Theory?? Semua ini mesti akan ada dalam benak pemikiran tuan-tuan dan puan-puan yang baru sahaja membaca perkataan "Logic" berkenaan, biasalah anda semua mesti merupakan pelajar2 elit yang mengambil kursus2 fizik, engineering dan lain2.. Paling tidak pun kita di Malaysia patut merasa bersyukur kerana wajib mengambil subjek Sains dan Matematik sehingga  ke peringkat SPM.  Jadi, mestilah perkataan Logik ni dah biasa bukan? Ok.. Sebelum kita belajar.. meh tengok sejarah ringkas kejap..

Al-Khawarizmi - pengasas Algebra dan teknik logik /aritmetik (algorithm)

George Boole - Pengasas prototaip  Boolean Logic  (Founder of computer science field)

... no general method for the solution of questions in the theory of probabilities can be established which does not explicitly recognise ... those universal laws of thought which are the basis of all reasoning .."George Boole (1815–1864)". Kerryr.net. Retrieved 2013-04-22.

Sebab tu ada beza IT dan computer science : )
Nikola Tesla - Jurutera  yang diperakui pencipta  siri get elektronik logik AND

         Jadi, ada kaitan ke subjek JAVA kita dengan tokoh-tokoh ni semua?  Di sini ingin Fieq tegaskan kita sememangnya menggunakan karya-karya agung mereka, macam Boolean Theory seperti AND, OR dan NOT dalam bingkisan perkongsian ilmu hari ini. Seperti sebelumnya kita hanya guna satu syarat saja untuk program buat pilihan dengan menggunakan if statement, kali ni kita tengok macam mana nak tetapkan beberapa syarat untuk satu pilihan menggunakan logical operator.

Kita akan guna source code ni sebagai rujukan:

Sorry... Alaahh.. Sekali sekala nak jugak promote uni sendiri.. (n_n)

Output dia:
Awak layak menyertai Ijazah Sarjana Muda Alam Bina UiTM

Awak tidak layak menyertai Ijazah Sarjana Muda UiTM
Ohh yee.. Sebelum terlupa kita boleh je nak letak semua if tanpa else kalau niat kita nak cuba semua statement..

Dalam source code ni kita akan fokus pada baris ke - 7  sahaja.

Logical operator yang telah kita guna kat sini adalah tanda 'double ampersand' (&&) , disebut sebagai AND atau dalam bahasa Melayu DAN.




Kalau kita letak operasi AND bermaksud semua syarat mesti dipenuhi sebelum program boleh jalankan step seterusnya, kalau takde dia akan pergi ke else(kalau ada else).

Nak bagi lebih nampak, tukar line 7 tu jadi macam ni:
if (kelayakan == "SPM" && kelayakan != "Diploma")
System.out.println("Awak layak menyertai Ijazah Sarjana Muda UiTM (Dengan potongan jam kredit)"); 

dan apabila kita run, kita akan dapat
Awak layak menyertai Ijazah Sarjana Muda UiTM (Dengan potongan jam kredit)
Awak layak menyertai Ijazah Sarjana Muda Alam Bina UiTM
Awak tidak layak menyertai Ijazah Sarjana Muda UiTM
Syarat yang pertama tu dah dipenuhi tapi syarat yang kedua tu tidak dipenuhi, akhirnya program pilih untuk jalankan step else.

Satu lagi logical operator adalah '||', disebut sebagai OR dan dalam bahasa Melayu sebagai ATAU.
Untuk demo, cuba tukar line 10 jadi macam ni
if (kelayakan == "SPM" || kelayakan == "Asasi")
System.out.println("Awak layak menyertai Ijazah Sarjana Muda UiTM (Tanpa potongan jam kredit)"); 
dan hasilnya (Kita boleh lihat penambahannya)
Awak layak menyertai Ijazah Sarjana Muda UiTM (Dengan potongan jam kredit)         Awak layak menyertai Ijazah Sarjana Muda UiTM (Tanpa potongan jam kredit)
Awak layak menyertai Ijazah Sarjana Muda Alam Bina UiTM
Awak tidak layak menyertai Ijazah Sarjana Muda UiTM

Untuk operasi OR ni pulak, paling kurang mesti ada SATU syarat yang dipenuhi. Dalam kes ni syarat yang pertama sudah dipenuhi, jadi dah cukuplah untuk program jalankan step yang seterusnya.

Kalau dua-dua syarat tak dipenuhi barulah program akan pilih ke else. [tapi program kali ini saya sengaja tidak bubuh else untuk beritahu yang tanpa else pon if masih boleh dipakai banyak kali]

Kalau nak studi lebih atau cuba pahamkan.. boleh try cover balik chapter Physics macam Logic Gates, Electricity.. Ada math macam Sets, Truth Table dan lain2.

Jadi, itu saja untuk tutorial kali ni. Kalau ada pening kat mana-mana boleh tinggalkan komen atau hantar ke Blog Rafieq atau twitter.