Deploy Machine Learning App ke Web dengan Heroku (Part 1)

Muhammad Sifa’ul Rizky
Curious with Data
Published in
5 min readJun 23, 2020
Machine Learning App

Selamat datang di publikasi pertama saya, Curious with Data, jadi ini adalah project terbaru saya dimana akan ada beberapa artikel yang memiliki karakteristik yang hampir sama dengan story saya pada umumnya, silahkan cek di sini jika belum familiar. Setelah sekian lama akhirnya menulis dalam Bahasa, jadi disini saya akan mencoba membuat dalam bahasa atau English. Jadi bisa sambil belajar juga buat para pembaca.

Kali ini yang akan saya bawakan adalah bagaimana deploy aplikasi ke web dengan Heroku. Sebelumnya ada banyak sekali istilah yang cukup asing buat sebagian besar orang. Saya jelaskan secara singkat, jadi Deployment adalah kegiatan yang bertujuan untuk menyebarkan aplikasi yang telah dikerjakan oleh para orang-orang yang ahli di bidang programmer. (Sepulsa) Jadi intinya adalah menaruh aplikasi yang kita buat agar orang-orang dapat mengakses, disini saya hanya akan fokus ke bagaimana menaruh di web saja.

Heroku

Kemudian Heroku itu apa? Secara singkat, Heroku adalah cloud platform as a services yang support berbagai macam bahasa pemrograman. Jadi bisa dibilang adalah tempat untuk menaruh aplikasi. Mengapa Heroku? Karena menurut saya disini adalah langkah awal jika kita ingin aplikasi yang kita buat bisa diakses sama orang lain. Di sini aplikasi yang akan ditaruh adalah Machine Learning app yang sudah dibuat dengan Python menggunakan bantuan Streamlit. Kalau belum tahu bisa cek step-by-stepnya di sini.

Sudah ada banyak sekali artikel yang membahas tentang ini, namun saya buat kembali karena aplikasi yang digunakan Python dan Streamlit package yang sedikit membuat deployment berbeda. Di sini saya juga akan membuat part terpisah karena disini akan lebih fokus ke apa saja yang dibutuhkan untuk deployment sedangkan di part selanjutnya akan lebih ke Heroku nya sendiri.

Apa saja yang dibutuhkan?

Akun Github

Github

Bagi sebagian orang yang memang backgroundnya teknologi pasti familiar dengan yang satu ini, namun bagi yang belum tahu, GitHub adalah manajemen proyek dan sistem versioning code sekaligus platform jaringan sosial yang dirancang khusus bagi para developer. Istilahnya ini adalah tempat untuk menaruh project kita.

Bagi yang punya akun Github bisa langsung ke step selanjutnya, jika belum, kalian bisa buat di website Github di sini. Gratis.

Aplikasi Git

Jika sudah memiliki akun Github, tidak lengkap rasanya bila tidak donwload Git ke laptop/ komputer kita, jadi pada dasarnya Git adalah version control system yang membuat kita dapat mengatur versi dari project kita, sedangkan Github adalah tempat untuk mengatur Git repo kita. Jadi pentingnya kita memiliki Git skill supaya dapat memonitor apakah ada masalah sehingga diperlukan version control.

Untuk download serta instalasinya bisa di website Git di sini. Jika sudah berhasil maka tampilannya akan seperti ini.

Git Bash

Akun Heroku

Tentunya karena ingin deploy ke Heroku maka harus memiliki akun di tempat tersebut. Untuk membuat akun cukup mudah dan dapat diakses di sini. Saat ini Heroku sudah support berbagai macam bahasa pemrograman seperti Node.js, Java hingga Python yang akan kita deploy nantinya. Bila sudah memiliki akun maka akan diarahkan ke dashboard Heroku seperti ini. Tampilannya akan berbeda karena saya sudah memiliki beberapa aplikasi, jika baru mendaftar maka tampilan Personal ini akan kosong dan kalian siap untuk deploy ke Heroku.

Dashboard of Heroku Apps

Anaconda Navigator/ Miniconda Navigator

Cukup jelas karena kalian membutuhkan Anaconda Navigator untuk menjalankan Jupyter Notebook, walaupun sebenarnya jika dirasa terlalu berat maka bisa menggunakan Miniconda Navigator atau hanya Python saja. Perbedaan paling mendasar adalah pada package yang tersedia, jika Anaconda Navigator memiliki package yang sangat amat banyak, sedangkan Miniconda Navigator adalah versi lite dari Anaconda, kalau Python saja berarti package seperti Numpy atau Pandas harus di install secara manual.

Untuk download Anaconda Navigator atau Miniconda Navigator bisa cek disini dan disini. Satu hal yang cukup penting adalah download code editor favorit kalian seperti Atom, Visual Studio dan semacamnya agar bisa membuka .py file untuk aplikasi Streamlit nya.

Virtual Environment (Optional)

Jika sudah terbiasa dengan Anaconda atau Miniconda step ini menjadi cukup seru dan penting karena virtual environment sebagai hal untuk membuat isolated project berdasarkan aplikasi/ program yang kita buat. Jadi apa fungsinya virtual environment? Misal ada dua project yang sedang kita lakukan, aplikasi A membutuhkan package_trial dengan versi 1.0.0 sedangkan aplikasi B membutuhkan package_trial versi 2.0.0 keatas. Dengan satu environment saja (default) maka aplikasi A tidak bisa dijalankan karena default dari package_trial adalah versi 2.0.0. Jadi dibutuhkan virtual environment agar untuk aplikasi A pakai versi 1.0.0 sedangkan B menggunakan versi 2.0.0 .

Untuk menggunakan virtual environment bisa cek artikel di sini.

Mungkin itu saja hal penting yang harus dimiliki sebelum kita akan deploy machine learning app yang sudah dibuat ke Heroku agar dapat diakses oleh orang lain. Part 2 akan berfokus pada apa saja yang harus dilakukan agar dapat terlaksana dengan baik, sambil menunggu bisa baca artikel menarik di sini, jika dirasakan bermanfaat silahkan follow atau berikan claps, serta subscribe newsletternya supaya ketika ada konten terbaru mengenai data bisa langsung diakses via email. Dukungan semacam ini saya butuhkan sebagai content creator supaya dapat menulis hal yang informatif serta bermanfaat buat para pembaca. Vielen Dank!

--

--