Desain Basis Data Inventory Stok Barang dengan Teknik Query

Basis Data (bahasa Inggris: Database) telah tidak asing kembali bagi kalangan praktisi Database Administrator (DBA). Mereka merancang desain basis data suatu proses agar memenuhi persyaratan desain database yang baik. Basis data (database) adalah kumpulan atau koleksi data yang terorganisir dan terstruktur, di mana data tersebut mampu disimpan secara elektronik.

Data di dalam basis data disimpan di dalam tabel yang terdiri berasal dari baris dan kolom. Setiap kolom mewakili atribut khusus, dan tiap-tiap baris mewakili entitas atau catatan.

Database memfasilitasi pengelolaan data terpusat yang terlalu mungkin untuk dibuka bersama banyak pengguna lainnya.

Merancang database memerlukan proses normalisasi. Normalisasi basis data adalah proses sesuaikan kembali data di dalam basis data untuk kurangi redundansi, menjauhi anomali data, dan memastikan integritas data.

 Tujuan berasal dari perihal tersebut adalah menjauhi anomali dikala jalankan proses INSERT, DELETE, maupun UPDATE.

Pada kesempatan kali ini, kami tidak dapat membahas teori normalisasi data lebih jauh. Kita dapat bahas soal desain database inventory stok barang bersama tehnik query.

Namun, andaikan kamu mendambakan studi soal normalisasi data, kamu mampu mencari Info via search engine bersama keyword “normalization database”.

Oke, tanpa perlu berlama-lama kembali kami dapat coba mempraktikkan langsung langkah merancang database inventory stok barang bersama tehnik query.

Pertama, Membuat Basis Data

Hasil normalisasi basis data untuk inventory stok barang yang kami mempunyai adalah tabel distributor, tabel barang, tabel pembelian, tabel detil pembelian, dan tabel stok. Di sini, kami dapat menggunakan PostgreSQL sebagai RDBMS (Relational Database Management System).

Sintaks untuk membawa dampak basis data adalah CREATE DATABASE dbinventory; di mana dbinventory adalah nama database yang dapat menampung object seperti tabel yang dapat kami buat.

Kedua, Membuat Tabel

Selanjutnya, kami membawa dampak satu file yang diberi nama buat_tabel.sql dan sintaks pembuatan tabelnya adalah sebagai berikut.

— Script untuk membawa dampak tabel-tabel di PostgreSQL

— Tabel Distributor

CREATE TABLE distributor (

    DistributorID SERIAL PRIMARY KEY,

    Nama VARCHAR(255),

    Alamat VARCHAR(255),

    Telp VARCHAR(20)

    );

— Tabel Barang

CREATE TABLE barang (

    KodeBarang SERIAL PRIMARY KEY,

    Nama VARCHAR(255),

    Deskripsi TEXT,

    Harga DECIMAL(10, 2)

    );

— Tabel pembelian

CREATE TABLE pembelian (

    OrderID SERIAL PRIMARY KEY,

    DistributorID INT REFERENCES distributor(DistributorID),

    Tglpembelian DATE,

    TglPengiriman DATE,

    Totalharga DECIMAL(10, 2)

);

— Tabel detil pembelian

CREATE TABLE detailpembelian (

    DetailPembelianID SERIAL PRIMARY KEY,

    OrderID INT REFERENCES pembelian(OrderID),

    KodeBarang INT REFERENCES barang(KodeBarang),

    Quantity INT,

    HargaSatuan DECIMAL(10, 2),

    Subtotal DECIMAL(10, 2)

);

— Tabel Stok

CREATE TABLE Stok (

    StokID SERIAL PRIMARY KEY,

    KodeBarang INT REFERENCES barang(KodeBarang),

    JumlahStok INT,

    LastUpdate TIMESTAMP DEFAULT CURRENT_TIMESTAMP

);

Jangan lupa disimpan dan kami eksekusi file *.sql tersebut bersama perintah:

\i /home/amrilhs/test/buat_tabel.sql

Terkait path wilayah penyimpanan file *.sql, kamu mampu menyesuaikannya sendiri, ya.

Sintaks pembuatan tabel

Hasilnya seperti gambar di bawah ini.

Hasil table basis data

Konsultasi sekarang dengan ahlinya: ade prasetyo

Ketiga, Insert Data dan Menampilkan Data Menggunakan Procedure SQL

Selanjutnya, kami dapat mencoba menyimpan/menambahkan data di tiap-tiap tabel yang telah ada. Cara yang digunakan adalah menggunakan procedure SQL. Procedure SQL adalah kumpulan instruksi yang disimpan di di dalam basis data dan mampu dipanggil secara berulang-ulang.

Perintah menjalankannya adalah Call <nama_file_procedure>. Langkah awal adalah terhubung file editor baru seperti nano atau vim atau editor lainnya, dan skrip yang dimaksud adalah sebagai berikut.

CREATE PROCEDURE insert_data_into_tables()

LANGUAGE plpgsql

AS

$$

BEGIN

— 1. Masukkan data ke tabel distributor

INSERT INTO distributor (Nama, Alamat, Telp)

VALUES

(‘PT. ABC’, ‘Jl. Merdeka No. 100, Jakarta’, ‘021-12345678’),

(‘PT. DEF’, ‘Jl. Thamrin No. 200, Jakarta’, ‘021-23456789’),

(‘PT. GHI’, ‘Jl. Gatot Subroto No. 300, Jakarta’, ‘021-34567890’),

(‘PT. JKL’, ‘Jl. Sudirman No. 400, Jakarta’, ‘021-45678901’),

(‘PT. MNO’, ‘Jl. Hasanudin No. 500, Jakarta’, ‘021-56789012’);

— 2. Masukkan data ke tabel barang

INSERT INTO barang (Nama, Deskripsi, Harga)

VALUES

(‘Laptop ASUS VivoBook’, ‘Laptop bersama prosesor Intel Core i5 dan RAM 8 GB’, 7000000),

(‘Smartphone Samsung Galaxy A53’, ‘Smartphone bersama layar Super AMOLED 6,5 inci dan kamera 64 MP’, 5000000),

(‘TV LED LG 43 Inch’, ‘TV LED bersama resolusi 4K dan HDR’, 7500000),

(‘Mesin Cuci Samsung 10 Kg’, ‘Mesin cuci bersama kapasitas 10 kg dan fitur Eco Bubble’, 5500000),

(‘Setrika Philips GC3902’, ‘Setrika bersama teknologi OptimalTemp’, 250000);

— 3. Masukkan data ke tabel pembelian

INSERT INTO pembelian (DistributorID, TglPembelian, TglPengiriman, TotalHarga)

VALUES

(1, ‘2023-10-20’, ‘2023-10-25’, 12000000),

(2, ‘2023-10-21’, ‘2023-10-26’, 15000000),

(3, ‘2023-10-22’, ‘2023-10-27’, 20000000),

(4, ‘2023-10-23’, ‘2023-10-28’, 17500000),

(5, ‘2023-10-24’, ‘2023-10-29’, 10500000);

— 4. Masukkan data ke tabel detil pembelian

INSERT INTO detailpembelian (OrderID, KodeBarang, Quantity, HargaSatuan, Subtotal)

VALUES

(1, 1, 1, 7000000, 7000000),

(1, 2, 2, 5000000, 10000000),

(2, 3, 3, 7500000, 22500000),

(3, 4, 4, 5500000, 22000000),

(4, 5, 5, 250000, 1250000);

— 5. Masukkan data ke tabel stok

INSERT INTO stok (KodeBarang, JumlahStok)

VALUES

(1, 100),

(2, 200),

(3, 300),

(4, 400),

(5, 500);

END;

$$

Kemudian, simpan bersama nama insert_table.sql. Setelah itu, jalankan bersama perintah membawa dampak procedure seperti di bawah ini.

Perintah membawa dampak prosedur

Untuk mengeksekusi procedure tadi, menggunakan perintah berikut.

Call insert_data_into_tables();

Perintah untuk mengeksekusi prosedur di atas

Setelah jalankan insert data, kami dapat coba menampilkan data tersebut. Caranya sama, cuma perintahnya saja yang berbeda. Buat satu file dan simpan bersama nama display_table.sql. Skripnya seperti di bawah ini.

CREATE OR REPLACE PROCEDURE tampilkan_data()

LANGUAGE plpgsql

AS

$$

DECLARE

    distributor_record record;

    barang_record record;

    pembelian_record record;

    detailpembelian_record record;

    stok_record record;

BEGIN

    — 1. Tampilkan data tabel distributor

    FOR distributor_record IN (SELECT * FROM distributor)

    LOOP

        RAISE NOTICE ‘Distributor: %’, distributor_record;

    END LOOP;

    — 2. Tampilkan data tabel barang

    FOR barang_record IN (SELECT * FROM barang)

    LOOP

        RAISE NOTICE ‘Barang: %’, barang_record;

    END LOOP;

    — 3. Tampilkan data tabel pembelian

    FOR pembelian_record IN (SELECT * FROM pembelian)

    LOOP

        RAISE NOTICE ‘Pembelian: %’, pembelian_record;

    END LOOP;

    — 4. Tampilkan data tabel detil pembelian

    FOR detailpembelian_record IN (SELECT * FROM detailpembelian)

    LOOP

        RAISE NOTICE ‘Detail Pembelian: %’, detailpembelian_record;

    END LOOP;

    — 5. Tampilkan data tabel stok

    FOR stok_record IN (SELECT * FROM stok)

    LOOP

        RAISE NOTICE ‘Stok: %’, stok_record;

    END LOOP;

END;

$$;

Untuk path penyimpanan file, silahkan kamu sesuaikan sendiri, ya. Kemudian jalankan perintah tersebut.