Difference between revisions of "Pengenalan Flask: Membuat Aplikasi Web Sederhana"

From OnnoWiki
Jump to navigation Jump to search
(Created page with "Berikut adalah struktur materi untuk kuliah "Pengenalan Deployment Aplikasi Web menggunakan Python" yang terdiri dari empat bagian utama, masing-masing dengan tiga modul: **1...")
 
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
Berikut adalah struktur materi untuk kuliah "Pengenalan Deployment Aplikasi Web menggunakan Python" yang terdiri dari empat bagian utama, masing-masing dengan tiga modul:
+
==Tujuan Pembelajaran==
  
**1. Dasar-dasar Pengembangan Web Menggunakan Python**
+
Setelah menyelesaikan modul ini, Anda diharapkan mampu:
  
  - **1.1. Pengenalan Flask: Membuat Aplikasi Web Sederhana**
+
* Memahami konsep dasar Flask dan cara membuat aplikasi web sederhana.
    - Memahami konsep dasar Flask dan cara membuat aplikasi web sederhana.
+
* Membuat halaman "Hello, World!" menggunakan Flask.
    - Contoh: Membuat halaman "Hello, World!" menggunakan Flask.
+
* Menjalankan aplikasi Flask pada Ubuntu 24.04 tanpa menggunakan alat dari Microsoft.
    - Referensi: [Tutorial Flask oleh Miguel Grinberg](https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world)
 
  
  - **1.2. Struktur Proyek Flask dan Manajemen Template**
+
==Pengenalan Flask==
    - Mempelajari struktur proyek yang baik dalam Flask dan penggunaan template untuk memisahkan logika dan tampilan.
 
    - Contoh: Menggunakan Jinja2 untuk membuat template dinamis.
 
    - Referensi: [Tutorial Flask Resmi](https://flask.palletsprojects.com/en/stable/tutorial/)
 
  
  - **1.3. Mengelola Basis Data dengan SQLAlchemy**
+
Flask adalah micro-framework web yang ditulis dalam bahasa Python. Disebut "micro" karena Flask menjaga intinya tetap sederhana namun dapat diperluas dengan berbagai ekstensi sesuai kebutuhan. Framework ini memungkinkan pengembang untuk membuat aplikasi web dengan cepat dan efisien.
    - Integrasi Flask dengan SQLAlchemy untuk operasi basis data.
 
    - Contoh: Membuat model data dan melakukan operasi CRUD.
 
    - Referensi: [Membangun Aplikasi Web dengan Flask](https://www.digitalocean.com/community/tutorials/how-to-make-a-web-application-using-flask-in-python-3)
 
  
**2. Dasar-dasar Komunikasi Backend pada Web Python**
+
==Persiapan Lingkungan Pengembangan==
  
  - **2.1. Routing dan Metode HTTP dalam Flask**
+
Sebelum memulai, pastikan Anda memiliki:
    - Memahami cara kerja routing dan berbagai metode HTTP (GET, POST, PUT, DELETE).
 
    - Contoh: Membuat endpoint dengan berbagai metode HTTP.
 
    - Referensi: [Tutorial Flask Resmi](https://flask.palletsprojects.com/en/stable/tutorial/)
 
  
  - **2.2. Mengelola Formulir dan Validasi Input**
+
* '''Ubuntu 24.04''' terinstal pada sistem Anda.
    - Menggunakan Flask-WTF untuk mengelola formulir dan validasi input pengguna.
+
* '''Python 3''' terinstal. Untuk memeriksa versi Python, jalankan perintah:
    - Contoh: Membuat formulir login dengan validasi.
+
 
    - Referensi: [Membangun Aplikasi Web dengan Flask](https://www.digitalocean.com/community/tutorials/how-to-make-a-web-application-using-flask-in-python-3)
+
python3 --version
  
  - **2.3. Komunikasi Asinkron dengan JavaScript dan Flask**
+
Jika Python belum terinstal, Anda dapat menginstalnya dengan:
    - Mengintegrasikan Flask dengan JavaScript untuk komunikasi asinkron menggunakan AJAX.
+
    - Contoh: Memuat data secara dinamis tanpa me-refresh halaman.
+
sudo apt update
    - Referensi: [Komunikasi Frontend dan Backend](https://www.reddit.com/r/learnprogramming/comments/8xdh5s/how_do_you_connect_the_frontend_and_backend/)
+
sudo apt install python3
  
**3. Keamanan Aplikasi Web Python**
+
* '''pip''' (Python package manager) terinstal. Periksa dengan:
  
  - **3.1. Manajemen Autentikasi dan Otorisasi**
+
pip3 --version
    - Implementasi sistem login dan kontrol akses pengguna.
+
    - Contoh: Menggunakan Flask-Login untuk manajemen sesi pengguna.
+
Jika pip belum terinstal, instal dengan:
    - Referensi: [Tutorial Flask Resmi](https://flask.palletsprojects.com/en/stable/tutorial/)
+
 +
sudo apt install python3-pip
 +
 
 +
==Membuat Virtual Environment==
  
  - **3.2. Mencegah Serangan Umum pada Aplikasi Web**
+
Sebaiknya kita menggunakan virtual environment untuk mengisolasi dependensi proyek. Buat dan aktifkan virtual environment dengan perintah berikut:
    - Memahami dan mencegah serangan seperti SQL Injection dan Cross-Site Scripting (XSS).
 
    - Contoh: Menggunakan parameterized queries dan escaping output.
 
    - Referensi: [Analisis Keamanan Aplikasi Web dengan Python](https://bytescout.com/blog/python-tutorial-web-app-security.html)
 
  
  - **3.3. Mengamankan API dengan Tokenisasi**
+
# Instal modul venv jika belum ada
    - Menggunakan token untuk mengamankan komunikasi antara klien dan server.
+
sudo apt install python3-venv
    - Contoh: Implementasi JSON Web Tokens (JWT) dalam Flask.
+
    - Referensi: [Membuat REST API dengan Flask](https://www.digitalocean.com/community/tutorials/create-a-rest-api-using-flask-on-ubuntu)
+
# Buat virtual environment bernama 'venv'
 +
python3 -m venv venv
 +
 +
# Aktifkan virtual environment
 +
source venv/bin/activate
  
**4. Membangun RESTful API Menggunakan Python**
+
Setelah aktivasi, prompt terminal Anda akan menunjukkan bahwa virtual environment sedang aktif.
  
  - **4.1. Konsep Dasar RESTful API dan Implementasi dengan Flask**
+
==Instalasi Flask==
    - Memahami prinsip REST dan cara mengimplementasikannya menggunakan Flask.
 
    - Contoh: Membuat endpoint RESTful untuk operasi CRUD.
 
    - Referensi: [Membuat REST API dengan Flask](https://www.digitalocean.com/community/tutorials/create-a-rest-api-using-flask-on-ubuntu)
 
  
  - **4.2. Dokumentasi API dengan Swagger**
+
Dengan virtual environment aktif, instal Flask menggunakan pip:
    - Menggunakan Flask-Swagger untuk mendokumentasikan API yang dibuat.
 
    - Contoh: Menambahkan dokumentasi interaktif untuk endpoint yang tersedia.
 
    - Referensi: [Tutorial Flask-Swagger](https://github.com/flasgger/flasgger)
 
  
  - **4.3. Deployment Aplikasi Flask di Ubuntu 24.04**
+
pip install flask
    - Langkah-langkah untuk mendeploy aplikasi Flask pada server Ubuntu 24.04 tanpa menggunakan alat dari Microsoft.
 
    - Contoh: Menggunakan Gunicorn dan Nginx untuk menjalankan aplikasi di lingkungan produksi.
 
    - Referensi: [Instalasi Flask di Ubuntu 24.04](https://support.hostinger.com/en/articles/10725412-how-to-install-flask-on-ubuntu-24-04)
 
  
Struktur ini dirancang untuk memberikan pemahaman komprehensif tentang pengembangan dan deployment aplikasi web menggunakan Python, dengan fokus pada praktik terbaik dan contoh nyata yang dapat diterapkan langsung.
+
==Membuat Aplikasi "Hello, World!"==
 +
 
 +
1. '''Membuat Struktur Proyek'''
 +
 
 +
Buat direktori untuk proyek Anda dan navigasikan ke dalamnya:
 +
 
 +
mkdir hello_flask
 +
cd hello_flask
 +
 
 +
2. '''Membuat Aplikasi Flask'''
 +
 
 +
Buat file bernama `app.py` dan tambahkan kode berikut:
 +
 
 +
from flask import Flask
 +
 +
app = Flask(__name__)
 +
 +
@app.route('/')
 +
def hello():
 +
    return 'Hello, World!'
 +
 +
if __name__ == '__main__':
 +
    app.run(debug=True)
 +
 
 +
Penjelasan kode:
 +
* `from flask import Flask`: Mengimpor kelas Flask dari modul flask.
 +
* `app = Flask(__name__)`: Membuat instance aplikasi Flask.
 +
* `@app.route('/')`: Dekorator yang menentukan URL root ('/') untuk memanggil fungsi `hello`.
 +
* `def hello():`: Fungsi yang mengembalikan string 'Hello, World!'.
 +
* `if __name__ == '__main__':`: Memastikan server hanya berjalan saat skrip dijalankan secara langsung.
 +
* `app.run(debug=True)`: Menjalankan server dalam mode debug untuk pengembangan.
 +
 
 +
3. '''Menjalankan Aplikasi'''
 +
 
 +
Pastikan virtual environment aktif, lalu jalankan aplikasi dengan:
 +
 
 +
python app.py
 +
 
 +
Output yang diharapkan:
 +
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 +
* Restarting with stat
 +
* Debugger is active!
 +
* Debugger PIN: 123-456-789
 +
 
 +
4. '''Mengakses Aplikasi'''
 +
 
 +
Buka browser web dan navigasikan ke `http://127.0.0.1:5000/`. Anda akan melihat pesan "Hello, World!" ditampilkan.
 +
 
 +
==Penanganan Rute Tambahan==
 +
 
 +
Flask memungkinkan penanganan berbagai rute. Misalnya, tambahkan rute baru untuk menyapa pengguna berdasarkan nama:
 +
 
 +
@app.route('/user/<name>')
 +
def greet_user(name):
 +
    return f'Hello, {name.capitalize()}!'
 +
 
 +
Dengan penambahan ini, mengakses `http://127.0.0.1:5000/user/andi` akan menampilkan "Hello, Andi!".
 +
 
 +
==Menjalankan Aplikasi pada Port Berbeda==
 +
 
 +
Secara default, Flask berjalan pada port 5000. Untuk menjalankan pada port lain, misalnya 8080, ubah pemanggilan `app.run()` menjadi:
 +
 
 +
app.run(debug=True, port=8080)
 +
 
 +
Atau jalankan aplikasi dengan perintah:
 +
 
 +
python app.py --port=8080
 +
 
 +
==Menggunakan Template HTML==
 +
 
 +
Untuk memisahkan logika Python dan tampilan, Flask menggunakan template. Buat folder `templates` dan tambahkan file `index.html`:
 +
 
 +
'''Struktur Direktori:'''
 +
 
 +
hello_flask/
 +
├── app.py
 +
└── templates/
 +
    └── index.html
 +
 
 +
'''Isi `index.html`:'''
 +
 
 +
<pre>
 +
<!doctype html>
 +
<html lang="id">
 +
<head>
 +
    <meta charset="utf-8">
 +
    <title>Halo Flask</title>
 +
</head>
 +
<body>
 +
    <h1>{{ message }}</h1>
 +
</body>
 +
</html>
 +
</pre>
 +
 
 +
Ubah `app.py` untuk merender template ini:
 +
 
 +
from flask import Flask, render_template
 +
 +
app = Flask(__name__)
 +
 +
@app.route('/')
 +
def hello():
 +
    return render_template('index.html', message='Hello, World!')
 +
 +
if __name__ == '__main__':
 +
    app.run(debug=True)
 +
 
 +
Sekarang, saat mengakses `http://127.0.0.1:5000/`, template HTML akan dirender dengan pesan yang diberikan.
 +
 
 +
==Latihan==
 +
 
 +
* Tambahkan rute baru `/about` yang menampilkan informasi singkat tentang aplikasi.
 +
* Buat halaman HTML terpisah untuk rute `/about` menggunakan template.
 +
* Eksplorasi dokumentasi Flask untuk memahami fitur-fitur lainnya.
 +
 
 +
Dengan menyelesaikan modul ini, Anda telah mempelajari dasar-dasar Flask dan cara membuat aplikasi web sederhana.
 +
 
 +
 
 +
==Referensi==
 +
 
 +
Untuk pembelajaran lebih lanjut, Anda dapat merujuk pada [Tutorial Flask oleh Miguel Grinberg](https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world).
 +
 
 +
 
 +
==Pranala Menarik==
 +
 
 +
* [[Web Programming]]

Latest revision as of 12:34, 7 April 2025

Tujuan Pembelajaran

Setelah menyelesaikan modul ini, Anda diharapkan mampu:

  • Memahami konsep dasar Flask dan cara membuat aplikasi web sederhana.
  • Membuat halaman "Hello, World!" menggunakan Flask.
  • Menjalankan aplikasi Flask pada Ubuntu 24.04 tanpa menggunakan alat dari Microsoft.

Pengenalan Flask

Flask adalah micro-framework web yang ditulis dalam bahasa Python. Disebut "micro" karena Flask menjaga intinya tetap sederhana namun dapat diperluas dengan berbagai ekstensi sesuai kebutuhan. Framework ini memungkinkan pengembang untuk membuat aplikasi web dengan cepat dan efisien.

Persiapan Lingkungan Pengembangan

Sebelum memulai, pastikan Anda memiliki:

  • Ubuntu 24.04 terinstal pada sistem Anda.
  • Python 3 terinstal. Untuk memeriksa versi Python, jalankan perintah:
python3 --version

Jika Python belum terinstal, Anda dapat menginstalnya dengan:

sudo apt update
sudo apt install python3
  • pip (Python package manager) terinstal. Periksa dengan:
pip3 --version

Jika pip belum terinstal, instal dengan:

sudo apt install python3-pip
 

Membuat Virtual Environment

Sebaiknya kita menggunakan virtual environment untuk mengisolasi dependensi proyek. Buat dan aktifkan virtual environment dengan perintah berikut:

# Instal modul venv jika belum ada
sudo apt install python3-venv

# Buat virtual environment bernama 'venv'
python3 -m venv venv

# Aktifkan virtual environment
source venv/bin/activate

Setelah aktivasi, prompt terminal Anda akan menunjukkan bahwa virtual environment sedang aktif.

Instalasi Flask

Dengan virtual environment aktif, instal Flask menggunakan pip:

pip install flask

Membuat Aplikasi "Hello, World!"

1. Membuat Struktur Proyek

Buat direktori untuk proyek Anda dan navigasikan ke dalamnya:

mkdir hello_flask
cd hello_flask
  

2. Membuat Aplikasi Flask

Buat file bernama `app.py` dan tambahkan kode berikut:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run(debug=True)
  

Penjelasan kode:

  • `from flask import Flask`: Mengimpor kelas Flask dari modul flask.
  • `app = Flask(__name__)`: Membuat instance aplikasi Flask.
  • `@app.route('/')`: Dekorator yang menentukan URL root ('/') untuk memanggil fungsi `hello`.
  • `def hello():`: Fungsi yang mengembalikan string 'Hello, World!'.
  • `if __name__ == '__main__':`: Memastikan server hanya berjalan saat skrip dijalankan secara langsung.
  • `app.run(debug=True)`: Menjalankan server dalam mode debug untuk pengembangan.

3. Menjalankan Aplikasi

Pastikan virtual environment aktif, lalu jalankan aplikasi dengan:

python app.py
  

Output yang diharapkan:

  • Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
  • Restarting with stat
  • Debugger is active!
  • Debugger PIN: 123-456-789

4. Mengakses Aplikasi

Buka browser web dan navigasikan ke `http://127.0.0.1:5000/`. Anda akan melihat pesan "Hello, World!" ditampilkan.

Penanganan Rute Tambahan

Flask memungkinkan penanganan berbagai rute. Misalnya, tambahkan rute baru untuk menyapa pengguna berdasarkan nama:

@app.route('/user/<name>')
def greet_user(name):
    return f'Hello, {name.capitalize()}!'

Dengan penambahan ini, mengakses `http://127.0.0.1:5000/user/andi` akan menampilkan "Hello, Andi!".

Menjalankan Aplikasi pada Port Berbeda

Secara default, Flask berjalan pada port 5000. Untuk menjalankan pada port lain, misalnya 8080, ubah pemanggilan `app.run()` menjadi:

app.run(debug=True, port=8080)

Atau jalankan aplikasi dengan perintah:

python app.py --port=8080

Menggunakan Template HTML

Untuk memisahkan logika Python dan tampilan, Flask menggunakan template. Buat folder `templates` dan tambahkan file `index.html`:

Struktur Direktori:

hello_flask/
├── app.py
└── templates/
    └── index.html

Isi `index.html`:

 <!doctype html>
 <html lang="id">
 <head>
     <meta charset="utf-8">
     <title>Halo Flask</title>
 </head>
 <body>
     <h1>{{ message }}</h1>
 </body>
 </html>

Ubah `app.py` untuk merender template ini:

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def hello():
    return render_template('index.html', message='Hello, World!') 

if __name__ == '__main__':
    app.run(debug=True)

Sekarang, saat mengakses `http://127.0.0.1:5000/`, template HTML akan dirender dengan pesan yang diberikan.

Latihan

  • Tambahkan rute baru `/about` yang menampilkan informasi singkat tentang aplikasi.
  • Buat halaman HTML terpisah untuk rute `/about` menggunakan template.
  • Eksplorasi dokumentasi Flask untuk memahami fitur-fitur lainnya.

Dengan menyelesaikan modul ini, Anda telah mempelajari dasar-dasar Flask dan cara membuat aplikasi web sederhana.


Referensi

Untuk pembelajaran lebih lanjut, Anda dapat merujuk pada [Tutorial Flask oleh Miguel Grinberg](https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world).


Pranala Menarik