Pendahuluan: Algoritma, Google Sheets, Python, dan Google Collaboratory
Pengenalan tentang algoritma, google sheets, bahasa pemrograman Python, dan google collaboratory
Ada beberapa konsep yang harus kalian dipahami terlebih dahulu sebelum melangkah ke praktikum biokomputasi dasar. Pertama, kalian harus memahami tentang algoritma dan pemrograman. Kedua, kalian harus mengerti tentang Google Sheets sebagai online spreadsheets berbasis cloud yang sangat cocok untuk kolaborasi. Ketiga, kalian juga harus memahami Python sebagai bahasa pemrograman yang akan digunakan nantinya. Terakhir, kalian harus memahami tentang Google Collaboratory sebagai notebook online berbasis cloud untuk menjalankan kode Python.
Daftar isi:
1. Algoritma dan Pemrograman
2. Google Sheets
3. Bahasa Pemrograman Python
4. Google Collaboratory
1. Algoritma dan Pemrograman
Algoritma merupakan sekumpulan instruksi atau langkah demi langkah yang tidak ambigu, yang diberikan beberapa set kondisi awal, dapat dilakukan dalam urutan yang ditentukan untuk mencapai tujuan tertentu, dan yang memiliki serangkaian kondisi akhir yang dapat dikenali [1]. Fungsi algoritma adalah untuk memecahakan suatu permasalahan yang terjadi. Jadi, dapat dikatakan bahwa algoritma merupakan sebuah solusi.
Program merupakan urutan intruksi yang menentukan bagaimana melakukan komputasi [3]. Sedangkan pemrograman merupakan proses mengambil suatu algoritma dan mengodekannya ke dalam notasi atau bahasa pemrograman tertentu, sehingga dapat dijalankan oleh komputer [6].
“Tanpa algoritma tidak akan pernah ada program.”
Ada beberapa intruksi dasar yang selalu muncul di sebuah program:
- Input: masukan data
- Output: menampilkan data
- Math: operasi matematika dasar
- Conditional execution: sebuah kondisi untuk mengatur kode yang akan dieksekusi
- Repetition: tindakan perulangan
Sangat penting untuk belajar tentang algoritma dan pemrograman. Dengan mempelajari algoritma, kita dapat mempelajari teknik analisis yang memungkinkan kita untuk membandingkan dan membedakan solusi hanya berdasarkan karakteristiknya sendiri, bukan karakteristik program atau komputer yang digunakan untuk mengimplementasikannya [6].
Sedangkan, dengan mempelajari pemrograman, kita dapat mengimplementasikan algoritma tersebut menjadi sebuah program atau aplikasi yang dapat membantu orang lain dalam memecahkan suatu permasalahan.
Contoh algoritma
Ada berbagai macam algoitma di dunia ini, bahkan setiap hari akan selalu ada algoritma baru yang lahir. Tidak semua algoritma dapat kita gunakan untuk memecahkan permasalahan yang sama. Setiap algoritma memiliki fungsi dan performa yang berbeda-beda. Untuk mengukur performa algoritma, kita dapat menggunakan notasi Big O. Notasi Big O adalah notasi khusus yang digunakan untuk mengukur seberapa cepat suatu algoritma [2].
Kami akan mencontohkan penggunaan algoritma untuk memecahkan suatu permasalahan yang berhubungan dengan pencarian. Di sini, kami hanya akan menggunakan algoritma simple search dan binary search.
Bayangkan kita disuruh menembak sebuah angka dari jangkauan 1–100. Jika kita menggunakan algoritma simple search, maka akan membutuhkan banyak langkah (sembilan puluh sembilan langkah jika angka yang dimaksudkan 99) dan cara ini akan mengeliminasi angka demi angka dimana itu sangat tidak efektif. Binary search dimulai dengan nilai tengah, jika tebakannya salah tetapi algoritma ini sudah mengeliminasi setengah langkah dan cara ini akan diulang terus menerus dengan pencarian berdasarkan nilai tengah (setiap langkah akan selalu mengeliminasi setengah langkah yang tersisa).
Dalam kebanyakan kasus pencarian, algoritma binary search memiliki performa yang lebih baik dibandingkan dengan algoritma simple search.
Untuk implementasi algoritma binary search menggunakan bahasa pemrograman Python, dapat kalian lihat dibawah ini:
Visualisasi algoritma menggunakan flowchart
Beberapa algoritma mungkin akan membutuhkan banyak langkah sebelum dapat menyelesaikan suatu masalah. Mungkin akan sedikit membingungkan jika kita hanya menulis langkah demi langkah dari suatu algoritma. Visualisasi algoritma dengan flowchart adalah solusi dari permasalahan tersebut.
Flowchart atau diagram alur adalah representasi visual dari urutan langkah demi langkah dan keputusan untuk melakukan setiap proses [4]. Flowchart terdiri dari berbagai simbol yang masing masing menggambarkan hal yang berbeda. Dalam hal ini, berbagai jenis tindakan atau langkah dalam suatu proses akan direpresentasikan menggunakan bentuk atau simbol khusus. Kemudian, garis dan panah menunjukkan urutan langkah demi langkah dan hubungan di antara mereka.
Dalam pembuatan sebuah flowchart, kalian harus memerhatikan setiap penggunaan dari simbol-simbol tersebut. Ketika kalian sudah memahami makna dari setiap simbol tersebut, cukup kombinasikan simbol-simbol tersebut sehingga menjadi sebuah flowchart.
Ada beberapa website yang kami rekomendasikan untuk membantu kalian dalam membuat sebuah flowchart. Website tersebut, antara lain Visual Paradigm, Lucid Chard, Canva, Smartdraw, dll.
Kontribusi biologi di bidang algoritma
Sampai saat ini, terdapat banyak jenis algoritma. Beberapa diantara algoritma tersebut, terdapat 2 algoritma populer yang terinspirasi dari ilmu biologi, yaitu algoritma jaringan saraf buatan (neural networks) dan algoritma genetika (genetic algorithm).
Neural networks atau artificial neural networks merupakan sebuah algoritma yang digunakan sebagai dasar dari deep learning. Juga, algoritma ini merupakan solusi dari permasalahan AI yang kompleks. Neural networks terdiri dari beberapa node (neuron) yang saling terhubung satu sama lain. Struktur sederhana dari algoritma ini terdiri dari input layer, hidden layer, dan output layer. Sampai sekarang ini, algoritma neural networks banyak dimanfaatkan untuk kecerdasan buatan seperti speech recognition, machine translation, face detection, image generation, dll.
Genetic algorithm merupakan algoritma pencarian (metaheuristik) yang terinspirasi dari proses seleksi alam dan termasuk ke dalam algoritma evolusioner. Algoritma ini bisa berkembang menjadi lebih baik (berevolusi) seiring dengan kinerja dari algoritma ini. Genetic algorithm banyak diimplentasikan untuk menyelesaikan permasalahan optimasi dan pencarian [5].
2. Google Sheets
Beberapa dari kalian mungkin lebih familiar dengan Microrsoft Excel daripada Google Sheets. Google Sheets mirip dengan Microsoft Excel karena sama-sama merupakan aplikasi spreadsheet. Akan tetapi, tidak seperti Microsoft Excel yang mengharuskan melakukan instalisasi (dekstop) dan membeli lisensi produk terlebih dahulu sebelum dapat digunakan, Google Sheets merupakan aplikasi spreadsheet berbasis cloud dan gratis yang dapat diakses secara online.
Kalian hanya memerlukan web browser, akun Gmail, dan koneksi internet untuk dapat menggunakan Google Sheets. Salah satu fitur paling menonjol dari Google Sheets adalah dapat melakukan kolaborasi. Jadi, kalian dapat mengerjakan bersama-sama dengan teman kalian dalam satu workbook yang sama secara realtime.
Ada beberapa alasan kenapa kalian harus menggunakan Google Spreadsheets, antara lain gratis, kemudahan kolaborasi secara realtime, tidak memerlukan memori penyimpanan di komputer, ada teknologi AI yang memudahkan analisis data, data selalu up to date, cukup mudah digunakan, dll.
Menjalankan Google Sheets
Langkah pertama yang harus kalian lakukan sebelum dapat menggunakan Google Sheets adalah membuat akun Gmail. Akun Gmail kalian nantinya akan terintegrasi dengan Google Drive yang digunakan untuk menyimpan pekerjaan di Google Sheets nantinya.
Langkah selanjutnya, kalian harus membuat file baru terlebih dahulu disini. Setelah kalian menekan link tersebut maka akan muncul tampilan seperti dibawah ini.
Untuk membuat file baru, klik simbol plus (+) yang berada di atas tulisan “Blank”. Setelah itu akan muncul tampilan lembar kerja baru pada Google Spreadsheets.
Akan tetapi, kalian juga dapat langsung membuat lembar kerja Google Sheets baru lewat Google Drive. Pertama, masuk ke halaman Google drive kalian masing-masing disini. Kemudian, fokus pada bagian kiri atas cari tulisan “New”.
Untuk membuat lembar kerja baru, klik tulisan tersebut dan pilih Google Sheets. Terakhir, akan muncul tampilan lembar kerja baru pada Google Spreadsheets.
3. Bahasa Pemrograman Python
Python merupakan bahasa pemrograman yang diciptakan oleh Guido van Rossum pada 1991 dan sampai saat ini menjadi salah satu bahasa pemrogaman yang terpopuler [7]. Python sangat mudah untuk dipelajari dan powerfull. Hal ini karena termasuk kedalam bahasa tingkat tinggi yang memiliki struktur data efisien dan pendekatan sederhana namun efektif untuk pemrograman berorientasi objek (OOP).
Kemudian, Python juga memiliki sintaks yang elegan, dynamic typing, manajemen memori otomatis dan bahasa yang interpreted. Python dapat digunakan untuk web development (bagian server), GUI development, software development, system administration, dan ilmu data [7].
Ada beberapa alasan kenapa kalian harus menggunakan Python:
- Sintaks yang ringkas, sederhana, dan mirip seperti bahasa inggris
- Memiliki komunitas yang besar dan aktif
- Didukung oleh banyak library yang powerfull
- Dapat dijalankan pada platform yang berbeda (Windows, Mac, Linux, dll).
- Mendukung beberapa paradigma pemrograman, seperti berorientasi objek, imperatif, pemrograman fungsional, dan gaya prosedural
Akan tetapi, Python juga memiliki beberapa kekurangan:
- Kecepatan runtime yang lambat jika dibandingkan bahasa pemrograman lain seperti C, C++, dan Java
- Jika sudah belajar Python, akan sulit jika ingin berpindah ke bahasa pemrograman lain
- Memiliki konsumsi memori yang lebih banyak
- Tidak terlalu bagus untuk mobile apps (belum ada library yang mendukung)
- Akses database yang kurang bagus
4. Google Collaboratory
Untuk menjalankan kode Python kita akan memerlukan text editor atau IDE, dan menginstall Python terlebih dahulu. Akan tetapi, dengan Google Collabolatory kita tidak memerlukan semua hal tersebut. Google Collaboratory merupakan notebook online atau jupyter notebook yang di hosting dan dapat dijalankan menggunakan web browser secara online.
Hampir sama seperti Google Sheets, Google Collaboratory juga membutuhkan akun Gmail, web browser, dan koneksi internet untuk dapat dijalankan. Ada 3 kelebihan utama dari Google Collaboratory, yaitu tidak memerlukan konfigurasi apapun (penyetelan environtment), akses GPU secara gratis (terbatas untuk free user), dan mudah untuk membagikan collab notebook ke orang lain.
Menjalankan Google Collaboratory
Sama seperti Google Sheets, untuk menjalankan Google Collaboratory kalian harus memiliki akun Gmail terlebih dahulu. Langkah selanjutnya, kalian harus membuat file collab notebook baru terlebih dahulu disini. Setelah itu akan muncul tampilan seperti ini:
Selanjutnya, perhatikan bagian kiri atas dan pilih tulisan “File”. Kemudian akan muncul beberapa pilihan, seperti “Open notebook” atau “New notebook”. Kalian bebas memilih diantara kedua itu, tetapi jika kalian sebelumnya tidak memiliki collab notebook, maka kalian harus membuat yang baru dengan memilih “New notebook”.
Tidak sampai disitu, agar bisa menjalankan kode Python, kita harus menghubungkan lembar kerja kita terlebih dahulu. Untuk melakukan hal tersebut, kalian tinggal klik tombol “Connect” yang ada disebelah kanan atas. Setelah sukses atau “Connected” maka kalian sudah bisa menjalankan kode Python.
Akan tetapi, kita juga dapat membuat collab notebook baru lewat Google Drive sama seperti pada Google Sheets tadi. Langkah-langkahnya juga hampir sama, yang berbeda hanyalah memilih “Google Collaboratory” pada “New”.
Kesimpulan
Algoritma merupakan sekumpulan intruksi untuk memecahkan masalah. Pemrograman adalah tindakan mengambil algoritma dan mengodekannya ke dalam bahasa pemrograman yang pada akhirnya menjadi sebuah program. Program adalah urutan intruksi yang menentukan bagaimana melakukan komputasi. Google spreadsheet adalah salah satu contoh program yang dibangun menggunakan bahasa pemrograman. Python merupakan salah satu bahasa pemrograman multifungsi yang sangat populer saat ini. Untuk menjalankan kode Python kita memerlukan text editor atau IDE, dan instalisasi Python. Google Collaboratory merupakan aplikasi berbasis cloud atau hosted jupyter notebok yang dapat mengeksekusi kode Python hanya dengan web browser dan terkoneksi jaringan.
Daftar Pustaka:
[1] Ahmad, I. (2020). 40 Algorithms Every Programmer Should Know: Hone your problem-solving skills by learning different algorithms and their implementation in Python (1st ed.). Packt Publishing.
[2] Bhargava, Y. (2016). Grokking Algorithms: An illustrated guide for programmers and other curious people (1st ed.). Manning Publications.
[3] Downey, A. B. (2015). Think Python: How to Think Like a Computer Scientist (1st ed.). O’Reilly Media.
[4] Flowchart Symbols. Smartdraw.com. (2022). Retrieved 24 August 2022, from https://www.smartdraw.com/flowchart/flowchart-symbols.htm.
[5] Genetic algorithm — Wikipedia. En.wikipedia.org. (2022). Retrieved 24 August 2022, from https://en.wikipedia.org/wiki/Genetic_algorithm.
[6] Ranum, L., Miller, B. (2011). Problem Solving with Algorithms and Data Structures Using Python (2nd ed.). Franklin, Beedle & Associates.
[7] Welcome to Python.org. Python.org. (2022). Retrieved 25 August 2022, from https://www.python.org/.