0

0

0

share


#programmer#Python#Pemrograman#programming
0 Reaksi

0 Komentar

Belajar Backend Python dengan Flask, PostgreSQL, dan OpenAPI

Profile
Bagus Budi Satoto

14 Agustus 2024

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
Tukang ketik 1

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 > y # True
nilai = 75 if nilai >= 90: print("A") elif nilai >= 80: print("B") elif nilai >= 70: print("C") else: print("Tidak Lulus")

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 >= 70: print("Lulus") else: print("Tidak Lulus")

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, "Python", True]
  • Tuple: Mirip dengan list, tetapi bersifat tidak bisa diubah (immutable).
my_tuple = (1, 2, 3, "Python", True)
  • Dictionary: Koleksi pasangan kunci-nilai.
my_dict = {"nama": "John", "umur": 25, "tinggi": 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 < 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("Halo, selamat datang!")

1.3 Parameter dan Argumen

Fungsi dapat menerima nilai (parameter) yang diteruskan saat fungsi dipanggil. Contoh:

def sapa(nama): print("Halo, " + nama + "!") sapa("John")

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("Hasil penjumlahan:", 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("Halo, " + nama + "!")

2.3 Mengimpor Modul

Gunakan pernyataan import untuk mengimpor modul ke dalam skrip Python Anda. Contoh:

# skrip.py import modul_sapa modul_sapa.sapa("John")

2.4 Menggunakan Alias

Anda dapat memberikan alias saat mengimpor modul untuk mempersingkat penulisan. Contoh:

# skrip.py import modul_sapa as ms ms.sapa("John")

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("John")

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 "Selamat datang di Flask!" if __name__ == "__main__": 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/<name>') 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 {"message": "Item created!"}, 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("dbname=test user=postgres password=secret") cur = conn.cursor() cur.execute("SELECT * FROM users") 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="Login Required"'} ) @app.route('/protected') def protected(): auth = request.authorization if not auth or not check_auth(auth.username, auth.password): return authenticate() return "Anda berhasil masuk!"

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.

Tukang ketik 2

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

https://github.com/bagussatoto/Belajar-Python

0

0

0

share