Getting Started Flask Py
Flask adalah framework ringan (microframework) untuk Python yang digunakan untuk membangun aplikasi dengan cepat dan sederhana.
1. Instalasi Flask
Sebelum memulai, pastikan kamu sudah menginstal Python. Kemudian, instal Flask menggunakan pip:
pip install flask

2. Membuat Aplikasi Flask Sederhana
Buat file Python baru, misalnya app.py
, lalu tuliskan kode berikut:

Flask(__name__)
membuat instance aplikasi Flask.@app.route("/")
mendefinisikan rute untuk halaman utama.app.run(debug=True)
menjalankan server Flask dengan mode debug aktif.
Jalankan aplikasi dengan:
python app.py
Lalu buka browser dan akses http://127.0.0.1:5000/
.

3. Routing (Menentukan Halaman)
Tambahkan lebih banyak rute ke aplikasi:
@app.route('/about')
def about():
return "Ini halaman About"
3.1 Mengatur halaman khusus untuk /about
Untuk membuat halaman khusus menggunakan HTML di Flask..
Buat Folder templates
Flask mencari file HTML di dalam folder templates
, jadi buat folder ini jika belum ada.
Buat File about.html
Di dalam folder templates
, buat file about.html
dengan konten berikut:
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>About</title>
</head>
<body>
<h1>Ini Halaman About</h1>
<p>Selamat datang di halaman About!</p>
</body>
</html>
Untuk appnya
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def home():
return "Hello, Flask!"
@app.route('/about')
def about():
return render_template('about.html')
if __name__ == "__main__":
app.run(debug=False)
4. Static File Flask

1. Buat Folder static
static
Flask mencari file CSS di dalam folder static
, jadi buat folder ini jika belum ada.
2. Buat File style.css
style.css
Di dalam folder static
, buat file style.css
dan tambahkan kode berikut:
body {
font-family: Arial, sans-serif;
background-color: #f4f4f4;
text-align: center;
padding: 50px;
}
h1 {
color: #333;
}
p {
font-size: 18px;
color: #666;
}
3. Hubungkan CSS ke about.html
about.html
Ubah file about.html
agar menggunakan CSS:
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>About</title>
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
</head>
<body>
<h1>Ini Halaman About</h1>
<p>Selamat datang di halaman About!</p>
</body>
</html>
4. Jalankan Flask
Jalankan aplikasi Flask seperti biasa:
python app.py
Kemudian buka http://127.0.0.1:5000/about
dan lihat tampilan barunya dengan CSS.
💡 Catatan: Flask secara otomatis mencari file di dalam folder static
, jadi gunakan url_for('static', filename='style.css')
untuk memastikan CSS termuat dengan benar.
5. Routing Dinamis
Kita juga membuat route dinamis berdasarkan input dari user yang dikenal dengan variable-name
Kita tambahkan parameter dengan tipe data tertentu seperti string, integer
dan lainnya
Misalnya kita ingin menambah nama yang dinamis maka tambahkan route('/nama/<string:nama>')
dengan fungsi getnama()
yang menggunakan parameter nama
@app.route('/nama/<string:nama>')
def getnama(nama):
return "nama anda adalah {}".format(nama)
Tambahkan nama anda disetelah parameter nama
dan jalankan kembali aplikasinya

6. Variabel dalam Python Flask Framework
Di Flask, variabel dapat digunakan untuk menyimpan dan mengelola data dalam aplikasi. Variabel bisa digunakan dalam routing, template HTML, dan view functions. Berikut beberapa cara penggunaan variabel di Flask:
6.1. Variabel dalam Routing
Kita bisa meneruskan variabel dalam URL dan menggunakannya di fungsi view.
Contoh: Menampilkan Nama dari URL
from flask import Flask
app = Flask(__name__)
@app.route('/user/<name>') # Variabel name diambil dari URL
def user(name):
return f"Hello, {name}!"
if __name__ == '__main__':
app.run(debug=True)
📝 Penjelasan:
<name>
adalah variabel dalam URL.Flask otomatis menangkap nilainya dan mengirimkan ke fungsi
user(name)
.Coba akses
http://127.0.0.1:5000/user/Ali
, maka tampil: "Hello, Ali!"
6.2. Variabel dengan Tipe Data dalam Routing
Flask bisa menangani tipe data lain selain string, seperti int, float, path.
Contoh: ID Angka
@app.route('/user/<int:user_id>') # Hanya menerima angka
def user_id(user_id):
return f"User ID: {user_id}"
<int:user_id>
memastikan hanya angka yang diterima.Coba akses
http://127.0.0.1:5000/user/10
, akan menampilkan: "User ID: 10".
6.3. Mengirim Variabel ke Template HTML
Variabel bisa diteruskan ke halaman HTML menggunakan render_template()
.
Contoh: Mengirim Nama ke Template
Kode Flask (app.py
)
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/profile/<name>')
def profile(name):
return render_template('profile.html', username=name)
if __name__ == '__main__':
app.run(debug=True)
Kode Template (templates/profile.html
)
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<title>Profile</title>
</head>
<body>
<h1>Selamat datang, {{ username }}!</h1>
</body>
</html>
🔹 Coba akses http://127.0.0.1:5000/profile/Ali
, maka tampil: "Selamat datang, Ali!"
6.4. Variabel Global dalam Flask
Kita bisa menggunakan variabel global yang dapat diakses di semua fungsi.
app_name = "My Flask App" # Variabel global
@app.route('/')
def home():
return f"Welcome to {app_name}!"
Setiap kali halaman diakses,
app_name
akan digunakan.
6.5. Variabel dalam Dictionary
Kita juga bisa menyimpan data dalam dictionary dan mengirimnya ke template.
@app.route('/data')
def data():
user = {"name": "Ali", "age": 25, "city": "Jakarta"}
return render_template('data.html', user=user)
Kode Template (templates/data.html
)
<h1>Nama: {{ user.name }}</h1>
<p>Umur: {{ user.age }}</p>
<p>Kota: {{ user.city }}</p>
7. FOR dan IF Statement
Dalam Flask, kita bisa menggunakan statement for
dan if
di dalam template HTML menggunakan Jinja2, templating engine bawaan Flask.
7.1. for
Statement dalam Template Flask
for
Statement dalam Template FlaskKita bisa menggunakan for
loop untuk menampilkan data secara berulang dalam HTML.
Contoh: Menampilkan List Nama di HTML
Kode Flask (app.py
)
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/users')
def users():
user_list = ["Ali", "Budi", "Citra", "Dewi"]
return render_template('users.html', users=user_list)
if __name__ == '__main__':
app.run(debug=True)
Kode Template (templates/users.html
)
<!DOCTYPE html>
<html>
<head>
<title>Daftar Pengguna</title>
</head>
<body>
<h1>Daftar Pengguna</h1>
<ul>
{% for user in users %}
<li>{{ user }}</li>
{% endfor %}
</ul>
</body>
</html>
✅ Hasilnya di Browser:
Daftar Pengguna:
- Ali
- Budi
- Citra
- Dewi
7.2. if
Statement dalam Template Flask
if
Statement dalam Template FlaskKita bisa menggunakan if
statement untuk menampilkan kondisi tertentu di dalam HTML.
Contoh: Menampilkan Pesan Jika Tidak Ada Data
<ul>
{% if users %}
{% for user in users %}
<li>{{ user }}</li>
{% endfor %}
{% else %}
<p>Tidak ada pengguna.</p>
{% endif %}
</ul>
✅ Jika users
ada isinya, daftar pengguna akan ditampilkan.
✅ Jika users
kosong, akan muncul pesan: "Tidak ada pengguna."
7.3. for
dan if
dalam Satu Loop
for
dan if
dalam Satu LoopKita bisa menggabungkan for
dan if
untuk memberikan tanda atau format khusus pada elemen tertentu.
Contoh: Menandai Admin dalam Daftar User
Kode Flask (app.py
)
@app.route('/users')
def users():
user_list = [
{"name": "Ali", "role": "admin"},
{"name": "Budi", "role": "user"},
{"name": "Citra", "role": "admin"},
{"name": "Dewi", "role": "user"},
]
return render_template('users.html', users=user_list)
Kode Template (templates/users.html
)
<ul>
{% for user in users %}
{% if user.role == "admin" %}
<li><strong>{{ user.name }} (Admin)</strong></li>
{% else %}
<li>{{ user.name }}</li>
{% endif %}
{% endfor %}
</ul>
✅ Hasilnya di Browser:
- Ali (Admin)
- Budi
- Citra (Admin)
- Dewi
7.4. loop.index
dalam for
loop.index
dalam for
Flask menyediakan loop.index
untuk menampilkan nomor urut dalam for
loop.
Contoh: Menampilkan Nomor Urut
<ul>
{% for user in users %}
<li>{{ loop.index }}. {{ user }}</li>
{% endfor %}
</ul>
✅ Hasilnya di Browser:
1. Ali
2. Budi
3. Citra
4. Dewi
8. If Elif and Else
Dalam Flask, elif
(else if) juga bisa digunakan dalam template HTML menggunakan Jinja2. Ini berguna untuk membuat kondisi lebih kompleks dalam tampilan HTML.
1. if
, elif
, dan else
dalam Template Flask
if
, elif
, dan else
dalam Template FlaskKita bisa menggunakan elif
untuk menangani berbagai kondisi.
Contoh: Menampilkan Pesan Berdasarkan Skor
Kode Flask (app.py
)
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/nilai/<int:score>')
def nilai(score):
return render_template('nilai.html', score=score)
if __name__ == '__main__':
app.run(debug=True)
Kode Template (templates/nilai.html
)
<!DOCTYPE html>
<html>
<head>
<title>Penilaian</title>
</head>
<body>
<h1>Hasil Penilaian</h1>
{% if score >= 90 %}
<p>Nilai Anda: {{ score }} - Sangat Baik! 🎉</p>
{% elif score >= 75 %}
<p>Nilai Anda: {{ score }} - Baik 👍</p>
{% elif score >= 60 %}
<p>Nilai Anda: {{ score }} - Cukup 😊</p>
{% else %}
<p>Nilai Anda: {{ score }} - Perlu Perbaikan 😢</p>
{% endif %}
</body>
</html>
✅ Jika diakses dengan http://127.0.0.1:5000/nilai/95
, maka tampil:
"Nilai Anda: 95 - Sangat Baik! 🎉"
✅ Jika diakses dengan http://127.0.0.1:5000/nilai/70
, maka tampil:
"Nilai Anda: 70 - Cukup 😊"
2. for
dengan if-elif-else
for
dengan if-elif-else
Kita juga bisa menggabungkan loop dengan if-elif-else.
Contoh: Menampilkan Status Mahasiswa
Kode Flask (app.py
)
@app.route('/mahasiswa')
def mahasiswa():
daftar_mahasiswa = [
{"nama": "Ali", "nilai": 92},
{"nama": "Budi", "nilai": 80},
{"nama": "Citra", "nilai": 65},
{"nama": "Dewi", "nilai": 55},
]
return render_template('mahasiswa.html', mahasiswa=daftar_mahasiswa)
Kode Template (templates/mahasiswa.html
)
<!DOCTYPE html>
<html>
<head>
<title>Daftar Mahasiswa</title>
</head>
<body>
<h1>Daftar Mahasiswa</h1>
<ul>
{% for mhs in mahasiswa %}
<li>
{{ mhs.nama }} - Nilai: {{ mhs.nilai }} -
{% if mhs.nilai >= 90 %}
Lulus dengan Pujian 🎓
{% elif mhs.nilai >= 75 %}
Lulus 👍
{% elif mhs.nilai >= 60 %}
Lulus Bersyarat 😊
{% else %}
Tidak Lulus 😢
{% endif %}
</li>
{% endfor %}
</ul>
</body>
</html>
✅ Hasilnya di Browser:
Daftar Mahasiswa:
- Ali - Nilai: 92 - Lulus dengan Pujian 🎓
- Budi - Nilai: 80 - Lulus 👍
- Citra - Nilai: 65 - Lulus Bersyarat 😊
- Dewi - Nilai: 55 - Tidak Lulus 😢

1️⃣ Menentukan Fitur Kalkulator
Misalnya, kalkulator bisa menghitung:
Bunga tabungan (bunga sederhana/majemuk)
Cicilan pinjaman (menggunakan rumus anuitas)
Return investasi (menghitung pertumbuhan investasi)
2️⃣ Membuat Struktur Flask Project
Struktur proyek sederhana bisa seperti ini:
flaskb/
│── app.py # File utama Flask
│── templates/
│ ├── index.html # Halaman utama
│ ├── result.html # Halaman hasil perhitungan
│── static/
│ ├── style.css # CSS untuk tampilan
│── requirements.txt # Paket yang dibutuhkan
│── venv/ # Virtual environment (opsional)
3️⃣ Mengembangkan app.py
app.py
Contoh Flask sederhana untuk kalkulator bunga:

4️⃣ Membuat Halaman index.html
index.html

5️⃣ Membuat Halaman result.html
result.html


1️⃣ Struktur Proyek Flask
flaskb/
│── app.py # File utama Flask
│── templates/
│ ├── index.html # Form input & hasil kalkulasi
│── static/
│ ├── style.css # CSS styling
│── requirements.txt # (Opsional) Paket Flask
2️⃣ app.py
- Logika Flask
app.py
- Logika FlaskBuat file app.py
:

3️⃣ index.html
- Tampilan Form Input & Hasil
index.html
- Tampilan Form Input & HasilBuat file templates/index.html
:
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Kalkulator Engagement Rate</title>
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
</head>
<body>
<div class="container">
<h2>Kalkulator Engagement Rate</h2>
<form method="POST">
<label>Jumlah Likes:</label>
<input type="number" name="likes" required>
<label>Jumlah Comments:</label>
<input type="number" name="comments" required>
<label>Jumlah Shares:</label>
<input type="number" name="shares" required>
<label>Total Followers:</label>
<input type="number" name="followers" required>
<button type="submit">Hitung</button>
</form>
{% if er is defined and er is not none %}
<h3>Engagement Rate: {{ er }}%</h3>
{% endif %}
</div>
</body>
</html>
4️⃣ style.css
- CSS untuk Tampilan
style.css
- CSS untuk TampilanBuat file static/style.css
:
body {
font-family: Arial, sans-serif;
background-color: #f8f9fa;
text-align: center;
}
.container {
max-width: 400px;
margin: 50px auto;
background: white;
padding: 20px;
border-radius: 10px;
box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
}
h2 {
color: #007bff;
}
form {
display: flex;
flex-direction: column;
}
label {
margin: 10px 0 5px;
font-weight: bold;
}
input {
padding: 8px;
border: 1px solid #ccc;
border-radius: 5px;
}
button {
margin-top: 20px;
padding: 10px;
background-color: #007bff;
color: white;
border: none;
border-radius: 5px;
cursor: pointer;
}
button:hover {
background-color: #0056b3;
}
h3 {
margin-top: 20px;
color: #28a745;
}
5️⃣ Cara Menjalankan Proyek
Jalankan server Flask
python app.py
Buka browser dan akses:
http://127.0.0.1:5000/

Last updated