Materi workshop "Light up your Python!" Himpunan Mahasiswa Sistem Informasi Fakultas Ilmu Komputer Universitas Singaperbangsa Karawang, 4 September 2021 (Online via Zoom).

Overview

Workshop Python UNSIKA 2021

cover

Materi workshop "Light up your Python!" Himpunan Mahasiswa Sistem Informasi Fakultas Ilmu Komputer Universitas Singaperbangsa Karawang, 4 September 2021 (Online via Zoom).

Pendahuluan

1. Tentang Eka Putra

Eka Putra

Eka Putra sudah berkecimpung di dunia pengembangan website sejak 2009, meskipun beberapa tahun sebelum itu dia sudah mempelajari programming walaupun sebatas hobi menggunakan bahasa pemrograman Pascal (Delphi).

Pada awalnya dia mulai menjajakan jasa pembuatan website melalui website sederhana buatannya sendiri yang dibuat menggunakan WordPress, saat itu masih bekerja di sebuah perusahaan aksesoris sebagai desainer grafis. Klien pun mulai dia dapatkan sampai akhirnya dia memutuskan untuk terjun full-time menjadi freelance web developer.

Pada tahun 2015 dia mendapatkan tawaran untuk bekerja di sebuah perusahaan berbasis di Australia, karena kebetulan sang pemilik juga tinggal di Bali. Dari tahun 2015 itu sampai 2018 (3 tahun) dia bekerja secara remote, dan pada akhir 2018 dia bisa berangkat ke Australia dengan sponsor perusahaan untuk bekerja di kantornya di Sydney. Saat inipun (September 2021) dia masih bekerja di perusahaan yang sama sebagai Senior Software Engineer (Data).

2. Mengenal Python

Tentang Python

Python adalah sebuah bahasa pemrograman tingkat tinggi (high-level) dan multi guna. Tingkat tinggi yang dimaksud adalah dari cara kita berinteraksi dengan komputer menggunakan bahasa yang hampir mirip dengan bahasa manusia tanpa perlu mengerti dan memahami detail dari sistem operasi atau komputer itu sendiri. Berbeda dengan bahasa pemrograman tingkat rendah seperti Assembly atau C yang mana kita perlu memahami cara memanage memory dan sebagainya.

Python diciptakan pada akhir tahun 1980-an oleh Guido Van Rossum seorang programmer dari Belanda. Python dirilis pertama kali pada tahun 1991, Python 2.0 dirilis pada tahun 2000 dan Python 3.0 dirilis pada tahun 2008. Saat ini buat teman-teman yang ingin belajar Python, saya sarankan langsung mulai dengan Python versi 3+.

Karena populernya bahasa ini dan bisa digunakan untuk berbagai macam keperluan, kita akan sering melihat Python digunakan dalam web development, pembuatan API, program berbasis CLI, embedded system, scripting engine untuk game dan lain sebagainya.

Survey Python

Berdasarkan survey yang dilakukkan oleh Stack Overflow, Python berada di urutan nomer 3 dari teknologi atau bahasa pemrograman terpopuler di dunia dibawah Javascript dan HTML/CSS, dan merupakan bahasa pemrograman nomer 1 yang paling ingin dipelajari oleh orang yang belum pernah menggunakannya.

Siapa memakai Python?

Karena bisa dibilang mudah dipelajari dan multiguna maka tidak hayal bahwa banyak perusahaan besar di dunia menggunakan Python di tech-stack mereka. Dan saya yakin begitu juga dengan perusahaan-perusahaan dan startup di Indonesia. Perusahaan-perusahan seperti Google, Instagram, Dropbox, Facebook dll. bisa dipastikan menggunakan Python di system mereka meskipun bukan cuma satu-satunya bahasa yang mereka gunakan.

3. Instalasi Python

Instalasi Python tidak diperagakan di workshop ini, saya berasumsi bahwa peserta workshop sudah memiliki Python terinstall di komputer masing-masing dan siap digunakan.

Untuk instalasi bisa mengikuti panduan dari website ini untuk Windows, Linux dan MacOS: https://realpython.com/installing-python/

4. Menjalankan kode Python secara online

Buat yang tidak memiliki Python di komputernya, peserta workshop juga bisa mengikuti program ini dengan menggunakan layanan online berikut ini:

Python Dasar

Contoh kode Python

Contoh Kode Python

Kode diatas merupakan contoh sederhana kode Python, meskipun kode Python yang paling sederhana sebenarnya adalah print('Hello World') tetapi kode yang berguna tidak cukup hanya dengan satu perintah print saja.

Pada screenshot diatas menunjukkan bagian-bagian dari kode Python yang lebih lengkap dengan rincian sebagai berikut:

  • import digunakan untuk meng-import modul, fungsi atau class dari sebuah package.
  • def digunakan untuk mendefinisikan sebuah fungsi.
  • # digunakan untuk memulai sebuah komentar pada kode
  • """ digunakan untuk memulai sebuah komentar yang memungkinan kita menulis komentar dengan baris lebih dari satu, sedangkan # untuk komentar satu baris.
  • Penamaan variable biasanya menggunkan hurup kecil dan menggunakan underscore sebagai pemisah kata satu dengan yang lainnya.
  1. Hello World
  2. Variable dan Tipe Data
  3. Percabangan
  4. Perulangan
  5. Fungsi
  6. Pengenalan class
  7. Module di Python
  8. Penggunaan Library atau Package

Website dan Flask

1. Bagaimana Website Bekerja?

Bagaimana Website Bekerja?

Kita bisa mengakses sebuah halaman di website karena ada beberapa elemen yang bekerja secara bersama-sama:

  • Komputer yang terkoneksi ke internet dan terdapat aplikasi web browser di dalamnya seperti Google Chrome atau Firefox.
  • Jaringan internet yang memungkinkan kita mengakses server yang ada di belahan dunia manapun.
  • Webserver yang merupakan server yang khusus untuk menerima request dari komputer kita dan mengembalikan dokumen (berupa halaman web) yang ingin kita akses.

Ketiga elemen tersebut saling bekerja sama dan memiliki peran masing-masing mengantarkan data dari komputer kita ke web server dan sebaliknya juga dari web server ke komputer kita.

Komputer kita dan web server berkomunikasi dengan sebuah protokol bernama HTTP (Hyper Text Transfer Protocol), dimana web browser membuat request dan web server akan memberikan respone.

Web developer dipastikan akan bertemu dan bekerja dengan request dan response ini dalam karirnya, oleh karena itu memahami bagaimana memproses request dan memberikan response adalah skill dasar yang harus dimiliki oleh pengembang website terutama website yang sifatnya dinamis.

2. Jenis dan Cara Membuat Website?

Bagaimana Membuat Website?

Berdasarkan sifatnya, website bisa dikategorikan menjadi dua jenis:

  1. Website Statis, website jenis ini biasanya dibuat hanya dengan HTML/CSS dan Javascript (optional). Website statis biasanya memiliki halaman yang sudah jadi sebelum di-serve oleh web server. Untuk mengganti isi website maka harus dilakukkan perubahan secara manual dan kembali menguploadnya ke server. Website jenis ini cocok untuk website yang tidak akan terlalu banyak mengalamai perubahan, cocok untuk halaman dokumentasi, personal blog sederhana, ataupun company profile sederhana.
  2. Website Dinamis, ini mungkin jenis website yang paling sering kita temui saat ini, ciri-ciri website ini biasanya kaya akan fitur yang interaktif. Kita bisa berinteraksi dengan website, kita bisa meminta website untuk melakukkan sesuatu misalnya mengirim email, update status, upload file dan yang lainnya. Website ini meng-generate halaman ketika kita mengaksesnya dan sesuai dengan URL yang kita buka, itulah kenapa disebut website dinamis. Bisa dipastikan website-website ini menggunakan semacam database untuk menyimpan data dan menggunakan bahasa pemrograman tertentu untuk mengambil dan menampilkan datanya.

Jadi berdasarkan jenis-jenis website tersebut, cara membuatnya pun bermacam-macam karena memang bisa dibuat dengan teknologi yang berbeda-beda misalnya yang paling umum adalah dengan bahasa PHP dipadukan dengan HTML/CSS/Javascript maka kita bisa membuat website yang menarik dan interaktif.

Secara umum, website atau aplikasi berbasis website pasti akan memerlukan perpaduan antara HTML (struktur website), CSS (style/tampilan website), Javascript (interaksi dinamis), bahasa scripting atau pemrograman seperti PHP, Python, NodeJS dan banyak lagi yang bertugas memproses request, membaca database, merender template dan mengembalikan hasilnya berupa HTTP response ke browser.

Dan beberapa tahun belakangan ini, semakin banyak framework pembuatan website bermunculan dari berbagai macam bahasa pemrograman seperti PHP dan Python, dan kali ini karena kita sedang membahas Python maka kita akan mencoba membuat sebuah aplikasi berbasis web sederhana menggunakan framework Flask dimana kita akan coding menggunakan bahasa Python.

Untuk pembuatan aplikasi berbasis web saya sarankan menggunakan framework karena selain mempercepat proses pembuatan, maka hal yang paling penting yaitu faktor keamanan. Keamanan website merupakan urusan yang susah-susah gampang, pengembang framework biasanya sudah memperhatikan aspek keamanannya sebelum dipakai khalayak umum meskipun sebagai pengguna framework kita tetap harus berhati-hati dan selalu mengikuti tata cara yang baik pengembangan website untuk menjamin keamanannya.

3. Flask Web Framework

Flask Web Framework

Flask Web Framework

4. Hello Flask

Hello Flask

Kode diatas adalah sebuah aplikasi web sederhana menggunakan Flask, seperti terlihat bahwa aplikasi tersebut hanya memiliki dua buah URL yang bisa diakses yaitu / (menampilkan tulisan Hello World) dan /unsika (menampilkan tulisan Terima kasih UNSIKA!).

Cara kerjanya pun disini sesuai dengan konsep Request dan Response, kita memberikan request ke URL / maka Flask merespon dengan tulisan Hello World, begitu juga ketika kita request URL /unsika maka Flask akan merespon dengan tulisan Terima kasih UNSIKA!.

Membuat aplikasi todo list dengan Flask

Apa yang akan kita pelajari

Seperti tujuan dari workshop kali ini yaitu untuk mengajak teman-teman developer yang belum pernah memakai Python untuk mencoba Python dan juga memperkenalkan bagaimana pembuatan aplikasi berbasis web bisa dilakukkan dengan Flask (salah satu web framework berbasis Python).

Saya tahu pasti bahwa buat teman-teman yang sama sekali belum pernah memakai Python dan langsung membuat aplikasi web sederhana pastinya tidak mudah, untuk itu saya merancang workshop ini dengan mempertimbangkan pengalaman peserta dimana buat yang belum pernah mencoba Python bisa mencobanya, dan buat yang sudah mengetahui dasarnya bisa mencoba Flask.

Aplikasi inipun saya rancang supaya kita bisa mempraktekkan ilmu-ilmu yang kita pelajari pada saat pengenalan Python dasar.

1. Tampilan Aplikasi

Tampilan Aplikasi Todolist dengan Flask

Tampilan aplikasi kita sangat sederhana namun tetap fungsional dan harus berfungsi sesuai dengan yang kita inginkan.

User Interface (UI) dari aplikasi ini dibuat dengan menggunakan UI framework Bootstrap karena relatif mudah dipakai. Saya sudah menyediakan template yang akan kita gunakan untuk membuat Todo list ini, bisa diunduh disini.

2. Requirements Aplikasi

Requirements Aplikasi Todolist dengan Flask

Sebelum kita memulai sebuah proyek software, ada baiknya kita sudah memiliki banyangan apa tujuan akhir dari proyek yang akan kita buat. Apa fitur-fitur yang diperlukan dan bagaimana mereka akan bekerja. Ini penting karena perencanaan yang matang akan membuat proses pembuatan proyek berjalan lebih mulus meskipun tantangan-tantangan tidak terduga bisa saja muncul dalam prosesnya. Tapi itulah tugas seorang programmer, solving problem dengan teknologi.

Pada gambar gambar diatas saya sudah menyiapkan beberapa requirements untuk proyek Todo kita kali ini, apabila semua requirements itu berhasil kita kerjakan maka proyek bisa dibilang sukses.

3. Rancangan URL Aplikasi

Rancangan URL Aplikasi Todolist dengan Flask

Sebelum kita mulai coding aplikasi berbasis web, kita juga perlu memiliki bayangan halaman-halaman apa yang kita perlukan dan URL-URL apa saja yang kita perlukan untuk mendukung aplikasi yang akan kita buat.

Seperti terlihat diatas bahwa kita akan membuat 4 buah endpoint yang masing-masing memiliki satu tugas khusus. Kenapa kita perlu 4 endpoint? kenapa tidak satu saja? Karena lebih mudah membuat endpoint yang bertujuan untuk melakukkan satu tugas spesifik daripada membuat satu endpoint yang harus melakukkan banyak hal.

Sekali lagi, tujuan kita adalah membuat aplikasi yang tidak cuma berjalan baik tetapi juga mudah untuk di maintain.

4. Demo Aplikasi

Menjalankan Aplikasi

Buat yang ingin mencoba aplikasi yang sudah jadi, silahkan arahkan terminalnya ke direktori 3-flask-todolist/.

Pertama kita install dulu library yang kita perlukan untuk proyek ini, karena ini adalah proyek sederhana maka kita hanya perlu Flask, itu terlihat dari isi file requirements.txt yang merupakan cara kita mendaftarkan dependencies yang diperlukan sebuah proyek Python.

Kita install semua library yang diperlukan dengan menjalankan perintah:

pip install -r requirements.txt

Apabila Flask sudah terinstall maka aplikasi tinggal dijalankan dengan perintah:

flask run

Setelah aplikasi berjalan maka tinggal buka web browser dan buka alamat: localhost:5000, localhost adalah alamat tempat server Flask berjalan dan 5000 adalah port aplikasi todo kita berjalan.

Owner
Eka Putra
Backend and Data @Insight-Timer, building @upkoding
Eka Putra
the project for the most brutal and effective language learning technique

- "The project for the most brutal and effective language learning technique" (c) Alex Kay The langflow project was created especially for language le

Alexander Kaigorodov 7 Dec 26, 2021
This is a small project written to help build documentation for projects in less time.

Documentation-Builder This is a small project written to help build documentation for projects in less time. About This project builds documentation f

Tom Jebbo 2 Jan 17, 2022
Code and pre-trained models for "ReasonBert: Pre-trained to Reason with Distant Supervision", EMNLP'2021

ReasonBERT Code and pre-trained models for ReasonBert: Pre-trained to Reason with Distant Supervision, EMNLP'2021 Pretrained Models The pretrained mod

SunLab-OSU 29 Dec 19, 2022
My Sublime Text theme

rsms sublime text theme Install: cd path/to/your/sublime/packages git clone https://github.com/rsms/sublime-theme.git rsms-theme You'll also need the

Rasmus 166 Jan 04, 2023
learn python in 100 days, a simple step could be follow from beginner to master of every aspect of python programming and project also include side project which you can use as demo project for your personal portfolio

learn python in 100 days, a simple step could be follow from beginner to master of every aspect of python programming and project also include side project which you can use as demo project for your

BDFD 6 Nov 05, 2022
Source Code for 'Practical Python Projects' (video) by Sunil Gupta

Apress Source Code This repository accompanies %Practical Python Projects by Sunil Gupta (Apress, 2021). Download the files as a zip using the green b

Apress 2 Jun 01, 2022
A markdown wiki and dashboarding system for Datasette

datasette-notebook A markdown wiki and dashboarding system for Datasette This is an experimental alpha and everything about it is likely to change. In

Simon Willison 19 Apr 20, 2022
Some custom tweaks to the results produced by pytkdocs.

pytkdocs_tweaks Some custom tweaks for pytkdocs. For use as part of the documentation-generation-for-Python stack that comprises mkdocs, mkdocs-materi

Patrick Kidger 4 Nov 24, 2022
API spec validator and OpenAPI document generator for Python web frameworks.

API spec validator and OpenAPI document generator for Python web frameworks.

1001001 249 Dec 22, 2022
Members: Thomas Longuevergne Program: Network Security Course: 1DV501 Date of submission: 2021-11-02

Mini-project report Members: Thomas Longuevergne Program: Network Security Course: 1DV501 Date of submission: 2021-11-02 Introduction This project was

1 Nov 08, 2021
ACPOA plugin creation helper

ACPOA Plugin What is ACPOA ACPOA is the acronym for "Application Core for Plugin Oriented Applications". It's a tool to create flexible and extendable

Leikt Sol'Reihin 1 Oct 20, 2021
Fastest Git client for Emacs.

EAF Git Client EAF Git is git client application for the Emacs Application Framework. The advantages of EAF Git are: Large log browse: support 1 milli

Emacs Application Framework 31 Dec 02, 2022
A comprehensive and FREE Online Python Development tutorial going step-by-step into the world of Python.

FREE Reverse Engineering Self-Study Course HERE Fundamental Python The book and code repo for the FREE Fundamental Python book by Kevin Thomas. FREE B

Kevin Thomas 7 Mar 19, 2022
Python script to generate Vale linting rules from word usage guidance in the Red Hat Supplementary Style Guide

ssg-vale-rules-gen Python script to generate Vale linting rules from word usage guidance in the Red Hat Supplementary Style Guide. These rules are use

Vale at Red Hat 1 Jan 13, 2022
Type hints support for the Sphinx autodoc extension

sphinx-autodoc-typehints This extension allows you to use Python 3 annotations for documenting acceptable argument types and return value types of fun

Alex Grönholm 462 Dec 29, 2022
A Json Schema Generator

JSON Schema Generator Author : Eru Michael About A Json Schema Generator. This is a generic program that: Reads a JSON file similar to what's present

1 Nov 10, 2021
pytorch_example

pytorch_examples machine learning site map 정리자료 Resnet https://wolfy.tistory.com/243 convolution 연산 정리 https://gaussian37.github.io/dl-concept-covolut

injae hwang 1 Nov 24, 2021
A Python module for creating Excel XLSX files.

XlsxWriter XlsxWriter is a Python module for writing files in the Excel 2007+ XLSX file format. XlsxWriter can be used to write text, numbers, formula

John McNamara 3.1k Dec 29, 2022
Convert excel xlsx file's table to csv file, A GUI application on top of python/pyqt and other opensource softwares.

Convert excel xlsx file's table to csv file, A GUI application on top of python/pyqt and other opensource softwares.

David A 0 Jan 20, 2022
Clases y ejercicios del curso de python diactodo por la UNSAM

Programación en Python En el marco del proyecto de Inteligencia Artificial Interdisciplinaria, la Escuela de Ciencia y Tecnología de la UNSAM vuelve a

Maximiliano Villalva 3 Jan 06, 2022