• Closers Online

    Loh bukannya servernya udah tutup? Di artikel ini aku bukan membahas yang server Indonesianya nih. Yang akan aku bahas adalah...

    Read More
  • Switch-Case C++

    Pada dasarnya pernyataan Switch sama dengan pernyataan If yang merupakan percabangan. Tetapi pernyataan...

    Read More
  • Enter Slide 3 Title Here

    Guardian Tales. Game apaan tuh? Ini adalah game mobile yang di develop oleh Kong Studios dari Korea Selatan dengan publisher dari negara yang sama yaitu Kakao Games. Game dengan...

    Read More

Minggu, 13 September 2020

Guardian Tales. Game apaan tuh?

GUARDIAN TALES

 

Guardian Tales. Game apaan tuh? Ini adalah game mobile yang di develop oleh Kong Studios dari Korea Selatan dengan publisher dari negara yang sama yaitu Kakao Games. Game dengan karakter yang unyu ini menarik ketika dimainkan. Bahkan saya sendiri juga stuck di game ini bukan karena gamenya terlalu sulit, tetapi lebih ke arah stuck ga bisa lepas dari game ini karena game ini sangat menarik untuk saya pribadi. Kenapa menarik? Berikut beberapa alasan menurut saya kenapa kalian harus memainkan game mobile yang satu ini.


1. Gameplay yang menarik



Kenapa menarik? Memang sih mungkin tidak semua akan senang dengan gameplay yang seperti ini. Namun, bagi saya pribadi gameplay dari game ini sangatlah menarik. Alasan utama dari saya adalah karena gameplay yang seperti ini jarang saya temukan di game mobile. Kalaupun ada, biasanya tidak semenarik game yang satu ini karena dalam bermain kita tidak hanya bermain secara bar bar, melainkan kita juga harus sedikit berpikir ketika akan menyerang karena memang game ini merupakan strategic action combat game dimana tetap mengusung tema action combat tetapi tetap harus memikirkan strategi supaya kita juga tidak mudah terkena hit dari musuh. Tidak hanya itu, game ini juga memiliki puzzle yang bisa dibilang cukup membuat otak harus berpikir. Saya sendiri cukup kebingungan di beberapa stage yang ada karena saya jarang main game puzzle, namun bagi kalian yang baru mau memainkan game ini, tidak perlu khawatir. Era sekarang kan sudah ada Google dan Youtube ya, jadi kalau kalian memiliki masalah dalam puzzle yang ada, tinggal cari aja penyelesaiannya.


2. Grafik yang unyu dan lucu



Grafik dari game ini benar benar menarik menurut saya, karena game dengan grafik pixelated seperti game ini jarang yang bagus menurut saya. Ada beberapa yang bagus, namun secara gameplay tidak menarik bagi saya. Kalaupun bagus, gamenya merupakan game berbayar yang tidak semua orang rela untuk memainkan game original, terutama di Indonesia sendiri saya masih banyak melihat orang lebih suka bermain game bajakan dibandingkan game ori. Meski untuk game konsole dan game PC mungkin sudah banyak yang main ori, tetapi tidak untuk game mobile. Ok balik ke topik, karena grafik dari game ini pixelated, karakter yang dibuat pun juga pixelated yang menurut saya juga menarik karena meskipun di buat pixelated, karakter yang ada tidak membosankan dan malah semakin menarik untuk dimainkan. Bagi kalian yang kurang suka dengan grafik pixel, mungkin mencoba game ini bisa jadi salah satu jalan menuju pixelated game yang lainnya.


3. Cerita game yang menarik



Untuk game free-to-play seperti ini, cerita yang diberikan menurut saya pribadi cukup menarik. Kenapa? karena dalam mode adventure dari game ini, akan sering diberikan cutscene ketika mengikuti stage dimana jalan cerita utamanya berada. Memang banyak game yang memberikan cutscene di dalam stage atau di kota, namun untuk yang satu ini semakin menarik karena karakter yang ada memiliki gerakan gerakan ataupun mimik muka yang menjelaskan perasaan karakter yang kita mainkan. Sehingga ketika kita memainkan game ini, kita mengerti apa yang karakternya rasakan. Game ini juga menyediakan cerita-cerita tambahan ketika ada event berlangsung, atau bisa dibilang side story dari karakter-karakter yang ada. biasanya side story muncul ketika ada karakter baru yang bisa kalian dapatkan.


4. Fitur yang banyak dan menarik



Fitur dalam game ini juga salah satu faktor yang bisa membuat kalian stuck di game ini terus-menerus. Karena banyak banget fitur yang ada. Kalian bisa mainin main story terus-terusan atau bisa kalian main side storynya terus-terusan, karena untuk ngikutin main storynya aja panjang dan banyak. Belum lagi ada side story, ada PVP, ada Arena, dan masih banyak lagi fitur yang ada. saya sendiri saja belum berhasil mengeksplor semua fitur yang ada di game ini. Juga ada hal menarik yang entah ini bisa disebut fitur atau tidak tetapi ketika kalian berhasil menyelesaikan sebuah stage dengan bintang 1, kalian akan mendapatkan 50 diamond yang bisa digunakan untuk men-summon weapon ataunpun karakter. Itu baru kalau dapat bintang 1 ya, gimana kalau 1 stage ada yang sampe bintang 3? Semakin banyak diamond kalian kan. Juga ada fitur stamina yang dilambangkan dengan kopi kalau di game ini. Kenapa kok disebut fitur? Karena berarti developer butuh duit. Juga setidaknya kalian tidak akan stuck selamanya di game itu, kalau pun kalian ingin menambahkan kapasitas stamina yang bisa ditampung, kalian bisa membeli nya dengan menggunakan koin yang kalian kumpulkan dalam stage yang ada.


Jadi gimana menurut kalian? Tertarik memainkan game ini atau tidak? Kalau saya pribadi sih menyarankan supaya kalian coba dulu gamenya sebelum bilang jelek. Karena menurut saya, sebuah game akan jelek menurut saya bila saya sudah mencoba dan tidak suka dengan gamenya. Silahkan komentar pendapat kalian mengenai game yang satu ini. Sekian yang bisa saya sampaikan melalui tulisan random saya ini.

Jumat, 21 Agustus 2020

Switch-Case C++


Pada dasarnya pernyataan Switch sama dengan pernyataan If yang merupakan percabangan. Tetapi pernyataan Switch hanya dapat digunakan pada tipe data int dan char.

Syntaks

switch(variabel)
{

case nilai_variabel1:
    //code block
    break;
case nilai_variabel2:
    //code block
    break;
default:
    //code block
}

Cara Kerja

variabel akan dibandingkan dengan setiap case hingga case terakhir atau default (jika ada).

Jika nilai_variabel tersebut benar, maka akan mengeksekusi code block (statement atau perintah).

default akan mengeksekusi code block, apapun nilai_variabel nya.

Perintah break digunakan untuk menyelesaikan pernyataan switch.

Jika tidak ada perintah break; maka pernyataan switch tersebut akan terjadi error (mengeksekusi code block hingga case terakhir atau default).

Contoh

#include <iostream>
using namespace std;

int main()
{
    int hari;
    cout << "Masukkan no hari (1-7) : ";
    cin >> hari;
    switch(hari)
    {
    case 1:
        cout << "Senin";
        break;
    case 2:
        cout << "Selasa";
        break;
    case 3:
        cout << "Rabu";
        break;
    case 4:
        cout << "Kamis";
        break;
    case 5:
        cout << "Jumat";
        break;
    case 6:
        cout << "Sabtu";
        break;
    case 7:
        cout << "Minggu";
        break;
    default:
        cout << "Tidak ada no hari " << hari;
    }
    return 0;
}

Output

Masukkan no hari (1-7) : 4
Kamis
Sebagai penjelasan contoh program di atas, pernyataan switch tersebut akan membandingkan variabel hari.

Semisal kita memasukkan nilai variabel hari = 4.

Variabel hari dibandingkan dengan setiap case, pertama akan dibandingkan dengan case 1, lalu case 2, dan ketika pada case 4, karena nilai variabel tersebut memenuhi, maka akan mengeksekusi code block atau pada contoh di atas menampilkan output Kamis.

Karena terdapat perintah break;, maka pernyataan switch diselesaikan.
Jika contoh program di atas kita hapus perintah break nya, maka setelah mengeksekusi code block pada case 4, akan mengeksekusi code block case selanjutnya hingga default

Output

Masukkan no hari (1-7) : 4
KamisJumatSabtuMingguTidak ada no hari 4

Jumat, 24 Juli 2020

Program Perulangan For C++


Program perulangan for adalah sebuah program perulangan yang sudah diketahui jumlah atau batasan perulangannya.

Syntaks

for(statement 1; statement 2; statement 3)
{
    //code block yang akan di eksekusi
}
Statement 1 sebuah inisialisasi yang hanya akan dieksekusi satu kali sebelum melakukan perulangan.
Statement 2 merupakan sebuah kondisi untuk mengeksekusi code block.
Statement 3 akan dieksekusi setiap code block selesai dieksekusi

Dengan menggunakan perulangan for, kita dapat menampilkan pesan atau output yang sama berulang kali dengan jumlah yang kita inginkan.

Contoh

for(int i=1; i<=10; i++)
{
    cout << "Kalimat ini akan ditampilkan sebanyak 10 kali" << endl;
}

Output

Kalimat ini akan ditampilkan sebanyak 10 kali
Kalimat ini akan ditampilkan sebanyak 10 kali
Kalimat ini akan ditampilkan sebanyak 10 kali
Kalimat ini akan ditampilkan sebanyak 10 kali
Kalimat ini akan ditampilkan sebanyak 10 kali
Kalimat ini akan ditampilkan sebanyak 10 kali
Kalimat ini akan ditampilkan sebanyak 10 kali
Kalimat ini akan ditampilkan sebanyak 10 kali
Kalimat ini akan ditampilkan sebanyak 10 kali
Kalimat ini akan ditampilkan sebanyak 10 kali
Penjelasan dari program di atas :
Sebelum melakukan perulangan, akan melakukan sebuah inisialisasi yaitu mendeklarasikan i = 1. Lalu melihat kondisi i <= 10, jika bernilai true maka akan mengeksekusi code block kemudian melakukan operasi i++. Namun, jika bernilai false maka akan menghentikan perulangan.
Atau kita juga bisa menampilkan output berupa angka 1 sampai 5.

Contoh

for(int i=1; i<=5; i++)
{
    cout << i << endl;
}

Output

1
2
3
4
5

Jumat, 10 Juli 2020

Closers Online

Home - Closers

Loh bukannya servernya udah tutup? Di artikel ini aku bukan membahas yang server Indonesianya nih. Yang akan aku bahas adalah yang server North America (NA) yang bisa kalian download di website En Masse atau di Steam. Game besutan Naddic Games ini sempat masuk ke Indonesia pada tahun 2016. Namun karena tidak begitu laku di Indonesia, akhirnya server dari game ini pun resmi di tutup total pada 23 Mei 2019. Tetapi, untuk server NA sendiri, baru rilis pada tahun 2017 pada bulan November. Game ini bergenre 3D Action MMO-RPG. Meskipun game ini free, tapi menurutku, game ini tidak seperti game gratisan pada umumnya. Gimana sih gamenya? Langsung aja lanjut ke pembahasan secara keseluruhan dari game ini aja yuk.


1. Bukan game berat

Closers on Steam

Meskipun game ini termasuk game yang bagus dari segi grafik, tetapi untuk spesifikasinya, tidak mengharuskan kalian merogoh kocek yang cukup tinggi. Selama kalian memiliki laptop dengan spesifikasi rata-rata atau yang bukan laptop gaming, kalian bisa memainkan game ini. Memang spesifikasi yang disarankan dari sang developer adalah Intel Core i3 dengan kartu grafis NVIDIA GeForce 8000 series namun dengan laptop yang menggunakan intel Core i3 tanpa kartu grafis bawaan pun bisa memainkan game ini dengan cukup lancar. Memang di beberapa tempat atau saat menggunakan skill mungkin mengalami drop FPS, namun hal tersebut tidak begitu sering terjadi. Namun ada yang perlu diingat, RAM yang di perlukan adalah 4 GB untuk minimumnya, jadi bagi kalian yang memaksakan laptop kalian yang hanya memiliki RAM dibawah 4 GB, mungkin akan mengalami FPS drop di banyak tempat dan saat menggunakan skill.


2. Memiliki variasi karakter yang cukup banyak

Task Force Veteranus: J - Closers
Salah satu art dari karakter J

Game ini memiliki banyak variasi karakter yang bisa kalian pilih. Karakter yang ada di game ini banyak dikarenakan ada beberapa tim di game ini. Setiap karakter punya ciri khas masing-masing yang bisa kita bedakan ketika kita memainkan game ini. Setiap karakter juga mempunyai senjata yang berbeda beda dan kebanyakan karakter yang ada merupakan karakter perempuan. Mungkin sang developer suka dengan karakter perempuan sehingga terlalu banyak karakter perempuan di game ini. Salah satu contoh karakter yang sangat saya sukai, yaitu J. Karakter ini merupakan karakter fighter yang bisa menggunakan skill tanpa harus menggunakan MP. Terus skillnya gimana? Untuk penggunaan skill sendiri J menguras HP dari sang karakter. Ga mati apa? Oh tentunya tidak. Untuk di awal game memang terasa untuk pengurangan HP nya. Tetapi semakin tinggi levelnya, hal tersebut semakin tidak terasa. Dan menurutku, itu sesuatu kelebihan dari karakter ini. Karena dengan tidak adanya MP maka regen dari HP nya bisa di maksimalkan yang menyebabkan HP dari J tidak berkurang banyak dan ada skill passive yang membuat skill cost kita di kurangi. Terlebih lagi, skill cost dari J sendiri tidak begitu besar sehingga membuat HP tidak terasa berkurang.


3. Memiliki cerita yang cukup menarik

Closers on Steam

Nah ini adalah salah satu hal yang menurut kami menarik untuk dibahas. Untuk sebuah game gratis seperti ini, dari segi cerita merupakan cerita yang cukup kompleks. Bahkan story utama kita dari awal sampai akhir story itu sama saja kita bermain dari level 1 sampai level 80. Sehingga untuk menuju level level selanjutnya, disediakan juga chapter tambahan untuk story dari game ini. Story dari masing masing tim juga berbeda-beda. Misi yang dijalankan pun berbeda-beda. Namun, semuanya itu saling bekesinambungan sehingga membentuk cerita yang kompleks dan panjang. Meskipun setiap tim berbeda-beda ceritanya, namun ada 2 karakter yang aku sarankan untuk kalian mainkan. Karakter yang pertama adalah J dari tim Black Lambs. Kenapa? Memang dia jadi favoritku bukan hanya karena karakternya keren saja tetapi karena ceritanya relate banget menurutku dan dia memiliki relasi yang lebih banyak dengan NPC yang ada di game tersebut. Karakter yang kedua adalah Nata dari tim Wolf Dogs. Karakter yang satu ini menurutku paling relate dengan anak remaja mungkin ya. Karena untuk ceritanya lebih dark daripada karakter tim lain yang mendapatkan kekuatan dari lahir sedangkan ia harus merasakan rasa sakitnya latihan dan melakukan operasi yang membahayakan hidupnya.


Mungkin cukup sekian kali ya yang bisa ku bahas di artikel kali ini. Kesimpulannya ya bagi kalian yang sudah 3D Action MMO-RPG silahkan kalian coba mainkan gamenya supaya kalian memiliki experience tersendiri ketika memainkan game ini.

Rabu, 08 Juli 2020

Operator C++


Pada bahasa pemrograman C++ terdapat 3 jenis operator.
  1. Unary Operator, operasi yang hanya melibatkan satu nilai (operand)
  2. Binary Operator, operasi yang melibatkan dua nilai (operand)
  3. Ternary Operator, operasi yang melibatkan tiga nilai (operand)
Berikut adalah penjelasan dari jenis-jenis operasi yang ada dalam operator tersebut dan contohnya.

Unary Operator

Simbol Nama Operator
++ Increment
-- Decrement

1. Increment

Increment Operator menambahkan nilai variabel sebesar 1.

Contoh

int x = 6;
x++;
cout << x;
Atau
int x = 6;
++x;
cout << x;

Output

7

2. Decrement

Decrement Operator mengurangkan nilai variabel sebesar 1.

Contoh

int x = 6;
x--;
cout << x;
Atau
int x = 6;
--x;
cout << x;

Output

5

Binary Operator

1. Assignment Operator

Operator ini berfungsi untuk memberikan nilai pada suatu variabel. Operator ini bersimbol =

Contoh

int x;
x = 5;
cout << x;

Output

5

2. Arithmetic Operator

Simbol Nama Operator
+ Penambahan
- Pengurangan
* Perkalian
/ Pembagian
% Modulus
Operator ini digunakan untuk melakukan operasi aritmatika.

Contoh

#include <iostream>
using namespace std;

int main()
{
    int x = 5;
    cout << "x + 2 = ";
    cout << x + 2 << endl;

    cout << "x - 2 = ";
    cout << x - 2 << endl;

    cout << "x * 2 = ";
    cout << x * 2 << endl;

    cout << "x / 2 = ";
    cout << x / 2 << endl;

    cout << "x % 2 = ";
    cout << x % 2; // modulus adalah sisa bagi
    return 0;
}

Output

x + 2 = 7
x - 2 = 3
x * 2 = 10
x / 2 = 2
x % 2 = 1
Pada operasi pembagian contoh di atas, 5 / 2 menghasilkan nilai 2.
Sedangkan seharusnya 5 dibagi 2 adalah 2.5.
Hal ini terjadi karena x adalah tipe data integer.

Hal tersebut dapat dipelajari pada Variabel dan Tipe Data C++.

3. Compound Assignment

Operator ini merupakan singkatan dari Assignment Operator dan Operator lainnya.
Simbol Contoh Sama dengan
+= x += y x = x + y
-= x -= y x = x - y
*= x *= y x = x * y
/= x /= y x = x / y
%= x %= y x = x % y
>>= x >>= y x = x >> y
<<= x <<= y x = x << y
&= x &= y x = x & y
|= x |= y x = x | y
^= x ^= y x = x ^ y

Contoh

int x = 4;
int y = 3;
x += y;
cout << x;
Sama dengan
int x = 4;
int y = 3;
x = x + y;
cout << x;

Output

7

4. Comparison Operator

Operasi ini digunakan untuk membandingkan antara 2 variabel.
Bernilai 1 jika benar (true), 0 jika salah (false).
Biasanya digunakan dalam sebuah kondisi.
Simbol Keterangan
== Sama dengan
!= Tidak sama dengan
< Lebih kecil dari
> Lebih besar dari
<= Lebih kecil atau sama dengan
>= Lebih besar atau sama dengan

Contoh

int x = 3;
int y = 4;
cout << (x > y);

Output

0

5. Logical Operator

Operator ini digunakan untuk melakukan operasi logika.
Simbol Nama Operator
&& AND
|| OR
! NOT

Logika AND

Logika AND digunakan untuk menggabungkan kedua statement, dimana akan bernilai true jika kedua statement bernilai true.
X Y X AND Y
0 0 0
0 1 0
1 0 0
1 1 1

Contoh

int x = 4;
int y = 3;
cout << (x < 4 && y > 2);

Output

0
Untuk penjelasan contoh program di atas, (x < 4) AND (y > 2).
Karena (x < 4) bernilai 0.
Dan (y > 2) bernilai 1.
Maka hasil dari operasi logika tersebut bernilai 0.

Logika OR

Logika OR digunakan untuk menghubungkan dua statement, dimana akan bernilai true jika salah satu statement bernilai true.
X Y X OR Y
0 0 0
0 1 1
1 0 1
1 1 1

Contoh

int x = 4
int y = 3;
cout << (x < 4 || y > 2);

Output

1

Logika NOT

Logika NOT digunakan untuk menghasilkan nilai yang berkebalikan. Jika suatu statement bernilai true maka akan menghasilkan nilai false.
X NOT X
0 1
1 0

Contoh

int x = 4;
int y = 3;
cout << !(x < 4 && y > 2);

Output

1

6. Bitwise Operator

Operator ini merupakan sebuah operasi khusus untuk menangani operasi bilangan biner atau bit.
Simbol Nama Operator
& Bitwise AND
| Bitwise OR
^ Bitwise XOR
~ Bitwise NOT
<< Left Shift
>> Right Shift

Bitwise AND

Operator ini digunakan untuk membandingkan bit dari dua operand dengan logika AND

Contoh

int x = 5;
int y = 3;
cout << (x & y);

Output

1
Berikut adalah operasi bitwise AND dari 5 dan 3
5 = 00000101
3 = 00000011
    ________ & (AND)
1 = 00000001

Bitwise OR

Operator ini digunakan untuk membandingkan bit dari dua operand dengan logika OR (Inclusive OR)

Contoh

int x = 5;
int y = 3;
cout << (x | y);

Output

7
Berikut ini adalah operasi bitwise AND dari 5 dan 3
5 = 00000101
3 = 00000011
    ________ | (OR)
7 = 00000111

Bitwise XOR

Operator ini digunakan untuk membandingkan bit dari dua operand dengan logika XOR (Exclusive OR)
X Y X XOR Y
0 0 0
0 1 1
1 0 1
1 1 0

Contoh

int x = 5;
int y = 3;
cout << (x ^ y);

Output

6
Berikut ini adalah operasi bitwise XOR dari 5 dan 3
5 = 00000101
3 = 00000011
    ________ ^ (XOR)
6 = 00000110

Bitwise Complement (NOT)

Operator ini digunakan untuk membalikkan bit sebuah operand dan menyimpannya pada bentuk komplemen 2

Contoh

int x = 5;
cout << ~x;

Output

-6
Berikut ini adalah operasi bitwise Complement (NOT) dari 5
 5 = 00000101
     ________ ~
-6 = 11111010
Hasil dari komplemen tersebut bisa didapatkan dari rumus -(x + 1)
Namun, jika kita menggunakan tipe data unsigned, hasil yang didapatkan akan menjadi angka yang besar.

Contoh

unsigned int = 5;
cout << ~x;

Output

4294967290

Left Shift

Operator ini digunakan untuk menggeser bit ke kiri atau sama dengan perkalian 2 sebanyak n kali.

Contoh

int x = 5;
cout << "x = " << x << endl;
cout << "x << 1 = " << (x << 1) << endl;
cout << "x << 2 = " << (x << 2);

Output

x = 5
x << 1 = 10
x << 2 = 20
Berikut ini adalah operasi 1 left shift dari 5
 5 = 00000101
     ________ << 1
10 = 00001010

Right Shift

Operator ini digunakan untuk menggeser bit ke kanan atau sama dengan pembagian 2 sebanyak n kali.

Contoh

int x = 5;
cout << "x = " << x << endl;
cout << "x >> 1 = " << (x >> 1) << endl;
cout << "x >> 2 = " << (x >> 2);

Output

x = 5
x >> 1 = 2
x >> 2 = 1
Berikut ini adalah operasi 1 right shift dari 5
5 = 00000101
    ________ >> 1
2 = 00000010

Ternary Operator

Sintaks

variabel = kondisi ? ekspresiBenar : ekspresiSalah

Jika menggunakan kondisi if-else

if(kondisi)
{
    variabel = ekspresiBenar;
}
else
{
    variabel = ekspresiSalah;
}

Contoh

int x = 5;
int y = 7;
int terbesar;

terbesar = (x > y) ? x : y;
cout << "Nilai terbesar di antara 5 dan 7 = " << terbesar;

Output

Nilai terbesar di antara 5 dan 7 = 7

Rabu, 17 Juni 2020

MATEMATIKA DISKRIT DASAR – DASAR LOGIKA


       KALIMAT DEKLARATIF
Ilmu logika berhubungan dengan kalimat-kalimat dan hubungan yang ada di antara kalimat-kalimat tersebut. Tujuan dari ilmu logika adalah untuk memberikan aturan-aturan sehingga orang dapat menentukan apakah suatu kalimat bernilai benar atau salah.

Kalimat yang dipelajari dalam ilmu logika bersifat umum, baik dari segi bahasa maupun bukti matematika berdasarkan hipotesis-hipotesis. Ilmu logika lebih mengarah kepada bentuk kalimat dari pada arti yang terkandung dalam kalimat tersebut.

Suatu kalimat deklaratif (proposisi) adalah kalimat yang bernilai salah atau benar, tetapi tidak keduanya.

Contoh 1
Berikut beberapa contoh kalimat proposisi :

a.       2 adalah bilangan prima.
b.       Semarang merupakan ibukota provinsi Jawa Timur.
c.       10 adalah bilangan ganjil.
d.       10 – 5 = 5

Dari beberapa kalimat proposisi di atas kalimat a dan kalimat d bernilai benar, dan kalimat b dan c bernilai salah.

Contoh 2
Perhatikan beberapa kalimat dibawah ini :

a.       Siapa namanya?
b.       Simon lebih tinggi dari Dani.
c.       X + Y = 10
d.       10 merupakan bilangan genap.
e.       Dia mencintai 6.

Dari beberapa kalimat di atas :
    • Kalimat a bukan merupakan kalimat proposisi karena kalimat a merupakan kalimat tanya.
    • Kalimat b bukan merupakan kalimat proposisi karena kalimat b tidak dapat dibuktikan kebenarannya. Dalam kalimat tersebut tidak menunjukan secara spesifik siapa yang dimaksud dengan Simon dan Dani, sehingga tidak dapat diketahui apakah Simon lebih tinggi dari Dani.
    • Kalimat c juga bukan merupakan kalimat propisisi karena kalimat c tidak dapat di tentukan nilai kebenaranya. Dalam menentukan nilai kebenaran dalam kaliamt c tergantung dari nilai X dan nilai Y.
    • Kalimat d merupakan kalimat proposisi karena dalam kalimat d dapat dibuktikan kebenaranya bahwa 10 merupakan anggota bilangan genap.
    • Kalimat e bukan merupakan kalimat proposisi karena dalam kalimat e tidak dapat ditentukan kebenaran kalimatnya.

      PENGHUBUNG KALIMAT

Sering kali kita menemukan beberapa kalimat yang perlu dihubungkan menjadi satu kalimat yang lebih panjang. Misalkan pada kalimat “2 adalah bilangan genap dan 3 adalah bilangan ganjil” merupakan penggabungan dua kalimat yang berbeda yaitu kalimat “2 adalah bilangan genap” dan kalimat “3 adalah bilangan ganjil”. Dalam logika, ada 5 penghubung seperti pada tabel berikut :

SIMBOL
ARTI
BENTUK
Ø
Tidak / Not / Negasi
Tidak ...
Ù
Dan / And / Konjungsi
... dan ...
Ú
Atau / Or / Disjungsi
... atau ...
Þ
Implikasi
Jika ... Maka ...
Û
Bi - Implikasi
... jika dan hanya jika ...

Dalam matematika digunakan huruf kecil untuk menyatakan suatu sub-kalimat dan simbol-simbol penghubung untuk menyatakan penghubungan kalimat.

Contoh 1
Misalkan :

a menyatakan kalimat “2 adalah bilangan genap”
b menyatakan kalimat “3 adalah bilangan ganjil”

Maka, kalimat “2 adalah bilangan genap dan 3 adalah bilangan ganjil” dapat dinyatakan dengan a Ú b 

Contoh 2
Misal :

p menyatakan “hari ini cerah”
q menyatakan “hari ini panas”

Nyatakan kalimat dibawah ini dengan simbol logika :

a.       Hari ini tidak cerah tapi panas.
b.       Hari ini tidak cerah dan tidak panas.
c.       Tidak benar hari ini cerah dan panas.

Penyeselaian :

a.       Kata “tapi” memiliki artian sama dengan “dan” sehingga kalimat a dapat dinyatakan ØÚ q
b.       ØÚ Øq
c.       Kalimat “hari ini cerah dan panas” dapat dinyatakan Ú q sehingga kalimat c dapat dinyatakan Ø(p Ú q)


Dalam kehidupan sehari-hari, ada banyak kalimat yang mengunakan kata – kata penghubung diatas, tetapi dengan arti yang berbeda-beda, tergantung konteks yang sedang dibahas, misal :

a.       Jika Bayu menikah, Bayu akan bekerja keras.
b.       Jika Bayu tidak bahagia, maka Bayu tidak akan menikah.
c.       Jika 3 + 3 = 6, maka bunga tulip berwarna biru.

Meskipun semua kalimat berbentuk jika ... maka ..., tetapi ketiga kalimat tersebut memiliki konotasi yang berbeda. Implikasi dari kalimat a adalah sebuah janji, kalimat b adalah hubungan sebab akibat, sedangkan kalimat c tidak memiliki arti (tidak ada hubungan antara kedua kalimat penyusun).

Pada kalimat c terjadi keganjilan arti. Untuk menghindari keganjilan tersebut dalam logika tidak diisyaratkan adanya hubungan antara kedua kalimat penyusun. Dalam logika lebih ditekankan kepada susunan kalimat saja. Kebenaran suatu kalimat berimplikasi semata – mata hanya tergantung pada nilai kebenaran kalimat penyusunnya.

Dalam contoh beberapa kalimat diatas terjadi perbedaan konotasi. Untuk menghindari terjadinya perbedaan konotasi, maka penggunaan kalimat penghubung yang tepat sangat dibutuhkan, sehingga hanya memiliki satu konotasi saja. Caranya adalah dengan menggunakan tabel nilai. Berikut adalah contoh tabel nilai yang memuat 2n baris :

p
q
Øp
p Ù q
p Ú q
p Þ q
p Û q
T
T
F
T
T
T
T
T
F
F
F
T
F
F
F
T
T
F
T
T
F
F
F
T
F
F
T
T
     
Negasi (Not) suatu kalimat akan memiliki nilai kebenaran yang berlawanan dengan nilai kebenaran yang asli. Jadi jika nilai kebenaran p adalah true (benar) maka nilai kebenaran dari not p adalah false (salah).

     Kalimat p Ù q (baca p dan q) akan bernilai true (benar) jika p dan q bernilai true (benar). Jika salah satunya ada yang bernilai false (salah), nilai dari p dan q adalah false (salah).

Kalimat p Ú q (baca p atau q) memiliki 2 macam arti. Untuk memperjelas perbedaan keduanya, perhatikan 2 kalimat berikut:
a. Dalam pesta ini, tamu diperbolehkan untuk berdansa dan bernyanyi.
b. Aku akan menonton film itu di bioskop atau di laptop.

Dalam kalimat a, keseluruhan kalimat bernilai benar. Karena para tamu yang hadir dalam pesta diperbolehkan berdansa sekalius bernyanyi. Sebaliknya, dalam kalimat b, hanya salah satu diantar kalimat penyusunnya yang bernilai benar, tetapi tidak keduanya. Secara keseluruhan kalimat akan bernilai benar jika aku akan menonton film itu di bioskop saja, atau aku akan menonton film itu di laptop saja.

Kata penghubung “atau (OR)” dalam kalimat a disebut Inclusive OR, sedangkan kalimat b disebut Exclusive OR.

Secara umum, jika yang dimasud penghubung “OR” adalah Inclusive OR (semua kalimat penyusun bernilai benar) maka nilai p Ú q adalah benar. Jika kalimat Exclusive OR (salah satu kalimat penyusun bernilai salah) maka nilai p Ú q adalah benar.

Dalam kalimat p Þ q, p disebut hipotesis (antesenden) dan q disebut konklusi (konsekuen). Kalimat berbentuk p Þ q disebut kalimat berkondisi karena nilai kebanaran q tergantung pada kebenaran kalimat p.  Kalimat p Þ q dapat dibaca dalam beberapa bentuk:
a. Bila p maka q (jika p maka q)
b. q apabila p
c. p hanya bila q

Alasannya adalah jika tidak q (q salah), maka p juga tidak terjadi (p salah).
Sesuai dengan  baris ke 4 kolom ke 6 pada tabel.

d. p adalah syarat untuk q
e. q adalah syarat yang perlu untuk p

Kalimat p Þ q akan bernilai salah jika p bernilai benar dan q bernilai salah. 

Sebagai contoh, “jika besok cerah, aku akan datang ke rumahmu.

Misalkan p menyatakan “jika besok cerah” 
Dan kalimat q menyatakan “aku akan datang ke rumahmu.” 

Jika p dan q bernilai benar maka seseorang yang berjanji tersebut tidak berbohong (bernilai benar). 

Jika p bernilai salah maka seseorang tersebut terbebas dari janjinya namun jika ia tetap datang ke rumah temannya maka ia tidak akan disalahkan (bernilai benar). 

Namun jika p bernilai benar dan q bernilai salah, maka kalimat akan bernilai salah. Hal itu dikarenakan jika hari cerah dan seseorang tersebut tidak datang kerumah temannya maka ia berbohong (bernilai salah).

Kalimat p Û q (baca p jika dan hanya jika q) adalah kalimat berkondisi ganda (biconditional) yang berarti (p Þ q) Ù (q Þ p). Supaya p Û q bernilai benar, maka baik p Þ q maupun q Þ p harus bernilai benar. 

Perhatikan tabel berikut :

p
q
p Þ q
q Þ p
p Û q
atau
(p Þ q) Ù (q Þ p)
T
T
T
T
T
T
F
F
T
F
F
T
T
F
F
F
F
T
T
T


Jadi Û q akan bernilai benar jika kedua kalimat penyusun bernilai sama baik itu bernilai salah maupun bernilai benar.


Contoh 3

Buatlah tabel kebenaran untuk kalimat dalam bentuk simbol – simbol logika dibawah ini!
a.    Ø(Øp Ú Øq)
b.    (p Þ q) Ù Ø(p Ú q)
c.    (Øp Ù (Øq Ù r)) Ú (q Ù r) Ú (p Ù r)

Penyelesaian :
a.    Ø(Øp Ú Øq)
p
q
Øp
Øq
Øp Ú Øq
Ø(Øp Ú Øq)
T
T
F
F
F
T
T
F
F
T
T
F
F
T
T
F
T
F
F
F
T
T
T
F

b.    (p Þ q) Ù Ø(p Ú q)

p
q
p Þ q
p Ú q
Ø(p Ú q)
(p Þ q) Ù Ø(p Ú q)
T
T
T
T
F
F
T
F
F
T
F
F
F
T
T
T
F
F
F
F
T
F
T
T

c.    (Øp Ù (Øq Ù r)) Ú (q Ù r) Ú (p Ù r)

p
q
r
Øp
Øq
Øq Ù r
Øp Ù (Øq Ù r)
q Ù r
p Ù r
(ØÙ (ØÙ r )) Ú (q Ù r) Ú (p Ù r)
T
T
T
F
F
F
F
T
T
F
T
T
F
F
F
F
F
F
F
F
T
F
T
F
T
T
F
F
T
F
T
F
F
F
T
F
F
F
F
F
F
T
T
T
F
F
F
T
F
F
F
T
F
T
F
F
F
F
F
F
F
F
T
T
T
T
T
F
F
T
F
F
F
T
T
F
F
F
F
F


HUKUM EKUIVALENSI

Beberapa hukum ekuivalensi logika disajikan dalam daftar dibawah ini :

1.    Hukum Komutatif
p Ù q Û q Ù p
atau
q Ú p Û p Ú q

2.    Hukum Asosiatif
(p Ù q) Ù r Û p Ù (q Ù r)
atau
(p Ú q) Ú r Û p Ú (q Ú r)

3.    Hukum Distributif
p Ù (q Ú r) Û (p Ù q) Ú (p Ù r)
atau
p Ú (q Ù r) Û (p Ú q) Ù (p Ú r)

4.    Hukum Identitas
p Ù T Û p
atau
p Ú F Û p

5.    Hukum Ikatan
p Ú T Û T
atau
p Ù F Û F
6.    Hukum Negasi
p Ú Øp Û T
atau
p Ù Øp Û F

7.    Hukum Negasi Ganda
Ø(Øp) Û p

8.    Hukum Idempoten
p Ù p Û p
atau
p Ú p Û p

9.    Hukum De Morgan
Ø(p Ù q) Û Øp Ú Øq
atau
Ø(p Ú q) Û Øp Ù Øq

10. Hukum Absorbsi
p Ú (p Ù q) Û p
atau
p Ù (p Ú q) Û p

11. Negasi T dan F
ØT Û F
atau
ØF Û T

            Contoh 3.1
Sederhanakan bentuk Ø(p Ú Øq) Ú (Øp Ù Øq)!
Penyelesaian :
Ø(p Ú Øq) Ú (Øp Ù Øq)
Û (Øp Ù Ø(Øq)) Ú (Øp Ù Øq)         (hukum de morgan)
Û (Øp Ù q) Ú (Øp Ù Øq)                 (hukum negasi ganda)
Û Øp Ù (q Ú Øq)                            (hukum distributif)
Û Øp Ù T                                       (hukum negasi)
Û Øp                                             (hukum identitas)


TAUTOLOGI, KONTRADIKSI DAN KONTINGENSI
Tautologi adalah suatu kalimat yang selalu bernilai benar, tidak peduli bagaimana nilai kebenaran masing – masing kalimat penyusunnya. Sebaliknya, kontradiktif adalah suatu kalimat yang selalu bernilai salah, tidak peduli bagaimana nilai kebenaran masing – masing kalimat penyusunnya. Dan kontingensi adalah kalimat yang nilai kebenaranya bisa bernilai benar atau salah.

Dalam tabel kebenaran, suatu tautologi selalu bernilai T pada semua barisnya, sebaliknya kontradiksi selalu bernilai F pada semua barisnya. Dan suatu kontingensi akan memiliki T atau F disetiap baris.

Contoh 4.1
1.    Tentukan kalimat – kalimat dibawah ini adalah tautologi, kontradiktif atau kontingensi!
a.    (p Ù q) Þ q
b.    Ø(Øp Û q)
c.    p Ù (Øp Ù q)
penyelesaian :
a.    Tabel kebenaran (p Ù q) Þ q

p
q
p Ù q
(p Ù q) Þ q
T
T
T
T
T
F
F
T
F
T
F
T
F
F
F
T

Berdasarkan tabel kebenaran diatas maka (p Ù q) Þ q termasuk kalimat tautologi.

b.    Tabel kebenaran Ø(Øp Û q)

p
q
Øp
(Øp Û q)
Ø(Øp Û q)
T
T
F
F
T
T
F
F
T
F
F
T
T
T
F
F
F
T
F
T

Berdasarkan tabel kebenaran diatas maka Ø(Øp Û q) termasuk kalimat kontingensi.

c.    Tabel kebenaran p Ù (Øp Ù q)

p
q
(Øp)
(Øp Ù q)
p Ù (Øp Ù q)
T
T
F
F
F
T
F
F
F
F
F
T
T
T
F
F
F
T
F
F

Berdasarkan tabel kebenaran diatas maka p Ù (Øp Ù q) termasuk kalimat kontradiksi.


5.    Metode – metode Inferensi
Metode inferensi adalah teknik menurunkan kesimpulan berdasarkan hipotesis yang ada, tanpa menggunakan tabel kebenaran. Berikut beberapa metode inferensi :
a.    Modus Ponens
Implikasi “bila p maka q” jika p bernilai benar untuk membuat kalimat bernilai benar maka q harus bernilai benar. Infersi seperti itu disebut Modus Ponens. Secara simbolis, Modus Ponens dapat dinyatakan sebagai berikut :
p Þ q
p
_______
\ q
Hal itu dapat dilihat pada tabel kebenaran berikut :

Baris Ke
p
q
p Þ q
p
q
1
T
T
T
T
T
2
T
F
F
T
F
3
F
T
T
F
T
4
F
F
T
F
F
Baris kritis adalah baris pertama. Pada baris tersebut, konklusi (q) bernilai T sehingga argumennya valid.

Contoh 5.1
Jika digit terakhir suatu bilangan adalah bilangan genap, maka bilangan tersebut habis dibagi 2.

Digit terakhir bilangan 184 adalah 4
_____________________________
\ bilangan 182 habis dibagi 2.

b.    Modus Tollens
Bentuk Modus Tollens mirip dengan Modus Ponens, hanya saja hipotesis kedua dan kesimpulan merupakan kontraposisi hipotesis pertama dari Modus Ponens. Perlu diingat bahwa suatu implikasi selalu ekuivalen dengan kontarposisinya. Secara simbolis, bentuk infersi Modus Tollens dapat dinyatakan sebagai berikut:
p Þ q
Øp
_______
\ Øq

Contoh 5.2
Jika Zeus seorang manusia, ia dapat mati
Zeus tidak dapat mati
_________________________________
\ Zeus bukan seorang manusia

c.    Penambahan Disjungtif
Infersi Penambahan Disjungtif didasarkan pada fakta bahwa suatu kalimat dapat digeneralisasikan dengan penghubung “Ú”. Alasannya karena penghubung “Ú” bernilai benar jika salah satu kalimat penyusunnya bernilai benar. Bentuk simbolis metode infersi Penambahan Disjungtif sebagai berikut :

      p
_______
\ p Ú q
Atau
      q
_______
\ p Ú q

Contoh 5.3
Andre adalah siswa SMA (Sekolah Menengah Atas)
_________________________________________________
\ Andre adalah siswa sekolah menengah (SMA atau SMP)

d.    Penyederhanaan Konjungtif
Infersi Penyederhanaan Konjungtif merupakan kebalikan dari infersi Penambahan Disjungtif. Jika beberapa kalimat dihubungkan dengan penghubung “Ù”, maka kalimat tersebut dapat diambil salah satunya secara khusus. Penyempitan kalimat tersebut merupakan kebalikan dari Penambahan Disjungtif yang merupakan perluasan suatu kalimat. Betuk simbolis metode infersi Penyederhanaan Konjungtif adalah sebagai berikut :

p Ù q
_____
\ p
Atau
p Ù q
_____
\ q

Contoh 5.4
Nila menguasai bahasa Inggris dan Mandarin
_____________________________________
\ Nila menguasai bahasa Inggris

e.    Silogisme Disjungtif
Prinsip dasar dari Silogisme Disjungtif adalah kenyataan jika kita diperhadapakan pada dua pilihan yang ditawarkan (A atau B), sedangkan kita tidak bisa memilih A, maka kita hanya dapat memilih B. Hal ini sering kita jumpai dalam kehidupan sehari – hari, seperti saat kita ditanyai oleh penjual warung, “ingin memesan nasi goreng atau mie goreng?” ornag yang ditanyai harus memilih salah satu. Jika ia tidak suka nasi goreng pasti ia memilih mie goreng. Secara simbolis, bentuk infersi Silogisme Disjungsi adalah sebagai berikut :

p Ú q
Øp
______
\ q
Atau
p Ú q
Øq
______
\ p

Contoh 5.5
Kamu menonton film di rumah atau di bioskop
Kamu tidak suka menonton film di bioskop
______________________________________
\ Kamu menonton film di rumah

f.     Silogisme Hipotesis
Prinsip infersi Silogisme Hipotesis adalah sifat transitif pada implikasi. Jika p Þ q maupun q Þ r bernilai benar, maka p Þ r bernilai benar juga. Secara simbolis, Silogisme Hipotesis adalah sebagai berikut :

p Þ q
q Þ r
_______
\ p Þ r

Contoh 5.6
Jika 48 habis dibagi 4, maka 48 habis dibagi 2
Jika 48 habis dibagi 2, maka setiap digitnya habis dibagi 2
___________________________________________________
\ Jika 48 habis dibagi 4, maka setiap digitnya habis dibagi 2

g.    Dilema (Pembagian dalam Beberapa Kasus)
Terkadang, dalam kalimat yang dihubungkan dengan penghubung “Ú”, masing – masing kalimat dapat mengimplikasikan suatu hal yang sama. Bedasarkan hal tersebut suatu kesimpulan dapat diambil. Secara simbolis, infersi Dilema adalah sebagai berikut :

p Ú q
p Þ r
q Þ r
______
\ r

Contoh 5.7
Nanti malam Yona mengajak saya makan di angkringan atau nonton
Jika Yona mengajak saya makan di angkringan maka saya senang
Jika Yona mengajak saya nonton maka saya senang
_________________________________________________________
\ Nanti malam saya senang

h.    Konjungsi
Infersi Konjungsi adalah penggabungan 2 kalimat bernilai benar dan digabungkan dengan menggunakan penghubung “Ù” maka kalimat bernilai benar. Secara simbolis, Konjungsi adalah sebagai berikut :

p
q
_______
\ p Ù q



Contoh 5.8

Saya suka coklat
Saya suka susu
________________________
\ Saya suka coklat dan susu

Kedelapan bentuk metode infersi dapat diringkas dalam tabel berikut:

ATURAN
BENTUK ARGUMEN
Modus ponens
p Þ q
p
_______
\ q
Modus Tollens
p Þ q
Øp
_______
\ Øq
Penambahan Disjungtif
p Ú q
Øp
______
\ q
p Ú q
Øq
______
\ p
Penyederhanaan Konjungtif
p Ù q
_____
\ p
p Ù q
_____
\ q
Silogisme Hipotesis
p Þ q
q Þ r
_______
\ p Þ r
Silogisme Disjungtif
p Ú q
Øp
______
\ q
p Ú q
Øq
______
\ p
Dilema
p Ú q
p Þ r
q Þ r
______
\ r
Konjungtif
p
q
_______
\ p Ù q

Contoh 5.9

Buktikan kevalidan argumen dibawah ini menggunakan prinsip – prinsip infersi logika!
p Ù q
(p Ù q) Þ r
__________
\ r



Penyelesaian

1.    p Ù q                                          (hipotesa)
__________
\ p                                            (penyederhanaan konjungtif)

2.    p                                                 (hasil 1)
__________
\ p Ú q                                      (penambahan disjungtif)

3.    (p Ù q) Þ r                                 (hipotesa)
(p Ù q)                                        (hasil 2)
__________
\ r                                             (modus ponens)

Terbukti bahwa argumen

p Ù q
(p Ù q) Þ r
__________
\ r

Merupakan argumen yang valid.