B. Berpikir Komputasional
Berpikir komputasional ini merupakan suatu kerangka dan proses berpikir yang mencakup perangkat keras, perangkat lunak, dan menalar (reasoning) mengenai sistem dan persoalan. Moda berpikir (thinking mode) ini didukung dan dilengkapi dengan pengetahuan teoritis dan praktis, serta teknik untuk menganalisis, memodelkan dan menyelesaikan persoalan. Berikut ini pembahasan beberapa konsep dan strategi berpikir komputasional yang biasa digunakan dalam menyelesaikan persoalan komputasi.
1. Rekursi
Pada bagian ini kalian akan mempelajari tentang konsep rekursi dan beberapa contoh permasalahan yang dapat diselesaikan dengan menggunakan konsep tersebut, salah satunya adalah barisan Fibonacci.
Suatu masalah dapat didekomposisi menjadi permasalahan yang serupa, namun ukurannya lebih kecil. Saat kita diminta untuk memindahkan satu kardus buku yang sangat berat dan tidak dapat kita angkat, kita akan membagi kardus tersebut ke dalam beberapa kardus yang lebih ringan sehingga pekerjaan tersebut menjadi lebih mudah untuk dikerjakan. Ketika menghitung suatu nilai faktorial, kita pun harus menghitung nilai faktorial yang lebih kecil. Misalnya, ketika menghitung 10 faktorial, kita juga harus menyelesaikan 1 faktorial, 2 faktorial, hingga 9 faktorial terlebih dahulu.
Secara alami, terdapat banyak permasalahan yang dapat dimodelkan dengan lebih mudah menggunakan konsep rekursif ini. Pada bagian ini, kalian akan mempelajari konsep dasar rekursi yang akan sangat berguna untuk melakukan dekomposisi pada suatu permasalahan besar dalam bentuk permasalahan yang lebih kecil dan lebih mudah untuk diselesaikan. Rekursi didefinisikan sebagai “sesuatu” yang mengandung “sesuatu” itu sendiri.
Dalam pembahasan kali ini, kita akan membahas fungsi/barisan rekurensi (recurrence) yaitu fungsi/barisan dimana nilai dari fungsi/barisan itu sendiri secara rekursif, pada urutan nilai-nilai sebelumnya. Misalnya, kita memiliki sebuah barisan ai,i=1,2,…,n sebagai berikut:
![]()
Dimana nilai pertama dari barisan (a1) adalah 1, dan kemudian nilai-nilai berikutnya dalam barisan tersebut dihitung dengan cara menambahkan nilai 2 kepada nilai barisan sebelumnya.
Kita dapat menuliskan dalam notasi rekursif sebagai berikut:

Pada definisi sebuah barisan/fungsi rekursif, selalu ada minimal dua hal yang harus ditentukan, yaitu:
- Basis: menunjukkan dasar/nilai awal dari fungsi/barisan tersebut. Misalnya, pada contoh di atas, a1=1
- Rekursi: menunjukkan hubungan antara nilai dari fungsi/barisan tersebut dengan nilai-nilai sebelumnya yang telah diketahui. Misalnya, pada contoh di atas: ai=ai-1+2, jika i > 1.
(15 September)
Sebuah fungsi/barisan rekursif bisa jadi ditentukan dari tidak hanya satu buah nilai sebelumnya saja, tetapi dapat juga dari 2, 3, … dan seterusnya, nilai sebelumnya. Sebagai contoh sebuah barisan dapat didefinisikan sebagai berikut:

Barisan di atas biasa disebut sebagai barisan Fibonacci, karena dipopulerkan oleh seorang matematikawan Italia bernama Fibonacci (nama lengkap Leonardo Bonacci, 1170 – 1250 M). Perlu diperhatikan bahwa karena pada bagian rekursi, kita memerlukan dua nilai terakhir, pada bagian basis, kita perlu mendefinisikan dua nilai pertama dari barisan tersebut. Secara umum, banyaknya nilai yang harus didefinisikan pada bagian basis ditentukan oleh banyaknya suku barisan yang diperlukan pada bagian definisi rekursi.