0
0
0
share
#programmer#Python#Pemrograman#programming
0 Komentar
Belajar Backend Python dengan Flask, PostgreSQL, dan OpenAPI
Backend development menggunakan Python sangat populer di kalangan developer karena kesederhanaannya dan fleksibilitasnya. Dengan menggunakan framework Flask, kita dapat membuat web dan RESTful API yang sederhana namun kuat. Dalam artikel ini, kita akan membahas bagaimana membangun backend menggunakan Python, Flask, PostgreSQL sebagai database, dan menambahkan dokumentasi API menggunakan OpenAPI (Swagger).
Persiapan dan Syarat
Sebelum memulai, pastikan bahwa sudah menyiapkan alat-alat pribadi seperti laptop atau komputer dengan Python terinstal di dalamnya. Juga, harus memiliki PostgreSQL sebagai database.
Instalasi Python dan Flask
Untuk memulai dengan Python dan Flask,harus terlebih dahulu menginstal Python. Jika belum menginstal Python di komputer, bisa mendownloadnya dari situs resmi Python.
Setelah Python terinstal, dapat menginstal Flask menggunakan pip:
pip install flask
Instalasi PostgreSQL
Untuk instalasi PostgreSQL, bisa mengunduhnya dari situs resmi PostgreSQL.
Instalasi Dependensi Tambahan
Selain Flask dan PostgreSQL,juga memerlukan beberapa library tambahan seperti psycopg2 untuk koneksi ke database PostgreSQL dan flask-swagger-ui untuk integrasi Swagger, bisa menginstalnya dengan:
pip install psycopg2 flask-swagger-ui
Materi Pembelajaran
1. Python Dasar
adalah bahasa pemrograman yang sangat mudah dipelajari dan digunakan. Dalam pembelajaran Python dasar, kita akan membahas beberapa konsep penting:
1. Tipe Data
Tipe data adalah klasifikasi nilai yang dapat disimpan oleh variabel di dalam suatu program. Python memiliki beberapa tipe data dasar, antara lain:
- Integer: Bilangan bulat, contohnya 1, 10, -5.
- Float: Bilangan desimal, contohnya 3.14, 2.5, -0.01.
- String: Urutan karakter, contohnya "Hello", 'Python'.
- Boolean: Nilai kebenaran, True atau False.
2. Variabel
Variabel digunakan untuk menyimpan nilai. Setiap variabel memiliki tipe data tertentu tergantung pada nilai yang disimpan di dalamnya. Contoh:
nama = "John" umur = 26 tinggi = 175.5 is_student = True
3. Operasi Aritmatika
Operasi aritmatika digunakan untuk melakukan operasi matematika pada angka. Beberapa operasi aritmatika dasar meliputi:
- Penjumlahan (+)
- Pengurangan (-)
- Perkalian (*)
- Pembagian (/)
- Modulus (%)
- Pangkat (**)
Contoh:
a = 5 b = 2 hasil = a + b # 7
4. Perbandingan
Operasi perbandingan digunakan untuk membandingkan dua nilai dan mengembalikan nilai kebenaran (True atau False). Beberapa operasi perbandingan meliputi:
- Sama dengan (==)
- Tidak sama dengan (!=)
- Lebih besar dari (>)
- Kurang dari (<)
- Lebih besar atau sama dengan (>=)
- Kurang atau sama dengan (<=)
Contoh:
x = 10 y = 5 hasil = x &gt; y # True
nilai = 75 if nilai &gt;= 90: print(&quot;A&quot;) elif nilai &gt;= 80: print(&quot;B&quot;) elif nilai &gt;= 70: print(&quot;C&quot;) else: print(&quot;Tidak Lulus&quot;)
5. Percabangan
Perabangan digunakan untuk membuat keputusan dalam program berdasarkan kondisi tertentu. Struktur percabangan dalam Python menggunakan kata kunci if
, elif
, dan else
.
nilai = 75 if nilai &gt;= 70: print(&quot;Lulus&quot;) else: print(&quot;Tidak Lulus&quot;)
6. Tipe Data Non-Primitif
Tipe data non-primitif melibatkan struktur data yang lebih kompleks. Beberapa tipe data non-primitif dalam Python meliputi:
- List: Kumpulan elemen yang bisa diubah (mutable).
my_list = [1, 2, 3, &quot;Python&quot;, True]
- Tuple: Mirip dengan list, tetapi bersifat tidak bisa diubah (immutable).
my_tuple = (1, 2, 3, &quot;Python&quot;, True)
- Dictionary: Koleksi pasangan kunci-nilai.
my_dict = {&quot;nama&quot;: &quot;John&quot;, &quot;umur&quot;: 25, &quot;tinggi&quot;: 175.5}
- Set: Kumpulan elemen unik tanpa urutan tertentu.
my_set = {1, 2, 3, 3, 4, 5}
7. Perulangan
Perulangan memungkinkan eksekusi blok kode tertentu secara berulang. Dalam Python, terdapat dua jenis perulangan utama: for
dan while
.
for i in range(5): print(i)
angka = 0 while angka &lt; 5: print(angka) angka += 1
2. Python Lanjutan
Setelah memahami dasar-dasar Python, langkah berikutnya adalah memahami konsep-konsep Python yang lebih lanjutan.
1. Fungsi (Function) dalam Python
1.1 Pengenalan Fungsi
Fungsi adalah blok kode yang dapat dijalankan berulang kali untuk menyelesaikan tugas tertentu. Fungsi membantu mengorganisir dan memecah kode menjadi bagian-bagian yang lebih kecil dan dapat digunakan kembali.
1.2 Mendefinisikan Fungsi
Dalam Python, fungsi didefinisikan menggunakan kata kunci def. Contoh:
def sapa(): print(&quot;Halo, selamat datang!&quot;)
1.3 Parameter dan Argumen
Fungsi dapat menerima nilai (parameter) yang diteruskan saat fungsi dipanggil. Contoh:
def sapa(nama): print(&quot;Halo, &quot; + nama + &quot;!&quot;) sapa(&quot;John&quot;)
1.4 Nilai Kembalian
Fungsi dapat mengembalikan nilai dengan menggunakan kata kunci return
. Contoh:
def tambah(a, b): hasil = a + b return hasil total = tambah(3, 5) print(&quot;Hasil penjumlahan:&quot;, total)
2. Modul (Module) dalam Python
2.1 Apa itu Modul?
Modul adalah file Python yang berisi definisi dan pernyataan Python. Modul memungkinkan kita untuk mengorganisir kode ke dalam file terpisah untuk memudahkan pemeliharaan dan pengelolaan.
2.2 Membuat Modul
Membuat modul sangat sederhana. Buat file baru dengan ekstensi .py, dan masukkan kode Python di dalamnya. Contoh:
# modul_sapa.py def sapa(nama): print(&quot;Halo, &quot; + nama + &quot;!&quot;)
2.3 Mengimpor Modul
Gunakan pernyataan import untuk mengimpor modul ke dalam skrip Python Anda. Contoh:
# skrip.py import modul_sapa modul_sapa.sapa(&quot;John&quot;)
2.4 Menggunakan Alias
Anda dapat memberikan alias saat mengimpor modul untuk mempersingkat penulisan. Contoh:
# skrip.py import modul_sapa as ms ms.sapa(&quot;John&quot;)
2.5 Mengimpor Fungsi atau Variabel Tertentu
Jika Anda hanya membutuhkan sebagian kecil dari modul, Anda dapat mengimpor fungsi atau variabel tertentu. Contoh:
# skrip.py from modul_sapa import sapa sapa(&quot;John&quot;)
3. Python Flask (Web + RESTful API)
Adalah framework web micro untuk Python yang sangat ringan dan mudah digunakan. Berikut adalah beberapa konsep dasar dalam Flask:
a. Routing
adalah cara Flask menghubungkan URL dengan fungsi. Misalnya, untuk membuat halaman utama:
from flask import Flask app = Flask(__name__) @app.route('/') def home(): return &amp;quot;Selamat datang di Flask!&amp;quot; if __name__ == &amp;quot;__main__&amp;quot;: app.run(debug=True)
b. Templating (Jinja)
Flask mendukung templating dengan menggunakan Jinja, yang memungkinkan memisahkan logika pemrograman dari tampilan HTML:
from flask import render_template @app.route('/hello/&amp;lt;name&amp;gt;') def hello(name): return render_template('hello.html', name=name)
c. Redirect dan Response
Bisa mengarahkan pengguna ke halaman lain menggunakan redirect dan mengembalikan objek Response untuk memodifikasi header HTTP:
from flask import redirect, url_for, Response @app.route('/redirect') def go_to_home(): return redirect(url_for('home'))
d. Static Files
Flask juga mendukung penggunaan file statis seperti CSS dan JavaScript. bisa menyimpannya di folder static dan mengaksesnya melalui URL.
e. CRUD dengan List
Untuk mengimplementasikan CRUD sederhana, bisa menggunakan struktur data list untuk menyimpan data dummy:
data = [] @app.route('/create', methods=['POST']) def create_item(): item = request.json.get('item') data.append(item) return {&amp;quot;message&amp;quot;: &amp;quot;Item created!&amp;quot;}, 201
4. Database PostgreSQL
Adalah database relasional yang kuat dan sering digunakan dalam aplikasi web. Berikut adalah beberapa konsep dasar dalam menggunakan PostgreSQL dengan Flask:
a. DML (Data Manipulation Language)
Digunakan untuk memanipulasi data di dalam tabel. Contohnya adalah INSERT, UPDATE, dan DELETE.
INSERT INTO users (name, email) VALUES ('Zara', 'zara@example.com');
b. Implementasi dengan Flask
Untuk menghubungkan Flask dengan PostgreSQL, bisa menggunakan library psycopg2:
import psycopg2 conn = psycopg2.connect(&amp;quot;dbname=test user=postgres password=secret&amp;quot;) cur = conn.cursor() cur.execute(&amp;quot;SELECT * FROM users&amp;quot;) rows = cur.fetchall()
5. Authentication
Adalah proses untuk memastikan bahwa pengguna yang mencoba mengakses sistem adalah pengguna yang sah.
a. Basic Auth
Basic Auth adalah metode otentikasi sederhana yang menggunakan kombinasi username dan password.
from flask import request, Response def check_auth(username, password): return username == 'admin' and password == 'secret' def authenticate(): return Response( 'Gagal otentikasi', 401, {'WWW-Authenticate': 'Basic realm=&amp;quot;Login Required&amp;quot;'} ) @app.route('/protected') def protected(): auth = request.authorization if not auth or not check_auth(auth.username, auth.password): return authenticate() return &amp;quot;Anda berhasil masuk!&amp;quot;
b. JWT (JSON Web Token)
Adalah metode otentikasi yang lebih aman dan sering digunakan untuk API. bisa menggunakan library PyJWT untuk mengimplementasikannya:
pip install pyjwt
6. Dokumentasi API (Swagger)
Dokumentasi API sangat penting untuk memberikan pemahaman kepada pengembang lain tentang cara menggunakan API yang buat. Swagger adalah salah satu alat yang paling populer untuk membuat dokumentasi API.
a. Integrasi Swagger dengan Flask
Bisa menggunakan flask-swagger-ui untuk menambahkan dokumentasi Swagger ke dalam aplikasi Flask:
from flask_swagger_ui import get_swaggerui_blueprint SWAGGER_URL = '/swagger' API_URL = '/static/swagger.json' swaggerui_blueprint = get_swaggerui_blueprint(SWAGGER_URL, API_URL) app.register_blueprint(swaggerui_blueprint, url_prefix=SWAGGER_URL)
7. Projek
Setelah mempelajari semua konsep di atas, saatnya untuk mengaplikasikannya dalam sebuah proyek sederhana. Misalnya, bisa membuat aplikasi web sederhana yang mengelola daftar pengguna dengan CRUD, otentikasi JWT, dan dokumentasi API menggunakan Swagger.
Langkah-langkah:
1️⃣ Setup Project: Mulailah dengan mengatur struktur proyek.
2️⃣ Implementasi CRUD: Buat endpoint untuk create, read, update, dan delete data pengguna.
3️⃣ Tambahkan Authentication: Implementasikan JWT untuk melindungi endpoint.
4️⃣ Tambahkan Dokumentasi Swagger: Buat dokumentasi AP menggunakan Swagger.
Kesimpulan
Belajar backend development dengan Python dan Flask sangat menyenangkan dan bermanfaat. Dengan mengikuti langkah-langkah yang dijelaskan di atas, bisa membangun web dan RESTful API yang sederhana namun fungsional. Selain itu, dengan menambahkan PostgreSQL sebagai database dan Swagger sebagai dokumentasi, aplikasi akan lebih lengkap dan profesional.
Referensi
0
0
0
share