Penggunaan Python Untuk Pemula Rahadian Irsyad Laboratorium Telematika, Sekolah Teknik Elektro & Informatika, Institut Teknologi Bandung, e-mail: [email protected]

Abstraksi— Paper ini memberikan gambaran microframework serta alasan-alasan Flask umum tentang penggunaan Python Web cocok sebagai alat untuk web development bagi Framework bernama Flask untuk pemula. Flask developer pemula. merupakan sebuah web microframework II. Web Microframework Flask berlisensi BSD, dimana Flask memiliki fleksibilitas tinggi dalam penggunaanya karena A. Flask memiliki core yang sederhana. Flask sangat Flask adalah sebuah web framework yang cocok digunakan bagi pemula dalam web ditulis dengan bahasa Python dan tergolong development karena tingkat kompleksitas yang sebagai jenis microframework [1]. Flask lebih rendah dibanding web framework lain. berfungsi sebagai kerangka kerja aplikasi dan tampilan dari suatu web. Dengan menggunakan Keywords— Web Framework, Python, Flask, Flask dan bahasa Python, pengembang dapat Web Development. membuat sebuah web yang terstruktur dan I. Pendahuluan dapat mengatur behaviour suatu web dengan lebih mudah. Pada saat ini, teknologi, terutama internet, telah berkembang sangat pesat. Perkembangan Flask termasuk pada jenis microframework yang pesat ini memunculkan peningkatan yang karena tidak memerlukan suatu alat atau sangat signifikan dari jumlah pengguna internet. pustaka tertentu dalam penggunaannya. Dari perkembangan teknologi dan peningkatan Sebagian besar fungsi dan komponen umum jumlah pengguna internet, timbul kebutuhan- seperti validasi form, database, dan sebagainya kebutuhan dan keahlian-keahlian tentang tidak terpasang secara default di Flask [2]. Hal internet, salah satunya adalah web development. ini dikarenakan fungsi dan komponen- komponen tersebut sudah disediakan oleh Web development adalah sebuah kegiatan pihak ketiga dan Flask dapat menggunakan pengembangan halaman-halaman web yang ada ekstensi yang membuat fitur dan komponen- di internet. Halaman web adalah barang utama komponen tersebut seakan diimplementasikan yang ada di internet, dimana seluruh pengguna oleh Flask sendiri. internet pasti akan mengakses suatu web tertentu yang ada di internet. Oleh sebab itu, Selain itu, meskipun Flask disebut sebagai kebutuhan akan web di internet akan terus microframework, bukan berarti Flask bertambah dan ini menimbulkan keahlian mempunyai kekurangan dalam hal tentang web development pun semakin fungsionalitas. Microframework disini berarti dibutuhkan. bahwa Flask bermaksud untuk membuat core dari aplikasi ini sesederhana mungkin tapi tetap Dengan perkembangan teknologi saat ini, dapat dengan mudah ditambahkan [2]. Dengan terdapat banyak alat untuk membantu kegiatan begitu, fleksibilitas serta skalabilitas dari Flask web development, salah satunya adalah web dapat dikatakan cukup tinggi dibandingkan framework yang dibuat menggunakan bahasa dengan framework lainnya. Python, yaitu Flask. Flask adalah sebuah alat yang membantu membuat kerangka untuk B. Installasi Flask sebuah web dan dengan menggunakan Flask, Web framework Flask ditulis menggunakan pengembang pemula pun dapat menciptakan bahasa Python, sehingga sebelum Flask dapat sebuah web yang bagus. digunakan, maka developer harus menginstall Python pada perangkat yang akan digunakan. Pada paper ini akan dijelaskan gambaran Oleh sebab itu, web developer yang akan umum Flask sebagai sebuah web menggunakan Flask sebagai web framework Setelah mengaktifkan virtual environtment, untuk web development harus setidaknya shell pada komputer akan berubah menjadi mempelajari bahasa pemrograman Python seperti ini. terlebih dahulu, sebelum dapat menggunakan (virenv)$ Flask seutuhnya. Hal ini menandakan bahwa virtual Dalam melakukan installasi Flask pada environtment telah aktif dan proyek Python sebuah perangkat, dibutuhkan PIP yang yang akan dibuat telah terisolasi dan biasanya sudah terinstall pada Python versi 3.4 mempunyai sumber dependensi tersendiri. ke atas. PIP adalah sebuah package management system yang biasa digunakan Setelah mengaktifkan virtual environtment, untuk mengatur dan menginstall package yang Flask dapat diinstall tanpa perlu berisi modul-modul Python [3]. PIP digunakan mengkhawatirkan adanya konflik dependensi untuk menginstall Flask karena Flask ditulis dengan proyek Python lainnya. Masukkan dan dikembangkan dengan bahasa dan modul- perintah ini setelah masuk dan mengaktifkan modul pemrograman Python. Dengan virtual environtment untuk menginstall Flask. menggunakan PIP, semua hal yang dibutuhkan $ pip install Flask untuk installasi Flask akan diunduh dan dipasang dalam satu perintah. Untuk memeriksa keberhasilan installasi Flask, buat sebuah file berisi kode Python Sebelum melakukan installasi, pengguna berikut dan beri nama file tersebut ‘hello.py’. Flask sebaiknya menggunakan virtual environtment dalam proses pengembangan web. from flask import Flask Virtual environtment adalah sebuah sistem untuk mengisolasi sebuah proyek Python agar tidak terjadi konflik dengan proyek Python app = Flask(__name__) lainnya [4]. Dengan virtual environtment, sebuah proyek Python—atau Flask pada kasus ini, seakan ada pada satu komputer sendiri @app.route("/") dengan dependensi sendiri dan tidak def hello(): berhubungan dengan proyek Python lainnya. "Hello World!" Untuk menginstall virtual environtment return masukkan perintah ini di shell. Selanjutnya, jalankan file tersebut $ pip install virtualenv menggunakan Flask dengan memasukkan perintah berikut. Setelah menginstall virtual environtment di komputer, selanjutnya masuk ke direktori yang $ FLASK_APP=hello.py flask akan dijadikan tempat proyek Python berada. run Setelah itu, buat dan aktifkan virtual Setelah itu akan muncul pemberitahuan environtment disana dengan memasukkan bahwa Flask telah berjalan di localhost. perintah, sesuai dengan versi Python yang * Running on digunakan. http://localhost:5000/ # python 2: Selanjutnya, buka aplikasi browser di $ virtualenv virenv komputer dan akses IP 127.0.0.1 atau localhost # python 3: di komputer tersebut. Maka akan muncul sebuah halaman seperti ini. $ python3 -m venv virenv Perintah di atas adalah perintah untuk membuat sebuah virtual environtment dengan nama virenv. Untuk mengaktifkan virtual environtment yang telah dibuat di direktori tujuan, masukkan perintah ini. $ source virenv/bin/activate 8. 9. if __name__ == '__main__': 10. app.run(debug=True) Pada baris ke-1, kode tersebut mengambil kode-kode dasar yang dibutuhkan dalam pembuatan proyek. flask disini merupakan kerangka kerja dan Flask adalah tipe data class Python. Dengan kata lain, Flask adalah prototype yang digunakan untuk membuat contoh aplikasi web. Selain itu, dengan Gambar 1. Halaman hasil hello.py menggunakan kode yang serupa dengan kode di baris-1, Flask dapat menggunakan berbagai C. Fitur-fitur Flask fitur yang disediakan oleh pihak ketiga, seperti Seperti yang telah dijelaskan di poin A, validasi form dengan WTForms dan sebagainya. Flask merupakan microframework yang berarti Caranya cukup dengan mengunduh package Flask mempunyai core yang sangat sederhana dan module dari pihak ketiga tersebut dan dan kecil, namun tetap dapat ditambah dan menuliskan kode seperti ini. tumbuh. Berdasarkan hal tersebut, fitur-fitur bawaan dari Flask sendiri termasuk sedikit from flask_wtf import jumlahnya, diantaranya adalah FlaskForm from wtforms import • Built-in development server. StringField • Debugger cepat. • Integrated support untuk pengetesan from wtforms.validators import unit. DataRequired • Kompatibel dengan mesin aplikasi Google. Pada baris ke-3, kode tersebut membuat • RESTful request dispatching. sebuah instance dari class Flask dengan nama • Jinja2 templating. app. Variabel __name__ adalah sebuah • Mendukung secure cookies. variabel khusus yang akan mengambil string • Berbasis unicode. dari '__main__'. • Mengikuti WSGI 1.0 Pada baris ke-5 hingga 7, kode tersebut Selain itu, Flask juga didukung dengan mendefinisikan sebuah fungsi dari aplikasi web dokumentasi yang sangat baik dan banyak ini. Kode @app.route('/') memetakan ke forum yang ada di internet untuk URL home atau (localhost:5000/) dan mendiskusikan masalah terkait Flask [1]. kode def home(): mendefinisikan sebuah D. Cara kerja Flask fungsi bernama home yang akan dipanggil Setelah mengenal Flask dan menginstall ketika halaman home atau '/' diakses. Flask pada poin-poin sebelumnya, poin ini akan Sehingga ketika halaman home atau '/' menjelaskan bagaimana cara kerja Flask secara diakses akan mengembalikan sebuah string umum. Cara kerja Flask dapat dijelaskan “Hey there!” pada halaman tersebut. melalui kode file bernama ‘hey.py’ berikut. Baris ke-5 hingga 7 adalah poin utama dari 1. from flask import Flask Flask. Ketika rute masukan diganti menjadi halaman lain, contohnya ’/profile’, maka 2. fungsi yang dijalankan adalah fungsi yang 3. app = Flask(__name__) sudah disiapkan ketika web diakses dengan 4. alamat ’localhost:5000/profile’. Seperti pada kode contoh berikut 5. @app.route('/') from flask import Flask 6. def home():

7. return "Hey there!" app = Flask(__name__) • Fleksibilitas tinggi, dengan konfigurasi yang sangat mudah diubah. @app.route(’/’) Selain memiliki keunggulan-keunggulan yang telah disebutkan, Flask juga memiliki def home(): kekurangan, diantaranya adalah. return “Hey there!” • Tidak memiliki ORM dan database layer bawaan, sehingga harus menggunakan aplikasi dari pihak @app.route(‘/profile’) ketiga. def profile(): • Tidak async-friendly. return profile_one Karakteristik Flask yang sangat membutuhkan aplikasi pihak ketiga dalam Selanjutnya, pada baris ke-9 dan 10, ini menjalankan fitur-fiturnya menjadi pedang adalah sebuah teknik yang digunakan para bermata dua yang bisa menjadi keunggulan developer yang menggunakan bahasa maupun kekurangan dari Flask itu sendiri. pemrograman Python. Pada Python, script yang sedang dijalankan akan diberikan nama IV. Kesimpulan '__main__' dan jika script diambil dari Setelah membahas berbagai hal tentang script lain, maka script tersebut tetap Flask, mulai dari Flask sebagai web menggunakan nama aslinya, contohnya microframework, proses installasi Flask, fitur- ‘hello.py’. Pada kasus ini, Flask menjalankan fitur yang ditawarkan, serta cara kerja dan script ini, sehingga variabel __name__ sedikit contoh kode Flask, dapat dikatakan mempunyai nilai '__main__'. Dengan bahwa Flask sangat cocok digunakan oleh begitu, kode pada baris ke-9 terpenuhi dan developer pemula yang baru saja mempelajari aplikasi web akan dijalankan dengan kode web development. Hal ini didasari dengan app.run(debug=True). Parameter pada kemudahan dalam hal mempelajari framework method app.run(debug=True)berarti Flask dengan banyaknya dokumentasi dan Python akan mencetak kesalahan-kesalahan contoh yang ada. Selain itu, kemudahan dalam yang mungkin terjadi pada halaman web proses installasi Flask menjadikannya pilihan tersebut[5]. untuk para web developer pemula. Serta, sebagai microframework, Flask cukup ringan III. Keunggulan Flask untuk dijalankan tanpa perlu komputer dengan Berdasarkan penjelasan tentang apa itu spesifikasi tinggi ataupun komponen dan Flask, cara menginstall Flask, fitur-fitur yang library khusus, sehingga developer yang masih ditawarkan oleh Flask, dan cara kerja Flask, “coba-coba” dapat dengan mudah mencoba Flask memiliki keunggulan serta kekurangan Flask. dibandingkan dengan web framework berbasis Daftar Pustaka Python lainnya, seperti , CherryPy, dan [1] http://flask.pocoo.org sebagainya. Keunggulan-keunggulan dari Flask (Diakses pada 16/12/2018 14:12) adalah [2] http://flask.pocoo.org:80/docs/1.0/foreword (Diakses pada 16/12/2018 15:33) • Ringan untuk dijalankan karena [3] https://www.w3schools.com/python/python_pi mempunyai core yang sederhana dan p.asp desain modular. (Diakses pada 16/12/2018 15:47) [4] https://docs.python-guide.org/dev/virtualenvs/ • Dapat menangani fungsi HTTP request (Diakses pada 16/12/2018 16:18) dengan mudah. [5] https://pythonhow.com/how-a-flask-app- • API yang baik dan koheren. works/ • Dokumentasi yang banyak dan (Diakses pada 16/12/2018 18.20) terstruktur dengan baik, penuh dengan contoh yang dapat digunakan langsung. • Mudah untuk dipasang dan di-deploy untuk produksi. • Mudah untuk diperiksa secara menyeluruh. (Unit testability.)