Sistem Pemesanan: Mengenal Database Pelanggan, Pesan, Produk, dan Faktur Dengan Menggunakan Metode DML JOIN

Halo pembaca! Pada kesempatan kali ini, kami akan membahas tentang Sistem Pemesanan. Sistem Pemesanan adalah suatu sistem yang digunakan oleh perusahaan untuk melakukan pemesanan produk oleh pelanggan. Pada sistem ini, terdapat beberapa database yang harus diatur, antara lain database pelanggan, pesan, produk, dan faktur.

1.    Database Pelanggan

Database pelanggan adalah database yang berisi informasi tentang pelanggan yang melakukan pemesanan produk pada perusahaan. Pada database pelanggan terdapat beberapa kolom, yaitu id_pelanggan, nm_pelanggan, alamat, telepon, dan email. Id_pelanggan digunakan sebagai primary key dalam database pelanggan, sedangkan nm_pelanggan, alamat, telepon, dan email adalah informasi yang harus diisi oleh pelanggan saat melakukan pendaftaran.

Berikut adalah script untuk membuat tabel pelanggan dalam database Sistem_Pemesanan:

CREATE TABLE pelanggan (

  id_pelanggan VARCHAR(10) PRIMARY KEY,

  nm_pelanggan VARCHAR(50),

  alamat VARCHAR(100),

  telepon VARCHAR(15),

  email VARCHAR(50)

);


Setelah membuat tabel pelanggan, kita dapat memasukkan data pelanggan ke dalam tabel menggunakan perintah SQL INSERT. Berikut adalah contoh perintah SQL untuk memasukkan data ke dalam tabel pelanggan:

INSERT INTO pelanggan (id_pelanggan, nm_pelanggan, alamat, telepon, email) VALUES

  ('UAA001', 'Abiyasa', 'Ngastino', '08111222333', 'abiyasa@almaata.ac.id'),

  ('UAA002', 'Baladewa', 'Madura', '08222333444', 'baladewa@almaata.ac.id'),

  ('UAA003', 'Cakil', 'Goa', '08333444555', 'cakil@almaata.ac.id'),

  ('UAA004', 'Dasamuka', 'Ngalengka', '08444555666', 'dasamuka@almaata.ac.id'),

  ('UAA005', 'Ekalawya', 'Nishada', '08555666777', 'ekalawya@almaata.ac.id');

 



2.    Database Pesan

Database pesan adalah database yang berisi informasi tentang pesanan yang dilakukan oleh pelanggan. Pada database pesan terdapat beberapa kolom, yaitu id_pesan, id_pelanggan, dan tgl_pesan. Id_pesan digunakan sebagai primary key pada database pesan, sedangkan id_pelanggan adalah foreign key yang dihubungkan dengan database pelanggan.

Berikut adalah script untuk membuat tabel pesan dalam database Sistem_Pemesanan:

 CREATE TABLE pesan (

  id_pesan INT PRIMARY KEY,

  id_pelanggan VARCHAR(10),

  tgl_pesan DATE,

  FOREIGN KEY (id_pelanggan) REFERENCES pelanggan(id_pelanggan)

);


Setelah membuat tabel pesan, kita dapat memasukkan data pesan ke dalam tabel menggunakan perintah SQL INSERT. Berikut adalah contoh perintah SQL untuk memasukkan data ke dalam tabel pesan:

 INSERT INTO pesan (id_pesan, id_pelanggan, tgl_pesan)

VALUES

  (1, 'UAA001', '2020-10-28'),

  (2, 'UAA002', '2020-10-29'),

  (3, 'UAA002', '2020-10-30'),

  (4, 'UAA003', '2020-10-31'),

  (5, 'UAA004', '2020-10-31');



3.    Database Produk

Database produk adalah database yang berisi informasi tentang produk yang ditawarkan oleh perusahaan. Pada database produk terdapat beberapa kolom, yaitu id_produk, nm_produk, satuan, harga, dan stok. Id_produk digunakan sebagai primary key pada database produk.

 

Berikut adalah script untuk membuat tabel produk dalam database Sistem_Pemesanan:

CREATE TABLE produk (

  id_produk VARCHAR(10) PRIMARY KEY,

  nm_produk VARCHAR(50),

  satuan VARCHAR(10),

  harga INT,

  stock INT

);


Setelah membuat tabel produk, kita dapat memasukkan data produk ke dalam tabel menggunakan perintah SQL INSERT. Berikut adalah contoh perintah SQL untuk memasukkan data ke dalam tabel produk:

INSERT INTO produk (id_produk, nm_produk, satuan, harga, stock)

VALUES

  ('MIE001', 'Indomie Goreng', 'PCS', 2000, 100),

  ('MIE002', 'Sarimi Goreng', 'PCS', 1900, 200),

  ('ATK001', 'Pensil 2B', 'PCS', 5000, 50),

  ('ATK002', 'Bolpoint Standart', 'PCS', 7500, 100);

 



4.    Database Faktur

Database faktur adalah database yang berisi informasi tentang faktur yang dibuat setelah pelanggan melakukan pemesanan produk. Pada database faktur terdapat beberapa kolom, yaitu id_faktur, id_pesan, dan tgl_faktur. Id_faktur digunakan sebagai primary key pada database faktur, sedangkan id_pesan adalah foreign key yang dihubungkan dengan database pesan.

Berikut adalah script untuk membuat tabel faktur dalam database Sistem_Pemesanan:

 CREATE TABLE faktur (

  id_faktur VARCHAR(10) PRIMARY KEY,

  id_pesan INT,

  tgl_faktur DATE,

  FOREIGN KEY (id_pesan) REFERENCES pesan(id_pesan)

);


Setelah membuat tabel faktur, kita dapat memasukkan data faktur ke dalam tabel menggunakan perintah SQL INSERT. Berikut adalah contoh perintah SQL untuk memasukkan data ke dalam tabel faktur:

 INSERT INTO faktur (id_faktur, id_pesan, tgl_faktur)

VALUES

  ('INV001', 1, '2020-10-28'),

  ('INV002', 2, '2020-10-29'),

  ('INV003', 3, '2020-10-30'),

  ('INV004', 4, '2020-10-31');


Dalam sistem pemesanan, keempat database ini harus terhubung satu sama lain dengan baik untuk memastikan bahwa pemesanan produk berjalan lancar dan efisien. Semoga artikel ini bermanfaat bagi pembaca yang ingin mengembangkan sistem pemesanan di perusahaan mereka. Terima kasih telah membaca!


Perbedaan Penggunaan JOIN dan OUTER JOIN dalam SQL

Pertama-tama, mari kita bahas tentang penggunaan JOIN dalam SQL. JOIN digunakan untuk menggabungkan dua atau lebih tabel dalam database, dengan mencocokkan nilai kolom yang sama antara tabel-tabel tersebut. Di bawah ini adalah contoh penggunaan JOIN:

1.     Menggunakan WHERE

SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan, pesan.tgl_pesan 

FROM pelanggan, pesan

WHERE pelanggan.id_pelanggan=pesan.id_pelanggan;

 


2.     Menggunakan INNER JOIN

SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan, pesan.tgl_pesan 

FROM pelanggan

INNER JOIN pesan

ON pelanggan.id_pelanggan=pesan.id_pelanggan;

 


Kedua syntax di atas menghasilkan hasil yang sama yaitu menggabungkan tabel pelanggan dan pesan dengan mencocokkan nilai kolom id_pelanggan.

Selanjutnya, mari kita bahas tentang OUTER JOIN. OUTER JOIN digunakan untuk menggabungkan dua atau lebih tabel dalam database, tetapi mengembalikan semua baris dari salah satu tabel bahkan jika tidak ada nilai yang cocok pada tabel lainnya. Dalam OUTER JOIN terdapat dua jenis yaitu LEFT JOIN dan RIGHT JOIN. Berikut ini contoh penggunaan LEFT JOIN:

 

1.     Menggunakan LEFT JOIN

SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan, pesan.tgl_pesan 

FROM pelanggan

LEFT JOIN pesan

ON pelanggan.id_pelanggan=pesan.id_pelanggan;

 


Syntax di atas akan mengembalikan semua baris dari tabel pelanggan, termasuk baris yang tidak memiliki nilai cocok pada tabel pesan. Sedangkan untuk baris yang tidak memiliki nilai cocok pada tabel pelanggan akan dikembalikan nilai NULL.

 

2.     Menggunakan RIGHT JOIN

SELECT  pesan.id_pesan, pesan.tgl_pesan, pelanggan.id_pelanggan, pelanggan.nm_pelanggan

FROM pesan

RIGHT JOIN pelanggan

ON pelanggan.id_pelanggan=pesan.id_pelanggan;

 


Syntax di atas akan mengembalikan semua baris dari tabel pesan, termasuk baris yang tidak memiliki nilai cocok pada tabel pelanggan. Sedangkan untuk baris yang tidak memiliki nilai cocok pada tabel pesan akan dikembalikan nilai NULL.

Terakhir, mari kita bahas tentang penggabungan 3 tabel dalam database. Berikut ini contoh penggunaannya:


Menggabungkan antara tabel pelanggan, pesan, dan faktur

SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan, pesan.tgl_pesan, faktur.id_faktur, faktur.tgl_faktur

FROM pelanggan

INNER JOIN pesan

ON pelanggan.id_pelanggan=pesan.id_pelanggan

INNER JOIN faktur

ON pesan.id_pesan=faktur.id_pesan;

 


Syntax di atas akan menggabungkan tabel pelanggan, pesan, dan faktur dengan mencocokkan nilai kolom id_pelanggan dan id_pesan. Ini adalah contoh penggunaan INNER JOIN untuk menggabungkan lebih dari dua tabel dalam database.

Selain itu, kita juga perlu memperhatikan bahwa penggunaan JOIN dan OUTER JOIN harus disesuaikan dengan kebutuhan data yang ingin diperoleh. JOIN biasanya digunakan untuk menggabungkan data yang saling berkaitan, sedangkan OUTER JOIN digunakan untuk menggabungkan data yang mungkin tidak memiliki nilai cocok pada tabel lainnya.

Dalam penggunaan OUTER JOIN, kita juga perlu memperhatikan jenis OUTER JOIN yang digunakan, apakah LEFT JOIN atau RIGHT JOIN, karena hal ini akan mempengaruhi baris data yang dikembalikan.

Sedangkan untuk penggabungan tiga tabel atau lebih, kita dapat menggunakan INNER JOIN untuk menggabungkan dua tabel terlebih dahulu, kemudian menggabungkan tabel hasil JOIN dengan tabel lainnya menggunakan INNER JOIN kembali.

Ketika mengoptimalkan penggunaan JOIN dan OUTER JOIN, kita juga perlu memperhatikan indeks pada kolom yang digunakan untuk mencocokkan nilai antara tabel, sehingga proses penggabungan data dapat dilakukan dengan lebih cepat dan efisien.

Dengan memahami perbedaan penggunaan JOIN dan OUTER JOIN serta cara menggabungkan tiga tabel dalam database, kita dapat menghasilkan data yang lebih akurat dan lengkap sesuai dengan kebutuhan kita. Selain itu, kita juga perlu memperhatikan bahwa penggunaan JOIN dan OUTER JOIN harus disesuaikan dengan kebutuhan data yang ingin diperoleh. JOIN biasanya digunakan untuk menggabungkan data yang saling berkaitan, sedangkan OUTER JOIN digunakan untuk menggabungkan data yang mungkin tidak memiliki nilai cocok pada tabel lainnya.

Kita juga perlu memperhatikan jenis OUTER JOIN yang digunakan, apakah LEFT JOIN atau RIGHT JOIN, karena hal ini akan mempengaruhi baris data yang dikembalikan. Sedangkan untuk penggabungan tiga tabel atau lebih, kita dapat menggunakan INNER JOIN untuk menggabungkan dua tabel terlebih dahulu, kemudian menggabungkan tabel hasil JOIN dengan tabel lainnya menggunakan INNER JOIN kembali.

Perhatikan juga indeks pada kolom yang digunakan untuk mencocokkan nilai antara tabel untuk mengoptimalkan penggunaan JOIN dan OUTER JOIN, sehingga proses penggabungan data dapat dilakukan dengan lebih cepat dan efisien. Dengan memahami perbedaan penggunaan JOIN dan OUTER JOIN serta cara menggabungkan tiga tabel dalam database, kita dapat menghasilkan data yang lebih akurat dan lengkap sesuai dengan kebutuhan kita.

 

Semoga penjelasan ini bisa membantu dan tidak menimbulkan kebingungan lebih lanjut. Terima kasih!


Komentar