# Membuat Relasi Table Dengan PostgreSQL Study Kasus Perpustakaan: One to Many Relation

Assalamualaikum, pada kesempatan kali kita akan mempelajari tentang relasi table untuk pemula, terkhusus untuk penguna postgresql, pertama kita akam membuat erd terlebih dahulu sebelum benar benar mempraktikanya.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756258858855/f783f497-92bb-4958-b26c-5faed7846298.png align="center")

### **Penjelasan Hubungan**

1. **Anggota – Peminjaman**
    
    * Satu anggota bisa melakukan banyak peminjaman.
        
    * Relasi: One-to-Many.
        
2. **Buku – Peminjaman**
    
    * Satu buku bisa dipinjam berkali-kali (oleh anggota berbeda di waktu berbeda).
        
    * Relasi: One-to-Many.
        
3. **Petugas – Peminjaman**
    
    * Satu petugas bisa melayani banyak transaksi peminjaman.
        
    * Relasi: One-to-Many.
        

## 1\. Praktik

### 1.1 Membuat Table

```pgsql
--table anggota
CREATE TABLE anggota (
 id            SERIAL PRIMARY KEY,
 nama          VARCHAR(150) NOT NULL,
 alamat        VARCHAR(200) NOT NULL,
 no_hp         VARCHAR(20) NOT NULL
 );

--table buku
create table buku (
 id_buku       serial primary key,
 judul         varchar(50),
 pengarang     varchar(100),
 penerbit      varchar(50),
 tahun_terbit  int,
 kategori      varchar(150)
 );

--table petugas
create table petugas (
 id_petugas    serial primary key,
 nama          varchar(150),
 jabatan       varchar(50)
 );

--table peminjaman
create table peminjaman(
 id_peminjaman serial primary key,
 tgl_pinjam    date not null,
 tgl_kembali   date not null,
 status        varchar(20),
 id_anggota    int references anggota(id) on delete cascade,
 id_buku       int references buku(id_buku) on delete cascade,
 id_petugas    int references petugas(id_petugas) on delete cascade
 );
```

table anggota

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756259475244/20e550cc-5587-43df-b437-252c17a4668f.png align="center")

table buku

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756259485842/5711264c-f971-414d-b7ec-b7faae06fbee.png align="center")

table petugas

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756259498866/b583104b-d5a8-4f5f-943b-79175d46e84f.png align="center")

table peminjaman

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756259571444/440433b4-f4f6-47d7-be32-3d269264e6bd.png align="center")

error:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756259594201/450688d9-dfdb-4760-85f2-9fa5e31098b8.png align="center")

* perlu ekstra dalam membuat peminjaman karena lupa memberi tipe data pada suatu entity id\_anggota, id\_buku, dan id\_petugas
    

### 1.2 Insert Data

* kemudian kita akan memasukan data ke dalam table yang kita buat
    

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756261048484/9df1c585-fa8d-4a93-850d-c75c0b46d27d.png align="center")

### 1.3 Select Data

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756274562866/60826aff-0e31-4dc2-b127-8143d3354b95.png align="center")

maka akan terlihat data yang diminta

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756274606463/5e6f33fa-bed3-4f15-8fe0-96e7cbce7edf.png align="center")

mungkin hanya sekian terima kasih
