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...")
 
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:
+
# Modul 1.1: Pengenalan Flask: Membuat Aplikasi Web Sederhana
  
**1. Dasar-dasar Pengembangan Web Menggunakan Python**
+
## Tujuan Pembelajaran
  
  - **1.1. Pengenalan Flask: Membuat Aplikasi Web Sederhana**
+
Setelah menyelesaikan modul ini, Anda diharapkan mampu:
    - Memahami konsep dasar Flask dan cara membuat aplikasi web sederhana.
+
 
    - Contoh: Membuat halaman "Hello, World!" menggunakan Flask.
+
- Memahami konsep dasar Flask dan cara membuat aplikasi web sederhana.
    - Referensi: [Tutorial Flask oleh Miguel Grinberg](https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world)
+
- 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:
 +
 
 +
  ```bash
 +
  python3 --version
 +
  ```
 +
 
 +
  Jika Python belum terinstal, Anda dapat menginstalnya dengan:
 +
 
 +
  ```bash
 +
  sudo apt update
 +
  sudo apt install python3
 +
  ```
 +
 
 +
- **pip** (Python package manager) terinstal. Periksa dengan:
 +
 
 +
  ```bash
 +
  pip3 --version
 +
  ```
 +
 
 +
  Jika pip belum terinstal, instal dengan:
 +
 
 +
  ```bash
 +
  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:
 +
 
 +
```bash
 +
# 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:
 +
 
 +
```bash
 +
pip install flask
 +
```
 +
 
 +
## Membuat Aplikasi "Hello, World!"
 +
 
 +
1. **Membuat Struktur Proyek**
 +
 
 +
  Buat direktori untuk proyek Anda dan navigasikan ke dalamnya:
 +
 
 +
  ```bash
 +
  mkdir hello_flask
 +
  cd hello_flask
 +
  ```
 +
 
 +
2. **Membuat Aplikasi Flask**
 +
 
 +
  Buat file bernama `app.py` dan tambahkan kode berikut:
 +
 
 +
  ```python
 +
  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:
 +
 
 +
  ```bash
 +
  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:
 +
 
 +
```python
 +
@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:
 +
 
 +
```python
 +
app.run(debug=True, port=8080)
 +
```
 +
 
 +
Atau jalankan aplikasi dengan perintah:
 +
 
 +
```bash
 +
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`:**
  
  - **1.2. Struktur Proyek Flask dan Manajemen Template**
+
```html
    - Mempelajari struktur proyek yang baik dalam Flask dan penggunaan template untuk memisahkan logika dan tampilan.
+
<!doctype html>
    - Contoh: Menggunakan Jinja2 untuk membuat template dinamis.
+
<html lang="id">
    - Referensi: [Tutorial Flask Resmi](https://flask.palletsprojects.com/en/stable/tutorial/)
+
<head>
 +
    <meta charset="utf-8">
 +
    <title>Halo Flask</title>
 +
</head>
 +
<body>
 +
    <h1>{{ message }}</h1>
 +
</body>
 +
</html>
 +
```
  
  - **1.3. Mengelola Basis Data dengan SQLAlchemy**
+
Ubah `app.py` untuk merender template ini:
    - 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**
+
```python
 +
from flask import Flask, render_template
  
  - **2.1. Routing dan Metode HTTP dalam Flask**
+
app = Flask(__name__)
    - 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**
+
@app.route('/')
    - Menggunakan Flask-WTF untuk mengelola formulir dan validasi input pengguna.
+
def hello():
    - Contoh: Membuat formulir login dengan validasi.
+
    return render_template('index.html', message='Hello, World!')
    - Referensi: [Membangun Aplikasi Web dengan Flask](https://www.digitalocean.com/community/tutorials/how-to-make-a-web-application-using-flask-in-python-3)
 
  
  - **2.3. Komunikasi Asinkron dengan JavaScript dan Flask**
+
if __name__ == '__main__':
    - Mengintegrasikan Flask dengan JavaScript untuk komunikasi asinkron menggunakan AJAX.
+
    app.run(debug=True)
    - Contoh: Memuat data secara dinamis tanpa me-refresh halaman.
+
```
    - Referensi: [Komunikasi Frontend dan Backend](https://www.reddit.com/r/learnprogramming/comments/8xdh5s/how_do_you_connect_the_frontend_and_backend/)
 
  
**3. Keamanan Aplikasi Web Python**
+
Sekarang, saat mengakses `http://127.0.0.1:5000/`, template HTML akan dirender dengan pesan yang diberikan.
  
  - **3.1. Manajemen Autentikasi dan Otorisasi**
+
## Referensi
    - Implementasi sistem login dan kontrol akses pengguna.
 
    - Contoh: Menggunakan Flask-Login untuk manajemen sesi pengguna.
 
    - Referensi: [Tutorial Flask Resmi](https://flask.palletsprojects.com/en/stable/tutorial/)
 
  
  - **3.2. Mencegah Serangan Umum pada Aplikasi Web**
+
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).
    - 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**
+
## Latihan
    - Menggunakan token untuk mengamankan komunikasi antara klien dan server.
 
    - 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)
 
  
**4. Membangun RESTful API Menggunakan Python**
+
1. Tambahkan rute baru `/about` yang menampilkan informasi singkat tentang aplikasi.
 +
2. Buat halaman HTML terpisah untuk rute `/about` menggunakan template.
 +
3. Eksplorasi dokumentasi Flask untuk memahami fitur-fitur lainnya.
  
  - **4.1. Konsep Dasar RESTful API dan Implementasi dengan Flask**
+
Dengan menyelesaikan modul ini, Anda telah mempelajari dasar-dasar Flask dan cara membuat aplikasi web sederhana.  
    - 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**
 
    - 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**
 
    - 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.
+
  - **1.1. Pengenalan Flask: Membuat Aplikasi Web Sederhana**
 +
    - Memahami konsep dasar Flask dan cara membuat aplikasi web sederhana.
 +
    - Contoh: Membuat halaman "Hello, World!" menggunakan Flask.
 +
    - Referensi: [Tutorial Flask oleh Miguel Grinberg](https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world)

Revision as of 09:45, 6 April 2025

  1. Modul 1.1: Pengenalan Flask: Membuat Aplikasi Web Sederhana
    1. 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.

    1. 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.

    1. Persiapan Lingkungan Pengembangan

Sebelum memulai, pastikan Anda memiliki:

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

 ```bash
 python3 --version
 ```
 Jika Python belum terinstal, Anda dapat menginstalnya dengan:
 ```bash
 sudo apt update
 sudo apt install python3
 ```

- **pip** (Python package manager) terinstal. Periksa dengan:

 ```bash
 pip3 --version
 ```
 Jika pip belum terinstal, instal dengan:
 ```bash
 sudo apt install python3-pip
 ```
    1. Membuat Virtual Environment

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

```bash

  1. Instal modul venv jika belum ada

sudo apt install python3-venv

  1. Buat virtual environment bernama 'venv'

python3 -m venv venv

  1. Aktifkan virtual environment

source venv/bin/activate ```

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

    1. Instalasi Flask

Dengan virtual environment aktif, instal Flask menggunakan pip:

```bash pip install flask ```

    1. Membuat Aplikasi "Hello, World!"

1. **Membuat Struktur Proyek**

  Buat direktori untuk proyek Anda dan navigasikan ke dalamnya:
  ```bash
  mkdir hello_flask
  cd hello_flask
  ```

2. **Membuat Aplikasi Flask**

  Buat file bernama `app.py` dan tambahkan kode berikut:
  ```python
  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:
  ```bash
  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.
    1. Penanganan Rute Tambahan

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

```python @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!".

    1. Menjalankan Aplikasi pada Port Berbeda

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

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

Atau jalankan aplikasi dengan perintah:

```bash python app.py --port=8080 ```

    1. 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`:**

```html <!doctype html> <html lang="id"> <head>

   <meta charset="utf-8">
   <title>Halo Flask</title>

</head> <body>

Template:Message

</body> </html> ```

Ubah `app.py` untuk merender template ini:

```python 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.

    1. 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).

    1. Latihan

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

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


  - **1.1. Pengenalan Flask: Membuat Aplikasi Web Sederhana**
    - Memahami konsep dasar Flask dan cara membuat aplikasi web sederhana.
    - Contoh: Membuat halaman "Hello, World!" menggunakan Flask.
    - Referensi: [Tutorial Flask oleh Miguel Grinberg](https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world)