Mengelola Basis Data dengan SQLAlchemy: Difference between revisions

From OnnoCenterWiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 1: Line 1:
# Modul 1.3: Mengelola Basis Data dengan SQLAlchemy
## Pendahuluan
Dalam pengembangan aplikasi web dengan Python, Flask adalah salah satu framework yang populer digunakan. Untuk mengelola basis data secara efisien dalam aplikasi Flask, kita dapat memanfaatkan SQLAlchemy, sebuah Object Relational Mapper (ORM) yang memungkinkan interaksi dengan basis data menggunakan objek Python. Modul ini akan membahas integrasi Flask dengan SQLAlchemy, pembuatan model data, serta operasi CRUD (Create, Read, Update, Delete) dengan contoh-contoh yang dapat diterapkan pada sistem operasi Ubuntu 24.04.
Dalam pengembangan aplikasi web dengan Python, Flask adalah salah satu framework yang populer digunakan. Untuk mengelola basis data secara efisien dalam aplikasi Flask, kita dapat memanfaatkan SQLAlchemy, sebuah Object Relational Mapper (ORM) yang memungkinkan interaksi dengan basis data menggunakan objek Python. Modul ini akan membahas integrasi Flask dengan SQLAlchemy, pembuatan model data, serta operasi CRUD (Create, Read, Update, Delete) dengan contoh-contoh yang dapat diterapkan pada sistem operasi Ubuntu 24.04.


## Instalasi Flask dan Flask-SQLAlchemy di Ubuntu 24.04
==Instalasi Flask dan Flask-SQLAlchemy di Ubuntu 24.04==


Sebelum memulai, pastikan sistem Anda telah terinstal Python 3. Berikut adalah langkah-langkah untuk menginstal Flask dan Flask-SQLAlchemy:
Sebelum memulai, pastikan sistem Anda telah terinstal Python 3. Berikut adalah langkah-langkah untuk menginstal Flask dan Flask-SQLAlchemy:


1. **Perbarui daftar paket dan tingkatkan paket yang sudah ada:**
1. '''Perbarui daftar paket dan tingkatkan paket yang sudah ada:'''
 
    
   ```bash
sudo apt update
  sudo apt update
sudo apt upgrade -y
  sudo apt upgrade -y
    
   ```
2. '''Instal Python 3 dan pip:'''
 
    
2. **Instal Python 3 dan pip:**
sudo apt install python3 python3-pip -y
 
 
   ```bash
3. '''Buat direktori proyek dan navigasikan ke dalamnya:'''
  sudo apt install python3 python3-pip -y
    
  ```
mkdir flask_app
 
cd flask_app
3. **Buat direktori proyek dan navigasikan ke dalamnya:**
 
 
4. '''Buat dan aktifkan virtual environment:'''
   ```bash
    
  mkdir flask_app
python3 -m venv venv
  cd flask_app
source venv/bin/activate
  ```
    
 
5. '''Instal Flask dan Flask-SQLAlchemy:'''
4. **Buat dan aktifkan virtual environment:**
    
 
pip install Flask Flask-SQLAlchemy
   ```bash
 
  python3 -m venv venv
Langkah-langkah di atas memastikan bahwa Flask dan Flask-SQLAlchemy terinstal dalam virtual environment proyek Anda.
  source venv/bin/activate
   ```
 
5. **Instal Flask dan Flask-SQLAlchemy:**
 
   ```bash
  pip install Flask Flask-SQLAlchemy
  ```
 
  Langkah-langkah di atas memastikan bahwa Flask dan Flask-SQLAlchemy terinstal dalam virtual environment proyek Anda. citeturn0search9


## Integrasi Flask dengan SQLAlchemy
==Integrasi Flask dengan SQLAlchemy==


Setelah instalasi, kita dapat mengintegrasikan Flask dengan SQLAlchemy dalam aplikasi kita. Berikut adalah langkah-langkahnya:
Setelah instalasi, kita dapat mengintegrasikan Flask dengan SQLAlchemy dalam aplikasi kita. Berikut adalah langkah-langkahnya:


1. **Buat file `app.py` dan tambahkan kode berikut:**
1. '''Buat file `app.py` dan tambahkan kode berikut:'''
 
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import os
app = Flask(__name__)
basedir = os.path.abspath(os.path.dirname(__file__))
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'app.db')
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
 
Pada kode di atas, kita mengatur URI basis data untuk menggunakan SQLite yang akan disimpan dalam file `app.db` di direktori proyek.


  ```python
2. '''Definisikan model data dengan membuat kelas yang mewarisi `db.Model`:'''
   from flask import Flask
    
  from flask_sqlalchemy import SQLAlchemy
class User(db.Model):
  import os
    id = db.Column(db.Integer, primary_key=True)
 
    username = db.Column(db.String(80), unique=True, nullable=False)
  app = Flask(__name__)
    email = db.Column(db.String(120), unique=True, nullable=False)
  basedir = os.path.abspath(os.path.dirname(__file__))
  app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'app.db')
    def __repr__(self):
  app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
        return f'<User {self.username}>'
 
    
  db = SQLAlchemy(app)
Model `User` di atas memiliki tiga kolom: `id`, `username`, dan `email'.
   ```


  Pada kode di atas, kita mengatur URI basis data untuk menggunakan SQLite yang akan disimpan dalam file `app.db` di direktori proyek. citeturn0search3
3. '''Inisialisasi basis data dan buat tabel:'''
 
with app.app_context():
    db.create_all()
 
Kode ini akan membuat tabel-tabel di basis data sesuai dengan model yang telah didefinisikan.


2. **Definisikan model data dengan membuat kelas yang mewarisi `db.Model`:**
==Operasi CRUD dengan Flask-SQLAlchemy==
 
  ```python
  class User(db.Model):
      id = db.Column(db.Integer, primary_key=True)
      username = db.Column(db.String(80), unique=True, nullable=False)
      email = db.Column(db.String(120), unique=True, nullable=False)
 
      def __repr__(self):
          return f'<User {self.username}>'
  ```
 
  Model `User` di atas memiliki tiga kolom: `id`, `username`, dan `email`. citeturn0search1
 
3. **Inisialisasi basis data dan buat tabel:**
 
  ```python
  with app.app_context():
      db.create_all()
  ```
 
  Kode ini akan membuat tabel-tabel di basis data sesuai dengan model yang telah didefinisikan.
 
## Operasi CRUD dengan Flask-SQLAlchemy


Setelah model data dibuat, kita dapat melakukan operasi CRUD sebagai berikut:
Setelah model data dibuat, kita dapat melakukan operasi CRUD sebagai berikut:


### 1. Create (Membuat Data Baru)
===1. Create (Membuat Data Baru)===


Untuk menambahkan pengguna baru ke dalam basis data:
Untuk menambahkan pengguna baru ke dalam basis data:


```python
from flask import Flask
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_sqlalchemy import SQLAlchemy
import os
import os
 
app = Flask(__name__)
app = Flask(__name__)
basedir = os.path.abspath(os.path.dirname(__file__))
basedir = os.path.abspath(os.path.dirname(__file__))
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'app.db')
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'app.db')
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)
    def __repr__(self):
        return f'<User {self.username}>'
with app.app_context():
    db.create_all()
    new_user = User(username='john_doe', email='john@example.com')
    db.session.add(new_user)
    db.session.commit()


db = SQLAlchemy(app)
==2. Read (Membaca Data)==
 
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)
 
    def __repr__(self):
        return f'<User {self.username}>'
 
with app.app_context():
    db.create_all()
    new_user = User(username='john_doe', email='john@example.com')
    db.session.add(new_user)
    db.session.commit()
```
 
### 2. Read (Membaca Data)


Untuk mengambil semua pengguna dari basis data:
Untuk mengambil semua pengguna dari basis data:


```python
with app.app_context():
with app.app_context():
    users = User.query.all()
    users = User.query.all()
    for user in users:
    for user in users:
        print(user.username, user.email)
        print(user.username, user.email)
```


Untuk mengambil pengguna berdasarkan ID:
Untuk mengambil pengguna berdasarkan ID:


```python
with app.app_context():
with app.app_context():
    user = User.query.get(1)
    user = User.query.get(1)
    print(user.username, user.email)
    print(user.username, user.email)
```


### 3. Update (Memperbarui Data)
==3. Update (Memperbarui Data)==


Untuk memperbarui informasi pengguna:
Untuk memperbarui informasi pengguna:


```python
with app.app_context():
with app.app_context():
    user = User.query.get(1)
    user = User.query.get(1)
    user.email = 'new_email@example.com'
    user.email = 'new_email@example.com'
    db.session.commit()
    db.session.commit()
```


### 4. Delete (Menghapus Data)
==4. Delete (Menghapus Data)==


Untuk menghapus pengguna dari basis data:
Untuk menghapus pengguna dari basis data:


```python
with app.app_context():
with app.app_context():
    user = User.query.get(1)
    user = User.query.get(1)
    db.session.delete(user)
    db.session.delete(user)
    db.session.commit()
    db.session.commit()
```


## Kesimpulan
==Kesimpulan==


Dengan menggunakan Flask dan SQLAlchemy, kita dapat mengelola basis data dalam aplikasi web Python secara efisien. Modul ini telah membahas cara mengintegrasikan Flask dengan SQLAlchemy, mendefinisikan model data, serta melakukan operasi CRUD dasar. Untuk informasi lebih lanjut, Anda dapat merujuk pada dokumentasi resmi Flask-SQLAlchemy. citeturn0search22
Dengan menggunakan Flask dan SQLAlchemy, kita dapat mengelola basis data dalam aplikasi web Python secara efisien. Modul ini telah membahas cara mengintegrasikan Flask dengan SQLAlchemy, mendefinisikan model data, serta melakukan operasi CRUD dasar. Untuk informasi lebih lanjut, Anda dapat merujuk pada dokumentasi resmi Flask-SQLAlchemy. citeturn0search22


## Referensi
==Referensi==
 
- [Membangun Aplikasi Web dengan Flask](https://www.digitalocean.com/community/tutorials/how-to-make-a-web-application-using-flask-in-python-3)
- [Flask-SQLAlchemy Documentation](https://flask-sqlalchemy.readthedocs.io/en/stable/)
- [Flask Mega-Tutorial oleh Miguel Grinberg](https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-iv-database)
 
Untuk panduan lebih lanjut tentang instalasi Flask di Ubuntu 24.04, Anda dapat merujuk pada artikel berikut:
 
- [Cara Menginstal Flask di Ubuntu 24.04](https://support.hostinger.com/en/articles/10725412-how-to-install-flask-on-ubuntu-24-04)
- [How to Install Flask on Ubuntu 24.04](https://docs.vultr.com/how-to-install-flask-on-ubuntu-24-04)


* [Membangun Aplikasi Web dengan Flask](https://www.digitalocean.com/community/tutorials/how-to-make-a-web-application-using-flask-in-python-3)
* [Flask-SQLAlchemy Documentation](https://flask-sqlalchemy.readthedocs.io/en/stable/)
* [Flask Mega-Tutorial oleh Miguel Grinberg](https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-iv-database)


Untuk panduan lebih lanjut tentang instalasi Flask di Ubuntu 24.04, Anda dapat merujuk pada artikel berikut:


* [Cara Menginstal Flask di Ubuntu 24.04](https://support.hostinger.com/en/articles/10725412-how-to-install-flask-on-ubuntu-24-04)
* [How to Install Flask on Ubuntu 24.04](https://docs.vultr.com/how-to-install-flask-on-ubuntu-24-04)


==Pranala Menarik==


  - **1.3. Mengelola Basis Data dengan SQLAlchemy**
* [[Web Programming]]
    - 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)

Revision as of 07:05, 7 April 2025

Dalam pengembangan aplikasi web dengan Python, Flask adalah salah satu framework yang populer digunakan. Untuk mengelola basis data secara efisien dalam aplikasi Flask, kita dapat memanfaatkan SQLAlchemy, sebuah Object Relational Mapper (ORM) yang memungkinkan interaksi dengan basis data menggunakan objek Python. Modul ini akan membahas integrasi Flask dengan SQLAlchemy, pembuatan model data, serta operasi CRUD (Create, Read, Update, Delete) dengan contoh-contoh yang dapat diterapkan pada sistem operasi Ubuntu 24.04.

Instalasi Flask dan Flask-SQLAlchemy di Ubuntu 24.04

Sebelum memulai, pastikan sistem Anda telah terinstal Python 3. Berikut adalah langkah-langkah untuk menginstal Flask dan Flask-SQLAlchemy:

1. Perbarui daftar paket dan tingkatkan paket yang sudah ada:

sudo apt update
sudo apt upgrade -y
  

2. Instal Python 3 dan pip:

sudo apt install python3 python3-pip -y
 

3. Buat direktori proyek dan navigasikan ke dalamnya:

mkdir flask_app
cd flask_app
 

4. Buat dan aktifkan virtual environment:

python3 -m venv venv
source venv/bin/activate
  

5. Instal Flask dan Flask-SQLAlchemy:

pip install Flask Flask-SQLAlchemy
 

Langkah-langkah di atas memastikan bahwa Flask dan Flask-SQLAlchemy terinstal dalam virtual environment proyek Anda.

Integrasi Flask dengan SQLAlchemy

Setelah instalasi, kita dapat mengintegrasikan Flask dengan SQLAlchemy dalam aplikasi kita. Berikut adalah langkah-langkahnya:

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

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import os

app = Flask(__name__)
basedir = os.path.abspath(os.path.dirname(__file__))
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'app.db')
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

db = SQLAlchemy(app)
  

Pada kode di atas, kita mengatur URI basis data untuk menggunakan SQLite yang akan disimpan dalam file `app.db` di direktori proyek.

2. Definisikan model data dengan membuat kelas yang mewarisi `db.Model`:

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)

    def __repr__(self):
       return f'<User {self.username}>'
  

Model `User` di atas memiliki tiga kolom: `id`, `username`, dan `email'.

3. Inisialisasi basis data dan buat tabel:

with app.app_context():
    db.create_all()
  

Kode ini akan membuat tabel-tabel di basis data sesuai dengan model yang telah didefinisikan.

Operasi CRUD dengan Flask-SQLAlchemy

Setelah model data dibuat, kita dapat melakukan operasi CRUD sebagai berikut:

1. Create (Membuat Data Baru)

Untuk menambahkan pengguna baru ke dalam basis data:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import os

app = Flask(__name__)
basedir = os.path.abspath(os.path.dirname(__file__))
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'app.db')
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

db = SQLAlchemy(app)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)

    def __repr__(self):
        return f'<User {self.username}>'

with app.app_context():
    db.create_all()
    new_user = User(username='john_doe', email='john@example.com')
    db.session.add(new_user)
    db.session.commit()

2. Read (Membaca Data)

Untuk mengambil semua pengguna dari basis data:

with app.app_context():
    users = User.query.all()
    for user in users:
        print(user.username, user.email)

Untuk mengambil pengguna berdasarkan ID:

with app.app_context():
    user = User.query.get(1)
    print(user.username, user.email)

3. Update (Memperbarui Data)

Untuk memperbarui informasi pengguna:

with app.app_context():
    user = User.query.get(1)
    user.email = 'new_email@example.com'
    db.session.commit()

4. Delete (Menghapus Data)

Untuk menghapus pengguna dari basis data:

with app.app_context():
    user = User.query.get(1)
    db.session.delete(user)
    db.session.commit()

Kesimpulan

Dengan menggunakan Flask dan SQLAlchemy, kita dapat mengelola basis data dalam aplikasi web Python secara efisien. Modul ini telah membahas cara mengintegrasikan Flask dengan SQLAlchemy, mendefinisikan model data, serta melakukan operasi CRUD dasar. Untuk informasi lebih lanjut, Anda dapat merujuk pada dokumentasi resmi Flask-SQLAlchemy. citeturn0search22

Referensi

Untuk panduan lebih lanjut tentang instalasi Flask di Ubuntu 24.04, Anda dapat merujuk pada artikel berikut:

Pranala Menarik