Halo teman-teman semua, apa kabar? Kembali lagi di seri Belajar Computational Thinking bersama saya Sandika Gali. Dan di episode kali ini, di episode kelima, kita akan kembali membahas sebuah latihan.
Kali ini latihannya cukup seru nih, teman-teman. Judul dari latihannya adalah Memasang Keramik. Nah, bagaimana cara kita masang keramik? Mari kita lihat detail dari soalnya dulu ya. Oke, jadi detail soalnya seperti ini, teman-teman.
Yang pertama, diketahui sebuah lantai dengan ukuran 2xn. Jadi 2 baris dan n kolom. Oke? Nanti lantai tersebut akan dipasang keramik yang ukuran keramiknya itu udah di set di awal yaitu 2x1. 2 kolom ke 1 kolom.
Contohnya kalau misalnya kita punya N-nya 4 ya berarti 2x4. Kita punya ruangan dengan jumlah keramik 2x4. Tampilnya begini. Dan kita punya yang di sebelah kanan itu adalah keramiknya. Oke teman-teman ya perhatikan ukuran ruangan yang sebelah kiri, ukuran keramiknya yang sebelah kanan.
Pertanyaannya adalah. Ada berapa jumlah kemungkinan kombinasi susunan pemasangan keramik yang bisa kita lakukan terhadap ruangan ini? Ya, silahkan di-pause dulu videonya, lalu silahkan dicoba-coba kira-kira ada berapa sih kombinasinya. Silahkan kalian coba simulasikan, tempel-tempelin tuh keramiknya.
Satu susunan keramik itu berarti satu kombinasi. Ya, pause videonya. Kalau udah punya jumlahnya, nanti kita akan bahas bareng-bareng.
Oke, teman-teman ya, kita coba bahas. Nih, yang pertama, kita akan coba susunan keramiknya. Yang paling gampang kebayang dulu aja ya. Ini misalkan saya punya keramiknya.
Saya pindahin ke sini. Saya bikin semuanya vertikal. Ini keramik yang pertama. Saya duplikat. Ini keramik yang kedua.
Saya duplikat lagi. Ini keramik yang ketiga. Saya duplikat lagi.
Ini keramik yang keempat. Udah penuh semuanya. Nggak ada tersisa. Petak kosong. Nah berarti ini adalah satu kombinasi.
Satu. Ingat-ingat ya. Jadi yang pertama semuanya vertikal seperti ini.
Yang kedua, setelah disusun, kita bisa bikin semuanya horizontal. Jadi ada 4 keramik, kita susun seperti ini. Penuh, tidak ada sisanya.
Oke, jadi ini 2. Yang ketiga, kita bisa bikin kombinasi. Ada yang vertikalnya, ada yang horizontalnya. Ini kombinasi yang pertama.
Jadi ada 3 tuh sekarang. Berikutnya, kombinasi kedua. Dibalik horizontal dulu, baru vertical.
Dan yang terakhir, kombinasi tapi diawali yang pertama vertical, horizontal 2, lalu vertical lagi. Udah, itu yang kelima. Ada lagi nggak?
Kayaknya nggak ada lagi. Jadi itu maksimal kombinasi yang bisa kita lakukan untuk membuat keramik di ruangan ukuran 2x4. Aman ya?
Jadi total ada 5 kombinasi yang bisa kita lakukan. Sama jawabannya? Oke, mantap ya.
Sekarang kalau misalnya M-nya 5. Ruangannya sekarang berubah jadi 2x5. Coba ada berapa kombinasi yang bisa kita lakukan? Silahkan pause videonya terus cobain. Oke, udah? Ada berapa kira-kira?
Jawabannya? Ada 8 kombinasi teman-teman Coba lihat sama gak? Kita punya 8 Semuanya vertikal Kombinasi Ya ada yang 1 vertikal Sisanya horizontal 3 vertikal Sisanya horizontal Dan seterusnya Coba dilihat Sama gak?
Kalau sama mantap ya Jadi kalau misalnya N yang 5 Ada 8 kombinasi Berikutnya Kalau 6 gimana? Wah makin repot nih Makin lama kayaknya kalian nyobainnya ya Tapi sebelumnya nih Sebelum kita cobain yang 6 Coba kita pelajari dulu polanya teman-teman Ada polanya gak? dari apa yang sudah kita buat tadi. Gimana kalau kita mundur dulu?
Kan kita udah tahu 4, kita udah tahu 5. Sekarang kita mundur, gimana kalau kita pelajari sisanya? 3, 2, dan 1, ya? Yang udah kita tahu, kalau N-nya 5, kita punya 8 kombinasi.
Kalau N-nya 4, kita punya 5 kombinasi. Bener nggak? Sekarang kalau 3 berapa? Kalau 2 berapa? Kalau 1 berapa?
Sebelum nanti kita dapetin, atau coba cari tahu yang 6. Siapa tahu setelah kita pelajari, ada polanya nanti. Oke, kita coba ya. Kalau 3 gimana, teman-teman?
Kayaknya gampang ya. 3 itu hanya ada 3 kombinasi Lihat, kalau nggak seperti ini Ada yang vertikal, lalu horizontal, atau kebalikannya Selain ini kayaknya nggak ada lagi ya Untuk 3 gampang ya Untuk 2 lebih gampang lagi Ada berapa? Hanya ada 2 kombinasi Kalau nggak vertikal, ya horizontal Nggak ada lagi Kalau N-nya 1 Kayaknya nggak bisa ditanya ya Hanya ada 1 kombinasi Karena pasti ukurannya sama dengan keramiknya Kan 2 kali N ya.
N-nya 1, 2 kali 1. Kebetulan keramik kita juga 2 kali 1. Jadi pas nempel gitu. Sip ya. Jadi kita udah tahu 1, 2, 3, 4, 5. Coba sekarang kita lihat polanya. Berarti kita udah tahu kalau 1 itu 1. Kalau 2 itu 2 kombinasi. Kalau 3 itu 3 kombinasi.
Kalau 4, 5 kombinasi. Dan kalau 5, 8 kombinasi. Coba sekarang perhatikan.
Apa yang bisa kita simpulkan dari pola ini? 1, 2, 3, 5, 8. Perhatikan baik-baik. Ada polanya nggak?
Kalau kurang gede, kita lihat lebih gede nih. Ada polanya nggak, teman-teman? Kalau ada yang belum dapat klunya, saya kasih tanda panah ya. Siapa tahu bisa menambahin klunya. Lihat, ini panah yang pertama.
Ini panah yang kedua. Ini panah yang ketiga. Udah dapet polanya? Harusnya udah ya. Jadi kita lihat.
Kalau kita jumlahkan angka ke satu dan angka ke dua, itu dapet angka ketiga. Kalau kita jumlahkan angka ke dua dengan angka ke tiga, itu dapet angka ke empat. Dan kalau kita jumlahkan angka ke tiga dengan angka ke empat, itu dapet angka ke lima.
Sehingga abis ini harusnya kalian tau dong. Tanpa melakukan kombinasi atau mindah-mindahin keramik tadi, harusnya udah tau ini jawabannya berapa. Jadi jawabannya adalah 13. Kalau teman-teman nggak percaya, silahkan cobain aja ya.
Atur-atur jumlah keramiknya, pasti maksimal itu 13. Dan kalau teman-teman tahu, pola angka ini itu ada namanya. Jadi pola angka ini disebut dengan bilangan Fibonacci, teman-teman. Nah ini adalah bilangan yang sering banget muncul sebagai latihan di soal-soal pemrograman.
Seringkali juga menjadi... Soal-soal untuk interview ketika kita mau melamar kerja sebagai seorang programmer ya. Bilangan Fibonacci itu adalah bilangan yang polanya seperti tadi ya. Menjumlahkan dua bilangan sebelumnya.
Kalau teman-teman pernah lihat ilustrasi seperti ini. Nah ini adalah ilustrasi dari bilangan Fibonacci. 1 tambah 1, 2. 2 tambah 3, 5. 3 tambah 5, 8. 8 tambah 13, 21. 21 tambah 13, 34. Ya ini bilangan lengkapnya.
Oke ya jadi itu tadi kita udah dapet polanya. Jadi kita udah tau nih, mau dapet ruangan yang ukurannya berapapun, selama dia 2 ke N, harusnya temen-temen udah tau berapa polanya. Nah tapi, kayaknya kurang seru kalau misalnya kita nggak coba gimana cara bikin dalam program sederhananya.
Ya, jadi sekarang mari kita coba bikin lagi dengan menggunakan bahasa pemrograman JavaScript lagi. Ya, jadi silahkan temen-temen buka kembali Visual Studio Code-nya. Oke, silahkan dibuka lagi VS Code-nya.
Saya udah buka Explorer-nya di dalam folder chat-nya kita. Kita akan bikin folder baru. Kita kasih nama sekarang 3-vibonacci ya.
C nya 2. Seperti biasa juga di dalamnya kita akan bikin sebuah file HTML. Kita kasih nama index.html. Oke kita tutup lagi explorernya. Kita ketik tanda seru.
Lalu kita tulis titelnya vibonacci. Lalu kita bikin di dalam bodinya tag script. Oke, mari sekarang kita tulis. Oke, jadi untuk membuat rangkaian bilangan Fibonacci atau deret Fibonacci, tadi kita tahu bahwa dasarnya itu adalah bilangan pertama dan bilangan kedua. Itu bilangan pertama dan keduanya udah pasti.
Untuk deret Fibonacci itu ada yang bilangan pertamanya 0, ada yang bilangan pertamanya 1. Tapi untuk kasus kita, itu bilangan pertamanya 1. Karena kalau bilangannya 0 aneh ya, kita punya sebuah ruangan yang nggak ada dimensinya. Tapi pahami bahwa deret Fibonacci ada yang bisa dimulai dari 0. Nah jadi cara bikinnya kita harus dekomposisi dulu semua elemen yang kita butuhkan. Kalau pakai javascript berarti kita butuh beberapa variable. Ya anggap aja kita bikin sebuah variable untuk menampung nilai yang pertama. Saya sebut dengan n1.
Kita isi dengan angka 1. Berikutnya kita buat variable yang namanya n2 untuk ngisi angka kedua. Karena angka pertama dan kedua itu udah pasti 1 dan 2 ya. Angka ketiga baru hasil kalkulasi dari n1 ditambah n2.
Tapi kalau misalkan teman-teman pengen dapetin angkanya secara berurutan, kita butuh yang namanya pengulangan ya. Jadi kita butuh pengulangan, kita bisa gunakan for, untuk mengetahui kalian pengennya deretnya sampai berapa digit. Kalau 3 digit berarti 1, 2, 3. Kalau 4 digit berarti 1, 2, 3, 5. Kalau 100 digit, nah kita suruh si pengulangan yang ngitungin. Jadi kita punya let i sama dengan 1. Lalu kita punya i lebih kecil sama dengan kita mau berapa kali. Misalnya kita mau 5 kali aja ya.
Nanti kita kasih angka 5 di sini. Lalu i plus plus. Nah berikutnya proses kalkulasinya atau logikanya ada di dalam for-nya. Nah untuk melakukan itu kita butuh sebuah variable tempat penyimpanan sementara. Karena kita butuh tahu setelah 2 itu angka berapa.
Kita bikin aja sebuah variable bantuan. Kita kasih nama next untuk tahu nilai berikutnya berapa. Awalnya kita kasih 0 dulu.
Baru kita lakukan perhitungannya di sini. Pertama, yang saya mau cetak adalah N1. Jadi teman-teman boleh cetak ke layar atau ke konsol.
N1. Nah nanti semakin pengulangannya berjalan, N1-nya itu akan selalu berubah. Ya karena kan awalnya N1-nya itu 1, N2-nya 2. Setelah pengulangan, nanti N1-nya itu geser jadi 2 dan seterusnya. Nah proses logikanya ada di sini.
Pertama, next itu bilangan ketiga di pengulangan yang pertama. Itu akan berisi penjumlahan antara N1 ditambah N2. Ya kan? Bilangan ketiga itu penjumlahan antara bilangan ke satu dan ke dua. Sudah dapat nih bilangan ketiganya.
Setelah itu kita geser. Ya kan? Karena kita pengennya sekarang bilangan ke satunya mulai dari dua.
Berarti kita timpa. N1 kita timpa dengan N2. N2 kita timpa dengan next. Nah ini logika paling sederhana untuk membuat bilangan Fibonacci. Mari kita lihat.
Kita save dulu. Mari kita buka di browser kita ya. Sekarang kita udah punya folder 3 Fibonacci.
Buka file index. Nih masih kosong ya. Kalau pengen lihat teman-teman lihatnya pakai tombol F12.
Atau klik kanan inspect. Nah lihat tuh. Langsung muncul bilangan Fibonacci-nya. 1, 2, 3, 5, 8. Nah dengan logika ini kita jadi bisa tahu.
Kalau pengen lihat urutan bilangan Fibonacci yang keberapapun. Saya pengennya ke 50. Yaudah langsung dihitungin sama programnya. Kalau kita lihat lagi, kita refresh. Langsung dapet ya. 1, 2, 3, 5, 8, 13, 2, 1, 3, 4, dan seterusnya tuh.
Sampai berapa jutaan ya? Ratusan juta. Jadi kita nggak perlu ngitung manual. Udah dihitungin sama programnya.
Kerennya kalau kita bikin program tuh seperti itu. Logikanya udah bener untuk 1, 2, 3 pengulangan. Mau ratusan, bahkan ribuan pengulangan berikutnya. Udah pasti bener.
Kalau teman-teman mau bikin ini. menjadi lebih modular, kita abstraksi lagi menjadi sebuah function juga bisa sama seperti video sebelumnya, kita bikin function namanya Fibonacci kita kasih mau Fibonacci angka keberapa, atau pengulangannya mau berapa kali, kita kasih kurung-kurung awal buka, tutupnya hapus kita pindahin ke paling bawah kesini, jangan lupa dirapihin, digeser ganti angka 50 nya jadi num, jadi kita kalau pengen tau tinggal panggil Fibonacci Mau yang keberapa? 20 misalnya ya.
Udah. Save. Kita balik ke sini. Refresh.
Dapet sampai ke 20. Mau yang ke 5? Save. Refresh.
Dapet sampai yang ke 5. Nah untuk membuat bilangan Fibonacci, kita bisa menggunakan sebuah konsep di dalam pemrograman yang namanya rekursi. Atau kita akan bikin sebuah kode yang rekursif. Apa itu rekursif? Itu adalah sebuah fungsi yang di dalamnya memanggil dirinya sendiri.
Nah ini kita bisa bikin. algoritma Fibonacci kita lebih ringkas lagi daripada yang udah kita tulis tadi. Kita coba ya, teman-teman ya.
Kita kembali ke kodenya. Sekarang gini, sekarang kita akan ganti function-nya, tapi saya nggak akan hapus. Jadi teman-teman bisa block aja kodenya.
Kita akan buat dia sebagai sebuah komentar. Komentar adalah baris-baris kode yang tidak akan dieksekusi oleh programnya. Jadi setelah di-block, teman-teman boleh pencet control, tahan control, lalu slash, garis miring ya, yang ada di tombol tanda tanya.
Nanti dia tidak akan dieksekusi seperti ini. Jadi kodenya mati lah istilahnya ya. Cara bikinnya.
Itu kita bisa bikin sebuah fungsi lagi ya. Namanya Fibonacci. Kita kasih num sama.
Tapi isinya. Kita nggak menuliskan baris per baris seperti ini. Kita akan lakukan gini. Kita akan gunakan sebuah pengkondisian namanya if. Jadi jika bilangannya itu lebih kecil sama dengan 2. Maka kita akan kembalikan nilai numnya.
Jadi kalau angkanya 2. Kembalikan angka 2, kalau angkanya 1, kembalikan angka 1. Jadi tulis gini, num. Atau kalau mau lebih gampang, kita tulis return aja ya. Return num.
Tapi selain dari itu, jika nilainya di atas 2, else, selain itu, kita akan return Fibonacci. Jadi kita panggil lagi fungsinya sekali lagi, dengan parameter num dikurangi 1, jadi yang tadinya 3 jadi 2, ditambah... Dengan Fibonacci, num dikurangi 2. Jadi dia akan menjumlahkan Fibonacci bilangan sebelumnya dan bilangan sebelumnya lagi. Nah, jadi cukup nulisnya kayak gini aja.
Sehingga kita sekarang bisa tahu Fibonacci bilangan kelima itu berapa. Coba kita tulis pakai konsol ya. Konsol.log.
Supaya ada kelihatan hasilnya. Save. Lalu kita kembali ke browser, kita refresh. Tuh, langsung tahu ya.
Fibonacci bilangan kelima adalah 8. Fibonacci bilangan ke 20 kalau kita ganti itu adalah 10.946. Kalau pengen ditampilin berderet lagi seperti tadi. Kita tinggal masukkan ke dalam looping lagi aja.
Jadi teman-teman boleh 4 let i sama dengan 1 i lebih kecil. Sama dengan mau berapa nih? Sama dengan misalnya 10. Pengen deretnya 10 kali.
I++. Kita kasih kurung kurawal. Kita masukin ini ke dalam.
Sekarang diganti angka 20-nya jadi i. Ini sama hasilnya. Kalau kita refresh, tampilnya sama ya. Tapi bedanya sekarang menggunakan teknik rekursi.
Fungsi yang memanggil fungsi yang sama di dalamnya. Jadi di dalamnya manggil lagi, manggil lagi, manggil lagi. Keren ya. Dan bahkan ini bisa kita bikin lebih ringkas lagi.
Kalau teman-teman sudah tahu teknik javascript yang modern, kita bisa bikin menggunakan yang namanya arrow function. ya inilah teknik yang cukup lanjutan buat teman-teman yang baru belajar sepertinya ini masih jauh perjalanannya tapi disini teman-teman bisa lihat bahwa sesuatu yang tadinya ada berapa baris begini bisa kita ringkas menjadi lebih singkat kodenya ini disebut dengan teknik refactoring menyingkat kode ya kita misalnya ganti namanya jadi fib ya bukan fibonacci biar singkat aja dia berisi num kasih panah ini buat mengganti keyword function yang tadinya disebut dengan function declaration dan ini juga dengan function declaration menjadi arrow function lalu berisi dengan jika num lebih kecil sama dengan 2 maka kembalikan nilai num kayak gini ya jika num lebih kecil dari 2 kembalikan num tapi selain dari itu ini menggunakan teknik yang namanya ternari operator ternari nanti kita akan bahas ketika masuk ke javascript kita panggil fib dengan num minus 1 ditambah panggil fib num minus 2 ya Sama seperti ini. Jadi return fib nu-1 dan fib nu-2.
Oke, dan jangan lupa sekarang namanya udah fib. Begitu kita manggil ini harusnya fib juga. Oke, kalau sudah kita save.
Kita lihat hasilnya. Kita refresh. Sama aja ya. Jadi yang tadinya ini berapa baris? 1, 2, 3, 4, 5, 6, 7. Berubah menjadi hanya satu baris aja.
Menggunakan teknik rekursif dan juga teknik refactoring. Oke teman-teman, jadi itu tadi latihan kita mengimplementasikan konsep computational thinking dari bilangan Fibonacci yang menurut saya cukup penting untuk kita pelajari. Terutama kalau teman-teman memang mau belajar pemrograman. Ya dan kita juga tadi sudah memahami beberapa konsep dari pemrograman. Ada rekursif dan juga refactoring.
Sehingga harusnya teman-teman sekarang dapat gambaran kira-kira ke depannya programming itu akan seperti apa. Ya, jadi itu aja untuk latihan kita kali ini. Terima kasih teman-teman sudah menyaksikan, mudah-mudahan videonya bermanfaat. Saya Sadiqa Ghali pamit dan sampai ketemu lagi di video berikutnya.