PROA

Professional Academy

JavaScript - Alur Logika

Agenda

  • Pernyataan Kondisional
  • Truthy x Falsy
  • Iterasi dan Perulangan

Pernyataan Kondisional

  • Tidak hanya kita yang bisa memilih, kode pun bisa memilih loh !
  • Pemilihan dilakukan berdasarkan suatu input yang diberikan
  • Contoh: Kalau sedang main game, bila pemain nyawanya 0, maka akan "Game Over"
  • Bagaimanakah cara dev mengoding pernyataan di atas?

Pernyataan kondisional (ii)

  • Kumpulan perintah yang akan dieksekusi apabila kondisi yang didefinisikan adalah true
    • Pernyataan if - else
    • Pernyataan if - else if - else
    • Pernyataan switch

Pernyataan if - else

  • Pernyataan untuk mengecek bila suatu kondisi terjadi, maka akan melakukan sesuatu yang didefinisikan di dalam if
  • Apabila kondisi tersebut tidak terjadi, maka akan melakukan sesuatu yang didefinisikan di dalam else
  • Maksimum kondisi percabangan hanya bisa dua (if ... dan else ...)

Pernyataan if - else (ii)

Notasi penulisan if - else

if (kondisi) {
  // kode yang akan dieksekusi apabila kondisi benar
} else {
  // kode yang akan dieksekusi apabila kondisi salah
}

Pernyataan if - else (iii)

Contoh penulisan if else

const nyawaSekarang = 100;

if(nyawaSekarang >= 100) {
  // apabila kondisi benar
  console.log('Nyawa kamu cukup');
} else {
  // apabila kondisi salah
  console.log('Nyawa kamu tidak cukup');
}

Pernyataan if - else if - else

  • Pernyataan untuk mengecek bila suatu kondisi terjadi, maka akan melakukan sesuatu yang didefinisikan di dalam if
  • Apabila salah, maka akan mencoba untuk mengecek berdasarkan kondisi lainnya lagi di dalam else if
  • Apabila semua kondisi tersebut tidak terjadi, maka akan melakukan sesuatu yang didefinisikan di dalam else
  • Maksimum kondisi percabangan bisa banyak (if ... (1) else if ... (n) else ... (1))

Pernyataan if - else if - else (ii)

Notasi penulisan if - else if - else

if (kondisi) {
  // kode yang akan dieksekusi apabila kondisi benar
} else if (kondisi_2) {
  // kode yang akan dieksekusi apabila kondisi_2 benar
} else if (kondisi_n) {
  // kode yang akan dieksekusi apabila kondisi_n benar
} else {
  // kode yang akan dieksekusi apabila semua kondisi salah
}

Pernyataan if - else if - else (iii)

Contoh penulisan if - else if - else

const nyawaSekarang = 100;
if(nyawaSekarang >= 100) {
  // apabila kondisi benar
  console.log('Nyawa kamu cukup');
} else if(nyawaSekarang >= 50) {
  // apabila kondisi benar
  console.log('Hayo diminum potionnya !');
} else if(nyawaSekarang >= 1) {
  // apabila kondisi benar
  console.log('Haduh udah hampir sekarat !');
} else {
  // apabila semua kondisi salah
  console.log('Yah kamu kalah...');
}

Pernyataan switch

  • Cara lain dalam penulisan kondisi yang berbeda dari if else if else
  • Tidak baik digunakan apabila hanya ada 2 kondisi
  • Hati hati dengan penulisan case dan jangan lupa break untuk menghentikan *sleding*-an kode

Pernyataan switch (ii)

Notasi penulisan switch ... case ...

switch (ekspresi_kondisi) {
  case kondisi_1:
  case kondisi_2:
    // kode yang akan dieksekusi apabila kondisi_1
    // dan kondisi_2 benar
    break;
  case kondisi_n:
    // kode yang akan dieksekusi apabila kondisi_n benar
    break;
  default:
    // kode yang akan dieksekusi apabila semua kondisi salah
}

Pernyataan switch (iii)

Contoh penulisan switch ... case ...

const rating = 3;
switch (rating) {
  case 1: console.log("wah cukup buruk"); break;
  case 2: console.log("masih agak buruk yah !"); break;
  case 3:
  case 4:
  case 5:
    console.log("sudah baik nih !"); break;
  default:
    // kode yang akan dieksekusi apabila semua kondisi salah
    console.log("wah tidak mungkin dapat segini nih !");
}

Truthy x Falsy

Truthy adalah sebuah nilai yang akan dianggap benar apabila dikomparasikan dalam pernyataan Boolean
Falsy artinya kebalikan dari truthy, nilai yang akan dianggap salah bila dikomparasikan dalam pernyataan Boolean

Truthy x Falsy (ii)

Truthy Falsy
true false
angka bukan nol 0
"string" (selama ada isi) "" (string kosongan)
object undefined
array null
functions (akan dipelajari nanti) NaN (not a number)

Truthy x Falsy (iii)

  • if (Infinity) - truthy
  • if (Infinity === -Infinity) - falsy
  • if (0.5 + 0.1 === 0.6) - truthy
  • if (0.1 + 0.2 === 0.3) - falsy
  • if (0 == "0") - truthy

Iterasi dan Perulangan

Misalnya kita punya kode yang seperti ini

const arr = ["ini", "cuma", "tulisan", "saja"];

console.log(arr[0]); // ini
console.log(arr[1]); // cuma
console.log(arr[2]); // tulisan
console.log(arr[3]); // saja
Apa yang terjadi bila data dalam array ada 100?
Tangan kita akan keriting bukan menulisnya?

Iterasi dan Perulangan (ii)

  • Perulangan memberikan cara cepat dan mudah untuk melakukan sesuatu yang berpola berulang-ulang
  • Dalam javascript ada beberapa cara untuk menuliskan iterasi dan perulangan ini:
    • Perulangan for ...
    • Perulangan while ...
    • Perulangan break
  • Selalu berhati hati menuliskan perulangan agar tidak terjadi Infinite Loop

Perulangan for ...

  • Cara penulisan perulangan yang paling umum digunakan
  • Akan berulang terus sampai kondisi yang diberikan menjadi false

Perulangan for ... (ii)

Notasi penulisan for ...

for ([ekspresiAwal]; [ekspresiKondisi]; [ekspresiIterasi]) {
  // kode yang akan dieksekusi
}

Perulangan for ... (iii)

Contoh penulisan for ...

const arr = ["ini", "cuma", "tulisan", "saja"];

// index adalah counter initial untuk perulangan
// index < 4 adalah kondisi dimana perulangan selesai
// index++ adalah inkremental yang dilakukan
//   agar perulangan bisa selesai
for (let index = 0; index < 4; index++) {
  // ini adalah aksi yang dilakukan
  // sampai perulangan selesai
  console.log(arr[index]);
}

Perulangan while ...

  • Cara penulisan perulangan yang cukup umum digunakan
  • Perulangan yang akan terus dilakukan selama kondisi yang diberikan masih true

Perulangan while ... (ii)

Notasi perulangan while ...

while (kondisi) {
  // kode yang akan dieksekusi
}

Perulangan while ... (iii)

Contoh perulangan while ...

const arr = ["ini", "cuma", "tulisan", "saja"];

// index adalah counter initial untuk perulangan
let index = 0;
// index < arr.length adalah kondisi perulangan selesai
while (index < arr.length) {
  // ini adalah aksi yang dilakukan
  // sampai perulangan selesai
  console.log(arr[index]);
  // index += 1 adalah inkremental yang dilakukan
  //   agar perulangan bisa selesai
  index += 1;
}

Perulangan break

  • Baik perulangan for ... maupun while ... bisa dihentikan di tengah-tengah
  • Bisa menggunakan break maupun continue
  • Yang diajarkan di sini adalah break saja
  • Cara menghentikan perulangan dengan menuliskan break; saja

Perulangan break (ii)

Contoh penggunaan break

// misalnya kita ingin menjumlahkan angka dari 1 sampai 10
let total = 0;
let angka = 1;

// hati hati bisa terjadi infinite loop
while (true) {
  total += angka;
  angka += 1;
  // jika angka sudah lebih dari 10
  if (angka > 10) {
    // kondisi while akan stop bila angka > 10
    break;
  }
}

QnA

Waktunya Tantangan

Klik di sini

Referensi

  • https://shawnr.gitbooks.io/practical-introduction-to-javascript/content/controlling-logical-flow/
  • https://cleverbeagle.com/blog/articles/what-is-conditional-logic-and-control-flow-in-javascript
  • https://www.javascript.com/learn/conditionals
  • https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks
  • https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Loops_and_iteration
withered-flowers (2022)