# Database PPDB Santri

Assalamualaikum, pada kesempatan kali ini kita akan belajar tentang database ppdb santri

# 1\. Masalah

sebuah sekolah sedang mengadakan PPDB (penerimaan peserte didik baru) maka untuk mempermudah pihak sekolah membuat system database untuk kemudahan dalam pelaksanaanya

* 1 orang tua bisa memiliki banyak santri (One to Many).
    
* 1 santri hanya punya 1 data pendaftaran (One to One).
    
* 1 pendaftaran bisa memiliki beberapa pembayaran (One to Many).
    

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756689642527/617ee5b6-75bd-4bfa-9523-9aff4ba31018.png align="center")

# 2\. Praktik Membuat Table

## 2.1 Table Santri

```pgsql
CREATE TABLE santri (
  santri_id SERIAL PRIMARY KEY,
  nama VARCHAR(100) NOT NULL,
  tempat_lahir VARCHAR(50),
  tanggal_lahir DATE,
  alamat TEXT,
  no_hp_ortu VARCHAR(20),
  asal_sekolah VARCHAR(100),
  orang_tua_id INT REFERENCES orang_tua(orang_tua_id)
);
```

## 2.2 Table Orang Tua

```pgsql
CREATE TABLE orang_tua (
  orang_tua_id SERIAL PRIMARY KEY,
  nama_ayah VARCHAR(100),
  pekerjaan_ayah VARCHAR(100),
  nama_ibu VARCHAR(100),
  pekerjaan_ibu VARCHAR(100)
);
```

## 2.3 Table Pendaftaran

```pgsql
CREATE TABLE pendaftaran (
  pendaftaran_id SERIAL PRIMARY KEY,
  santri_id INT REFERENCES santri(santri_id),
  no_pendaftaran VARCHAR(20) UNIQUE,
  tanggal_daftar DATE,
  program_pilihan VARCHAR(50)
);
```

## 2.4 Table Pembayaran

```pgsql
CREATE TABLE pembayaran (
  pembayaran_id SERIAL PRIMARY KEY,
  pendaftaran_id INT REFERENCES pendaftaran(pendaftaran_id),
  tanggal_bayar DATE,
  jumlah INT,
  status VARCHAR(20) CHECK (status IN ('Lunas', 'Belum'))
);
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756691332237/39da4329-8c4f-44b0-94af-9c786939e81f.png align="center")

# 3\. Praktik Insert Data

* 3 data orang tua
    
* 5 data santri
    
* 5 data pendaftaran
    
* 5 data pembayaran
    

## 3.1 Data Orang Tua

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756692826626/32e2328b-3898-43a8-a4d1-16f8c8e4ef33.png align="center")

## 3.2 Data Santri

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756692913364/a653633d-e0f6-491e-ba2d-40bb04a25cd4.png align="center")

## 3.3 Data Pendaftaran

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756693364026/2648a443-6c00-4258-b5ad-2f9b7c1b6e9f.png align="center")

## 3.4 Data Pembayaran

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756693634983/ffa7da62-ae0f-4861-be8b-025f7d4b2b8b.png align="center")

# 4\. Query Data

## 4.1 Daftar santri dan orang tua

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756693864683/234f3a28-e538-4825-a68b-d2a673d8c7b4.png align="center")

## 4.2 Daftar Santri Yang Belum Bayar

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756694243589/4bd0e3d1-afed-4df9-b33e-cd1236c73fac.png align="center")

## 4.3 Daftar Total Pembayaran

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756696996312/a077c109-81fe-4dbf-b244-22ba58a34170.png align="center")

# 5\. Penutup

> ### mungkin cukup sekian terima kasih… By Ahmad Afan Shobari

copyright: [https://course.ppqita.my.id/cycle/0.1.-mastering-data-with-postgreSQL/18.5\_Latihan-PPDB-Santri?pass=ppqita](https://course.ppqita.my.id/cycle/0.1.-mastering-data-with-postgreSQL/18.5_Latihan-PPDB-Santri?pass=ppqita)
