SlideShare a Scribd company logo
1 of 76
Download to read offline
Universitas Nasional Pasim | DBMS | Kelompok MySQL | 2013
Now, our
Presentation
is about
Presenter
Andi Sopandi
Husnul K. (0203122062)
Hygsan
Asep Ardi Winardi Salam
Poin Pembahasan
Installasi5
Studi Kasus & Demo6
Spesifikasi4
Sejarah1
Kelebihan & Kekurangan3
Teknologi / Fitur2
Sejarah
Sejarah MySQL1
Tahun 1979
Michael Widenius
(Monty) at TcX
UNIREG
TcX mengembangkan UNIREGdengan interface builder yang menggunakan low-
level connectionISAM storage
UNIREG terlalu sulit untuk dikembangkan menjadi web base interface, sehingga
TcX mulai mencari alternatif lain.
Mencoba menggunakan mSQL, namun tidak mensupport indexing
Sejarah MySQL1
Tahun 1995
Perusahaan
TcX
MySQLUNIREG + mSQL
Monty mengajak David Huges, yaitu seorang pembuat mSQL, agar tertarik untuk
menghubungkan antara mSQL dengan UNIREG B+ ISAM sehingga
mampu menyediakan indexing untuk mSQL
melakukan kombinasi antara API mSQL dengan sistem UNIREG
MySQL pertama versi 1.0
Sejarah MySQL1
Tahun 1998 Perusahaan TcX MySQL AB
MySQL versi 3.11 menjadi Open Sourcedan merilis software dibawah GPL (General
Public Licence)
Perubahan ini memungkinkan kontrol komersial yang lebih baikdalam
pengembangan dan support dari MYSQL
TcX berubah nama menjadi MySQL AB (Swedia)
Sejarah MySQL1
Tahun 2008 Sun Microsystem, Inc
Sun Microsystems, Inc mengumumkan aksi korporasi - akuisisi terhadap MySQL AB
MySQL AB
Sun menjadi salah satu perusahaan dengan produk platform open source
terbesar seperti Java, OpenSolaris dan akhirnya MySQL
Sejarah MySQL1
Tahun 2009 Oracle
Oracle melakukan akusisi terhadap Sun Microsystems.
Sun Microsystem, Inc
Berkembang isu Oracle yang memiliki produk database yang berkompetisi dengan
MySQL akan mematikan MySQL. Namun sampai sejauh ini hal tersebut belum terbukti
Teknologi /
fitur
Teknologi / Fitur-fitur MySQL2
Security5
Scalability and Limits
Connectivity
Client & Tools
6
7
8
Portability1
Data Types
Localization
Statements & Functions
2
3
4
1. Portability
MySQL dapat berjalan stabil pada berbagai platform :
Teknologi / Fitur-fitur MySQL
Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga,
Novell NetWare dan lain-lain.
http://dev.mysql.com/doc/refman/5.0/en/supported-os.html
2
2. Data Types
MySQL memiliki ragam tipe datayang sangat kaya, seperti signed
( -128 to 127) / unsigned ( 0 to 255) integer, float, double, char, varchar, binnary,
text, blob, date, datetime, timestamp, year, dan tipe spatial OpenGIS dan lain-lain.
http://dev.mysql.com/doc/refman/5.6/en/data-types.html
Teknologi / Fitur-fitur MySQL2
3. Statements & Functions
MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah
Select dan Where dalam perintah (query).
Teknologi / Fitur-fitur MySQL
Full support untuk SQL GROUP BY dan ORDER BY
Support untuk LEFT OUTER JOIN and RIGHT OUTER JOIN sesuai standar SQL dan
sintak ODBC.
2
4. Localization
MySQL dapat mendeteksi pesan errorpada klien dengan menggunakan lebih
dari dua puluh bahasa. Meski pun demikian, bahasa Indonesia belum
termasuk di dalamnya.
Teknologi / Fitur-fitur MySQL2
5. Security
Hak akses dan password sistem dapat dikontrol secara fleksibel, dan berbasis
host verification.
Teknologi / Fitur-fitur MySQL
Sekuritas Password dengan menggunakan encryption untuk semua lalu lintas
password ketika melakukan koneksi ke server.
2
6. Scalability and Limits
MySQL mampu menangani basis data dalam skala besar, dengan jumlah record sampai
50 jutadan 200 ribu tabel serta 5 milyar baris. Selain itu batas indeks yang
dapat ditampung mencapai 64 indeks pada tiap tabelnya
Teknologi / Fitur-fitur MySQL2
http://dev.mysql.com/doc/refman/5.6/en/features.html
7. Connectivity
Client dapat terhubung ke MySQL Server menggunakan berbagai protokol :
protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).
Teknologi / Fitur-fitur MySQL
Tersedia API untuk C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, and Tcl sehingga
memungkinkan MySQL client ditulis dalam berbagai bahasa pemrograman.
2
Mendukung ODBC (Open Database Connectivity), JDBC (java konektor) & MySQL
Connector/.Net (.Net konektor).
8. Client & Tools
MySQL menyediakan berbagai client dan utility program. Diantaranya command-line
program seperti mysqldump and mysqladmin, dan grafikal program seperti
MySQL Workbench, SQLyog, HeidiSQL, Navicat, Toad dll.
Teknologi / Fitur-fitur MySQL2
Kelebihan &
Kekurangan
Kelebihan & Kekurangan MySQL3
disokong oleh komunitas pengguna yang besar
Mendukung web baseClient
FOSS (Free & Opensource Software) dibawah GPL (General Public License)
Kelebihan
http://www.mysql.com/why-mysql/
Hampir semua perusahaan web-hosting menyediakan akses ke MySQL.
Kelebihan & Kekurangan MySQL3
Kekurangan
Tidak support untuk case sensitive
Lisensi komersial untuk redistribusi komersial
Spesifikasi
Spesifikasi MySQL4
Mendukung OS baik versi 32-bit maupun 64-bit.
Support TCP/IP.
RAM min 215 Mb.
Hardware & Software
Installasi
Installasi MySQL
Installasi MySQL5
Download
MySQL for windows
dan install
http://dev.mysql.com/downloads/installer/
Installasi
MySQL
5
Installasi
MySQL
5
Installasi
MySQL
5
Installasi
MySQL
5
Installasi
MySQL
5
Installasi
MySQL
5
4 Installasi
MySQL
Installasi
MySQL
5
Installasi
MySQL
5
Installasi
MySQL
5
Installasi
MySQL
5
Installasi
MySQL
5
Installasi
MySQL
5
Installasi MySQL
Installasi MySQL5
Download
XAMPP for windows
dan install
http://www.apachefriends.org/en/xampp-windows.html/
Installasi
MySQL
5
Installasi
MySQL
5
Installasi
MySQL
5
Installasi
MySQL
5
Installasi
MySQL
5
Installasi
MySQL
5
Studi Kasus
& Demo
Pengelolaan Stok Barang
Mencatat seluruh data barang berdasarkan kategorinya.
Studi Kasus6
Mencatat data masuk dan keluarbarang per hari.
Mencatat histori masuk dan keluar per data barang.
Mencatat
seluruh data
barang
berdasarkan
kategorinya.
Studi Kasus6
Mencatat data barang
masuk dan keluar
per hari.
Studi Kasus6
Mencatat
histori masuk
dan keluar per
data barang.
6
Entitas yang terlibat
Studi Kasus6
Customer+
Supplier+
Barang+
Kategori+
Relasi antar Entitas
Studi Kasus6
Tabel - tabel
Studi Kasus6
1. m_barang
2. m_customer
3. m_supplier
4. r_kategori_barang
5. t_transak_keluar
6. t_det_transak_keluar
7. t_log_transak_keluar
8. t_log_det_transak_keluar
9. t_transak_masuk
10.t_det_transak_masuk
11.t_log_transak_masuk
12.t_log_det_transak_masuk
Procedure
Studi Kasus6
1. sp_GetAllBarang()
2. sp_GetBarangById()
3. sp_GetCustomerByNama()
4. sp_InsertTransakMasuk()
5. sp_InsertDetTransakMasuk()
6. sp_InsertTransakKeluar()
7. sp_InsertDetTransakKeluar()
8. sp_UpdateTransakMasuk()
9. sp_UpdateDetTransakMasuk()
10.sp_UpdateTransakKeluar()
11.sp_UpdateDetTransakKeluar()
12.sp_DeleteTransakMasuk()
13.sp_DeleteDetTransakMasuk()
14.sp_DeleteTransakKeluar()
15.sp_DeleteDetTransakKeluar()
Function
Studi Kasus6
1. fn_getTotalTransakMasukByNoSuratJalan()
2. fn_getTotalTransakKeluarByNoSuratJalan()
Trigger
Studi Kasus6
1. after_insert_t_transak_masuk
2. after_insert_t_det_transak_masuk
3. after_update_t_transak_masuk
4. after_update_t_det_transak_masuk
5. after_update_t_transak_keluar
6. after_update_t_det_transak_keluar
CREATE DATABASE db_inventori;
CREATE TABLE m_supplier(
id_supplier INT PRIMARY KEY
AUTO_INCREMENT,
nama VARCHAR(50) NOT NULL,
alamat VARCHAR(255) NULL,
no_telp VARCHAR(20) NULL
);
CREATE TABLE m_customer(
id_customer INT PRIMARY KEY
AUTO_INCREMENT,
nama VARCHAR(50) NOT NULL,
alamat VARCHAR(255) NULL,
no_telp VARCHAR(20) NULL
);
CREATE TABLE m_barang(
id_barang INT PRIMARY KEY
AUTO_INCREMENT,
id_kategori_barang INT NOT NULL,
nama VARCHAR(50) NOT NULL,
merk VARCHAR(50) NULL
);
CREATE TABLE r_kategori_barang(
id_kategori_barang INT PRIMARY KEY
AUTO_INCREMENT,
nama VARCHAR(50) NOT NULL
);
Tabel Master
CREATE TABLE t_transak_masuk(
id_transak_masuk INT PRIMARY KEY
AUTO_INCREMENT,
id_supplier INT NOT NULL,
tgl_transak DATE NOT NULL,
no_surat_jalan VARCHAR(20) NOT NULL,
ket TEXT NULL,
is_deleted TINYINT(1) NOT NULL DEFAULT 0
);
CREATE TABLE t_det_transak_masuk(
id_det_transak_masuk INT PRIMARY KEY
AUTO_INCREMENT,
no_surat_jalan VARCHAR(20) NOT NULL,
id_barang INT NOT NULL,
jml_masuk BIGINT DEFAULT 0,
is_deleted TINYINT(1) NOT NULL DEFAULT 0
);
CREATE TABLE t_log_transak_masuk(
id_log_transak_masuk INT PRIMARY KEY
AUTO_INCREMENT,
id_transak_masuk INT NOT NULL,
tgl_log TIMESTAMP NOT NULL,
no_surat_jalan VARCHAR(20) NOT NULL,
aksi VARCHAR(15) NOT NULL
);
CREATE TABLE t_log_det_transak_masuk(
id_log_det_transak_masuk INT PRIMARY KEY
AUTO_INCREMENT,
tgl_log TIMESTAMP NOT NULL,
no_surat_jalan VARCHAR(20) NOT NULL,
id_det_transak_masuk INT NOT NULL,
aksi VARCHAR(15) NOT NULL
);
Tabel Transaksi Masuk
CREATE TABLE t_transak_keluar(
id_transak_keluar INT PRIMARY KEY
AUTO_INCREMENT,
id_customer INT NOT NULL,
tgl_transak DATE NOT NULL,
no_surat_jalan VARCHAR(20) NOT NULL,
ket TEXT NULL,
is_deleted TINYINT(1) NOT NULL DEFAULT 0
);
CREATE TABLE t_det_transak_keluar(
id_det_transak_keluar INT PRIMARY KEY
AUTO_INCREMENT,
no_surat_jalan VARCHAR(20) NOT NULL,
id_barang INT NOT NULL,
jml_keluar BIGINT DEFAULT 0,
is_deleted TINYINT(1) NOT NULL DEFAULT 0
);
CREATE TABLE t_log_transak_keluar(
id_log_transak_keluar INT PRIMARY KEY
AUTO_INCREMENT,
id_transak_keluar INT NOT NULL,
tgl_log TIMESTAMP NOT NULL,
no_surat_jalan VARCHAR(20) NOT NULL,
aksi VARCHAR(15) NOT NULL
);
CREATE TABLE t_log_det_transak_keluar(
id_log_det_transak_keluar INT PRIMARY KEY
AUTO_INCREMENT,
tgl_log TIMESTAMP NOT NULL,
no_surat_jalan VARCHAR(20) NOT NULL,
id_det_transak_keluar INT NOT NULL,
aksi VARCHAR(15) NOT NULL
);
Tabel Transaksi Keluar
CREATE VIEW v_TransakMasuk AS
SELECT a.no_surat_jalan, a.tgl_transak,
c.nama AS nama_supplier,
d.nama AS nama_barang,
e.nama AS nama_kategori,
b.jml_masuk AS jml_masuk
FROM t_transak_masuk a
JOIN t_det_transak_masuk b ON a.no_surat_jalan = b.no_surat_jalan
JOIN m_supplier c ON a.id_supplier = c.id_supplier
JOIN m_barang d ON b.id_barang = d.id_barang
JOIN r_kategori_barang e ON d.id_kategori_barang = e.id_kategori_barang
WHERE a.is_deleted = 0;
View
DELIMITER //
CREATE PROCEDURE sp_GetAllBarang()
BEGIN
SELECT *
FROM m_barang;
END//
CREATE PROCEDURE sp_GetBarangById(IN _id INT)
BEGIN
SELECT *
FROM m_barang
WHERE id_barang=_id;
END//
CREATE PROCEDURE sp_GetCustomerByNama(IN _nama VARCHAR(50))
BEGIN
SELECT *
FROM m_customer
WHERE nama LIKE CONCAT('%', _nama, '%');
END//
Store Procedure Get Data
DELIMITER //
CREATE PROCEDURE sp_InsertTransakMasuk(
IN _id_supplier INT,
IN _tgl_transak DATE,
IN _no_surat_jalan VARCHAR(20),
IN _ket TEXT)
BEGIN
INSERT INTO t_transak_masuk(id_supplier, tgl_transak, no_surat_jalan, ket)
VALUES(_id_supplier, _tgl_transak, _no_surat_jalan, _ket);
END //
CREATE PROCEDURE sp_InsertDetTransakMasuk(
IN _no_surat_jalan VARCHAR(20),
IN _id_barang INT,
IN _jml_masuk BIGINT(20))
BEGIN
IF NOT EXISTS (SELECT id_transak_masuk FROM t_transak_masuk WHERE no_surat_jalan=_no_surat_jalan) THEN
SELECT 'No. Surat Jalan tidak ada di dalam database!' AS status;
ELSE
INSERT INTO t_det_transak_masuk(no_surat_jalan, id_barang, jml_masuk)
VALUES(_no_surat_jalan, _id_barang, _jml_masuk);
END IF;
END //
Store Procedure Insert Transaksi Masuk
DELIMITER //
CREATE PROCEDURE sp_InsertTransakKeluar(
IN _id_customer INT,
IN _tgl_transak DATE,
IN _no_surat_jalan VARCHAR(20),
IN _ket TEXT)
BEGIN
INSERT INTO t_transak_keluar(id_customer, tgl_transak, no_surat_jalan, ket)
VALUES(_id_customer, _tgl_transak, _no_surat_jalan, _ket);
END //
CREATE PROCEDURE sp_InsertDetTransakKeluar(
IN _no_surat_jalan VARCHAR(20),
IN _id_barang INT,
IN _jml_keluar BIGINT(20))
BEGIN
IF NOT EXISTS (SELECT id_transak_keluar FROM t_transak_keluar WHERE no_surat_jalan=_no_surat_jalan) THEN
SELECT 'No. Surat Jalan tidak ada di dalam database!' AS status;
ELSE
INSERT INTO t_det_transak_keluar(no_surat_jalan, id_barang, jml_keluar)
VALUES(_no_surat_jalan, _id_barang, _jml_keluar);
END IF;
END //
Store Procedure Insert Transaksi Keluar
DELIMITER //
CREATE PROCEDURE sp_UpdateTransakMasuk(
IN _id_supplier INT,
IN _tgl_transak DATE,
IN _no_surat_jalan VARCHAR(20),
IN _ket TEXT,
IN _id_transak_masuk INT)
BEGIN
UPDATE t_transak_masuk SET id_supplier=_id_supplier, tgl_transak=_tgl_transak, no_surat_jalan=_no_surat_jalan,
ket=_ket WHERE id_transak_masuk=_id_transak_masuk;
END //
CREATE PROCEDURE sp_UpdateDetTransakMasuk(
IN _no_surat_jalan VARCHAR(20),
IN _id_barang INT,
IN _jml_masuk BIGINT(20),
IN _id_det_transak_masuk INT)
BEGIN
IF NOT EXISTS (SELECT id_transak_masuk FROM t_transak_masuk WHERE no_surat_jalan=_no_surat_jalan) THEN
SELECT 'No. Surat Jalan tidak ada di dalam database!' AS status;
ELSE
UPDATE t_det_transak_masuk SET id_barang=_id_barang, jml_masuk=_jml_masuk WHERE id_det_transak_masuk=_id_det_transak_masuk;
END IF;
END //
Store Procedure Update Transaksi Masuk
DELIMITER //
CREATE PROCEDURE sp_UpdateTransakKeluar(
IN _id_customer INT,
IN _tgl_transak DATE,
IN _no_surat_jalan VARCHAR(20),
IN _ket TEXT,
IN _id_transak_keluar INT)
BEGIN
UPDATE t_transak_keluar SET id_customer=_id_customer, tgl_surat=_tgl_surat, no_surat_jalan=_no_surat_jalan,
ket=_ket WHERE id_transak_keluar=_id_transak_keluar;
END //
CREATE PROCEDURE sp_UpdateDetTransakKeluar(
IN _no_surat_jalan VARCHAR(20),
IN _id_barang INT,
IN _jml_keluar BIGINT(20),
IN _id_det_transak_keluar INT)
BEGIN
IF NOT EXISTS (SELECT id_transak_keluar FROM t_transak_keluar WHERE no_surat_jalan=_no_surat_jalan) THEN
SELECT 'No. Surat Jalan tidak ada di dalam database!' AS status;
ELSE
UPDATE t_det_transak_keluar SET id_barang=_id_barang, jml_masuk=_jml_masuk
WHERE id_det_transak_keluar=_id_det_transak_keluar;
END IF;
END //
Store Procedure Update Transaksi Keluar
DELIMITER //
CREATE PROCEDURE sp_DeleteTransakMasuk(IN _no_surat_jalan VARCHAR(20), OUT flag TINYINT)
BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK;
START TRANSACTION;
SET flag = 0;
UPDATE t_transak_masuk SET is_deleted=1 WHERE no_surat_jalan=_no_surat_jalan;
UPDATE t_det_transak_masuk SET is_deleted=1 WHERE no_surat_jalan=_no_surat_jalan;
SET flag = 1;
COMMIT;
END //
CREATE PROCEDURE sp_DeleteDetTransakMasuk(IN _id_det_transak_masuk INT)
BEGIN
UPDATE t_det_transak_masuk SET is_deleted=1 WHERE
id_det_transak_masuk=_id_det_transak_masuk;
END //
Store Procedure Delete Transaksi Masuk
DELIMITER //
CREATE PROCEDURE sp_DeleteTransakKeluar(IN _id_transak_keluarINT)
BEGIN
UPDATE t_transak_keluar SET is_deleted=1 WHERE
id_transak_keluar=_id_transak_keluar;
END //
CREATE PROCEDURE sp_DeleteDetTransakKeluar(IN _id_det_transak_keluar
INT)
BEGIN
UPDATE t_det_transak_keluar SET is_deleted=1 WHERE
id_det_transak_keluar=_id_det_transak_keluar;
END //
Store Procedure Delete Transaksi Keluar
DELIMITER //
CREATE TRIGGER after_insert_t_transak_masuk AFTER INSERT ON t_transak_masuk FOR EACH ROW
BEGIN
IF NEW.is_deleted THEN
SET @aksi = 'DELETE';
ELSE
SET @aksi = 'NEW';
END IF;
INSERT INTO t_log_transak_masuk(tgl_log, id_transak_masuk, no_surat_jalan, aksi) VALUES(NOW(), NEW.id_transak_masuk,
NEW.no_surat_jalan, @aksi);
END //
CREATE TRIGGER after_insert_t_det_transak_masuk AFTER INSERT ON t_det_transak_masuk FOR EACH ROW
BEGIN
IF NEW.is_deleted THEN
SET @aksi = 'DELETE';
ELSE
SET @aksi = 'NEW';
END IF;
INSERT INTO t_log_det_transak_masuk(tgl_log, id_det_transak_masuk, no_surat_jalan, aksi) VALUES(NOW(),
NEW.id_det_transak_masuk, NEW.no_surat_jalan, @aksi);
END //
Trigger Insert Barang Masuk
DELIMITER //
CREATE TRIGGER after_update_t_transak_masuk AFTER UPDATE ON t_transak_masuk FOR EACH ROW
BEGIN
IF NEW.is_deleted THEN
SET @aksi = 'DELETE';
ELSE
SET @aksi = 'EDIT';
END IF;
INSERT INTO t_log_transak_masuk(tgl_log, id_transak_masuk, no_surat_jalan, aksi) VALUES(NOW(),
NEW.id_transak_masuk, NEW.no_surat_jalan, @aksi);
END //
CREATE TRIGGER after_update_t_det_transak_masuk AFTER UPDATE ON t_det_transak_masuk FOR EACH ROW
BEGIN
IF NEW.is_deleted THEN
SET @aksi = 'DELETE';
ELSE
SET @aksi = 'EDIT';
END IF;
INSERT INTO t_log_det_transak_masuk(tgl_log, id_det_transak_masuk, no_surat_jalan, aksi) VALUES(NOW(),
NEW.id_det_transak_masuk, NEW.no_surat_jalan, @aksi);
END //
Trigger Update Barang Masuk
DELIMITER //
CREATE TRIGGER after_update_t_transak_keluar AFTER UPDATE ON t_transak_keluar FOR EACH ROW
BEGIN
IF NEW.is_deleted THEN
SET @aksi = 'DELETE';
ELSE
SET @aksi = 'EDIT';
END IF;
INSERT INTO t_log_transak_keluar(tgl_log, id_transak_keluar, no_surat_jalan, aksi) VALUES(NOW(), NEW.id_transak_keluar,
NEW.no_surat_jalan, @aksi);
END //
CREATE TRIGGER after_update_t_det_transak_keluar AFTER UPDATE ON t_det_transak_keluar FOR EACH ROW
BEGIN
IF NEW.is_deleted THEN
SET @aksi = 'DELETE';
ELSE
SET @aksi = 'EDIT';
END IF;
INSERT INTO t_log_det_transak_keluar(tgl_log, id_det_transak_keluar, no_surat_jalan, aksi) VALUES(NOW(),
NEW.id_det_transak_keluar, NEW.no_surat_jalan, @aksi);
END //
Trigger Update Barang Keluar
DELIMITER //
CREATE FUNCTION fn_getTotalTransakMasukByNoSuratJalan( _no_surat_jalan VARCHAR(20))
RETURNS INT
BEGIN
DECLARE total INT DEFAULT 0;
SET total = (SELECT SUM(jml_masuk) FROM t_det_transak_masuk WHERE
no_surat_jalan=_no_surat_jalan);
RETURN total;
END //
CREATE FUNCTION fn_getTotalTransakKeluarByNoSuratJalan( _no_surat_jalan VARCHAR(20))
RETURNS INT
BEGIN
DECLARE total INT DEFAULT 0;
SET total = (SELECT SUM(jml_masuk) FROM t_det_transak_keluar WHERE
no_surat_jalan=_no_surat_jalan);
RETURN total;
END //
Function
INSERT INTO r_kategori_barang(nama) VALUES('Elektronik');
INSERT INTO r_kategori_barang(nama) VALUES('ATK');
INSERT INTO r_kategori_barang(nama) VALUES('Makanan');
INSERT INTO r_kategori_barang(nama) VALUES('Minuman');
INSERT INTO m_barang(id_kategori_barang, nama, merk) VALUES(1, 'Tablet 10"', 'Samsung');
INSERT INTO m_barang(id_kategori_barang, nama, merk) VALUES(1, 'Tablet 7"', 'Samsung');
INSERT INTO m_barang(id_kategori_barang, nama, merk) VALUES(1, 'Laptop Sony Vaio 14"', 'Sony');
INSERT INTO m_barang(id_kategori_barang, nama, merk) VALUES(1, 'Sony Handycam', 'Sony');
INSERT INTO m_barang(id_kategori_barang, nama, merk) VALUES(2, 'Kertas F4', 'Sinar Dunia');
INSERT INTO m_barang(id_kategori_barang, nama, merk) VALUES(2, 'Kertas A4', 'Sinar Dunia');
INSERT INTO m_barang(id_kategori_barang, nama, merk) VALUES(3, 'Indomie Bawang Rasa Kari Ayam', 'Indomie');
INSERT INTO m_barang(id_kategori_barang, nama, merk) VALUES(3, 'Indomie Mie Goreng', 'Indomie');
INSERT INTO m_barang(id_kategori_barang, nama, merk) VALUES(4, 'Green Sands Original', 'Green Sands');
INSERT INTO m_barang(id_kategori_barang, nama, merk) VALUES(4, 'Green Sands Fruit', 'Green Sands');
INSERT INTO m_customer(nama, alamat, no_telp) VALUES('PT. ABC', 'Jl. Pasantren', '022123456');
INSERT INTO m_customer(nama, alamat, no_telp) VALUES('Saddam', 'Jl. Kavling IPTN', '022999999');
INSERT INTO m_customer(nama, alamat, no_telp) VALUES('Baso Bedu', 'Jl. Cihanjuang', '022333444');
INSERT INTO m_supplier(nama, alamat, no_telp) VALUES('PT. Sinar Dunia', 'Jawa Barat', '');
INSERT INTO m_supplier(nama, alamat, no_telp) VALUES('Sony Corp.', 'Japan', '');
INSERT INTO m_supplier(nama, alamat, no_telp) VALUES('Samsung', 'South Korea', '');
INSERT INTO m_supplier(nama, alamat, no_telp) VALUES('PT. Indofood', 'Jawa Barat', '');
INSERT INTO m_supplier(nama, alamat, no_telp) VALUES('PT. Green Sands', 'Jupiter', '');
Insert Data Dummy
/* parm: id_supplier, tgl_transak, no_surat_jalan, ket */
CALL sp_InsertTransakMasuk(3, NOW(), 'SJ001', 'tes pertama');
/* parm: no_surat_jalan, id_barang, jml_masuk */
CALL sp_InsertDetTransakMasuk('SJ001', 1, 10);
CALL sp_InsertDetTransakMasuk('SJ001', 2, 5);
/* parm: id_supplier, tgl_transak, no_surat_jalan, ket, id_transak_masuk */
CALL sp_UpdateTransakMasuk(3, NOW(), 'SJ001', 'tes update pertama', 1);
/* parm: no_surat_jalan, id_barang, jml_masuk, id_det_transak_masuk */
CALL sp_UpdateDetTransakMasuk('SJ001', 1, 5, 1);
CALL sp_UpdateDetTransakMasuk('SJ001', 2, 10, 2);
/* parm: no_surat_jalan, @flag */
CALL sp_DeleteTransakMasuk('SJ001', @flag);
SELECT @flag;
/* parm: id_det_transak_masuk */
CALL sp_DeleteDetTransakMasuk(1);
SELECT fn_getTotalTransakMasukByNoSuratJalan('SJ001') AS 'Jumlah Total Masuk';
Penggunaan Store Procedure
SHOW TRIGGERS;
DROP TRIGGER {trigger_name};
SHOW PROCEDURE STATUS;
DROP PROCEDURE {procedure_name};
SHOW FUNCTION STATUS;
DROP FUNCTION {function_name};
Common Functions MySQL
Sekian
Terimakasih
Universitas Nasional Pasim | DBMS | Kelompok MySQL | 2013

More Related Content

Viewers also liked

PERAN PEMERINTAH PUSAT DALAM PENYELENGGARAAN PEMERINTAHAN DAERAH SAAT INI DAN...
PERAN PEMERINTAH PUSAT DALAM PENYELENGGARAAN PEMERINTAHAN DAERAH SAAT INI DAN...PERAN PEMERINTAH PUSAT DALAM PENYELENGGARAAN PEMERINTAHAN DAERAH SAAT INI DAN...
PERAN PEMERINTAH PUSAT DALAM PENYELENGGARAAN PEMERINTAHAN DAERAH SAAT INI DAN...Deddy Supriady Bratakusumah
 
Tugas makalah manajemen Sem I
Tugas makalah manajemen Sem I Tugas makalah manajemen Sem I
Tugas makalah manajemen Sem I Dayat MoCiil
 
FUNGSI – FUNGSI DALAM MYSQL
FUNGSI – FUNGSI DALAM MYSQLFUNGSI – FUNGSI DALAM MYSQL
FUNGSI – FUNGSI DALAM MYSQLIbrahim Naki
 
Masalah sosial dan manfaat sosiologi 2016
Masalah sosial dan manfaat sosiologi 2016Masalah sosial dan manfaat sosiologi 2016
Masalah sosial dan manfaat sosiologi 2016Muchlis Soleiman
 
BMP EKMA4313 Akuntansi Keuangan Menengah II
BMP EKMA4313 Akuntansi Keuangan Menengah IIBMP EKMA4313 Akuntansi Keuangan Menengah II
BMP EKMA4313 Akuntansi Keuangan Menengah IIMang Engkus
 
BMP EKMA4315 Akuntansi Biaya
BMP EKMA4315 Akuntansi BiayaBMP EKMA4315 Akuntansi Biaya
BMP EKMA4315 Akuntansi BiayaMang Engkus
 
Soal Try Out UN Sosiologi dan Kunci Jawaban (2016)
Soal Try Out UN Sosiologi dan Kunci Jawaban (2016)Soal Try Out UN Sosiologi dan Kunci Jawaban (2016)
Soal Try Out UN Sosiologi dan Kunci Jawaban (2016)Fakhrudin Sujarwo
 
BMP EKMA4316 Hukum Bisnis
BMP EKMA4316 Hukum BisnisBMP EKMA4316 Hukum Bisnis
BMP EKMA4316 Hukum BisnisMang Engkus
 
BMP EKMA4158 Perilaku Organisasi
BMP EKMA4158 Perilaku OrganisasiBMP EKMA4158 Perilaku Organisasi
BMP EKMA4158 Perilaku OrganisasiMang Engkus
 
BMP EKMA4314 Akuntansi Manajemen
BMP EKMA4314 Akuntansi ManajemenBMP EKMA4314 Akuntansi Manajemen
BMP EKMA4314 Akuntansi ManajemenMang Engkus
 

Viewers also liked (11)

PERAN PEMERINTAH PUSAT DALAM PENYELENGGARAAN PEMERINTAHAN DAERAH SAAT INI DAN...
PERAN PEMERINTAH PUSAT DALAM PENYELENGGARAAN PEMERINTAHAN DAERAH SAAT INI DAN...PERAN PEMERINTAH PUSAT DALAM PENYELENGGARAAN PEMERINTAHAN DAERAH SAAT INI DAN...
PERAN PEMERINTAH PUSAT DALAM PENYELENGGARAAN PEMERINTAHAN DAERAH SAAT INI DAN...
 
Tugas makalah manajemen Sem I
Tugas makalah manajemen Sem I Tugas makalah manajemen Sem I
Tugas makalah manajemen Sem I
 
FUNGSI – FUNGSI DALAM MYSQL
FUNGSI – FUNGSI DALAM MYSQLFUNGSI – FUNGSI DALAM MYSQL
FUNGSI – FUNGSI DALAM MYSQL
 
Masalah sosial dan manfaat sosiologi 2016
Masalah sosial dan manfaat sosiologi 2016Masalah sosial dan manfaat sosiologi 2016
Masalah sosial dan manfaat sosiologi 2016
 
BMP EKMA4313 Akuntansi Keuangan Menengah II
BMP EKMA4313 Akuntansi Keuangan Menengah IIBMP EKMA4313 Akuntansi Keuangan Menengah II
BMP EKMA4313 Akuntansi Keuangan Menengah II
 
BMP EKMA4315 Akuntansi Biaya
BMP EKMA4315 Akuntansi BiayaBMP EKMA4315 Akuntansi Biaya
BMP EKMA4315 Akuntansi Biaya
 
Soal Try Out UN Sosiologi dan Kunci Jawaban (2016)
Soal Try Out UN Sosiologi dan Kunci Jawaban (2016)Soal Try Out UN Sosiologi dan Kunci Jawaban (2016)
Soal Try Out UN Sosiologi dan Kunci Jawaban (2016)
 
BMP EKMA4316 Hukum Bisnis
BMP EKMA4316 Hukum BisnisBMP EKMA4316 Hukum Bisnis
BMP EKMA4316 Hukum Bisnis
 
BMP EKMA4158 Perilaku Organisasi
BMP EKMA4158 Perilaku OrganisasiBMP EKMA4158 Perilaku Organisasi
BMP EKMA4158 Perilaku Organisasi
 
BMP ESPA4229
BMP ESPA4229BMP ESPA4229
BMP ESPA4229
 
BMP EKMA4314 Akuntansi Manajemen
BMP EKMA4314 Akuntansi ManajemenBMP EKMA4314 Akuntansi Manajemen
BMP EKMA4314 Akuntansi Manajemen
 

Similar to UNPAS MySQL 2013

Tutorial Installasi dan Melakukan DDL DML pada MariaDB
Tutorial Installasi dan Melakukan DDL DML pada MariaDBTutorial Installasi dan Melakukan DDL DML pada MariaDB
Tutorial Installasi dan Melakukan DDL DML pada MariaDBFahmi Helminardi
 
Kelebihan dan kekurangan database engine
Kelebihan dan kekurangan database engineKelebihan dan kekurangan database engine
Kelebihan dan kekurangan database engineroji muhidin
 
Bab12 backup dan restore basis data
Bab12 backup dan restore basis dataBab12 backup dan restore basis data
Bab12 backup dan restore basis dataAgung Sakepris
 
Zulkifli 201613012_tugas 5
Zulkifli 201613012_tugas 5Zulkifli 201613012_tugas 5
Zulkifli 201613012_tugas 5zulk ifli
 
Modul praktikum basis data
Modul praktikum basis dataModul praktikum basis data
Modul praktikum basis datahairul anwar
 
Tugas makalah 4 ka34 pemograman generasi ke 4
Tugas makalah 4 ka34 pemograman generasi ke 4Tugas makalah 4 ka34 pemograman generasi ke 4
Tugas makalah 4 ka34 pemograman generasi ke 4Maulana Rocky
 
Sekilas Tentang MySQL
Sekilas Tentang MySQLSekilas Tentang MySQL
Sekilas Tentang MySQLguestad850e
 
Tugas ii 0317_arie firmandani_1512510445
Tugas ii  0317_arie firmandani_1512510445Tugas ii  0317_arie firmandani_1512510445
Tugas ii 0317_arie firmandani_1512510445Arie Firmandani
 
PEMBUATAN TABEL DALAM DATABASE
PEMBUATAN TABEL DALAM DATABASEPEMBUATAN TABEL DALAM DATABASE
PEMBUATAN TABEL DALAM DATABASERäjù GùÑáwàn
 
Pembuatan tabel dalam database
Pembuatan tabel dalam databasePembuatan tabel dalam database
Pembuatan tabel dalam databasedefriharmegi
 
Software Application Windows Server 2008
Software Application Windows Server 2008Software Application Windows Server 2008
Software Application Windows Server 2008Heriyanto Wibowo
 
Windows Server 2008
Windows Server 2008Windows Server 2008
Windows Server 2008Iman Trianto
 

Similar to UNPAS MySQL 2013 (20)

Tutorial Installasi dan Melakukan DDL DML pada MariaDB
Tutorial Installasi dan Melakukan DDL DML pada MariaDBTutorial Installasi dan Melakukan DDL DML pada MariaDB
Tutorial Installasi dan Melakukan DDL DML pada MariaDB
 
Kelebihan dan kekurangan database engine
Kelebihan dan kekurangan database engineKelebihan dan kekurangan database engine
Kelebihan dan kekurangan database engine
 
Bab12 backup dan restore basis data
Bab12 backup dan restore basis dataBab12 backup dan restore basis data
Bab12 backup dan restore basis data
 
Zulkifli 201613012_tugas 5
Zulkifli 201613012_tugas 5Zulkifli 201613012_tugas 5
Zulkifli 201613012_tugas 5
 
Modul praktikum basis data
Modul praktikum basis dataModul praktikum basis data
Modul praktikum basis data
 
Management database
Management databaseManagement database
Management database
 
Tugas makalah 4 ka34 pemograman generasi ke 4
Tugas makalah 4 ka34 pemograman generasi ke 4Tugas makalah 4 ka34 pemograman generasi ke 4
Tugas makalah 4 ka34 pemograman generasi ke 4
 
Sekilas Tentang MySQL
Sekilas Tentang MySQLSekilas Tentang MySQL
Sekilas Tentang MySQL
 
Sekilas Tentang MySQL
Sekilas Tentang MySQLSekilas Tentang MySQL
Sekilas Tentang MySQL
 
Tugas ii 0317_arie firmandani_1512510445
Tugas ii  0317_arie firmandani_1512510445Tugas ii  0317_arie firmandani_1512510445
Tugas ii 0317_arie firmandani_1512510445
 
PEMBUATAN TABEL DALAM DATABASE
PEMBUATAN TABEL DALAM DATABASEPEMBUATAN TABEL DALAM DATABASE
PEMBUATAN TABEL DALAM DATABASE
 
Makalah database
Makalah databaseMakalah database
Makalah database
 
Pembuatan tabel dalam database
Pembuatan tabel dalam databasePembuatan tabel dalam database
Pembuatan tabel dalam database
 
Tugas SIMDIG Kelompok 9
Tugas SIMDIG Kelompok 9Tugas SIMDIG Kelompok 9
Tugas SIMDIG Kelompok 9
 
Bab. 1
Bab. 1Bab. 1
Bab. 1
 
1
11
1
 
Konsep dasar sistem basis data
Konsep dasar sistem basis dataKonsep dasar sistem basis data
Konsep dasar sistem basis data
 
Konsep basis data pengantar my sql
Konsep basis data pengantar  my sqlKonsep basis data pengantar  my sql
Konsep basis data pengantar my sql
 
Software Application Windows Server 2008
Software Application Windows Server 2008Software Application Windows Server 2008
Software Application Windows Server 2008
 
Windows Server 2008
Windows Server 2008Windows Server 2008
Windows Server 2008
 

Recently uploaded

2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx
2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx
2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptxAnnisaNurHasanah27
 
2021 - 12 - 10 PAPARAN AKHIR LEGGER JALAN.pptx
2021 - 12 - 10 PAPARAN AKHIR LEGGER JALAN.pptx2021 - 12 - 10 PAPARAN AKHIR LEGGER JALAN.pptx
2021 - 12 - 10 PAPARAN AKHIR LEGGER JALAN.pptxAnnisaNurHasanah27
 
Slide Transformasi dan Load Data Menggunakan Talend Open Studio
Slide Transformasi dan Load Data Menggunakan Talend Open StudioSlide Transformasi dan Load Data Menggunakan Talend Open Studio
Slide Transformasi dan Load Data Menggunakan Talend Open Studiossuser52d6bf
 
05 Sistem Perencanaan Pembangunan Nasional.ppt
05 Sistem Perencanaan Pembangunan Nasional.ppt05 Sistem Perencanaan Pembangunan Nasional.ppt
05 Sistem Perencanaan Pembangunan Nasional.pptSonyGobang1
 
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptxPembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptxmuhammadrizky331164
 
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptxMuhararAhmad
 
MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++FujiAdam
 
Strategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di IndonesiaStrategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di IndonesiaRenaYunita2
 
rekayasa struktur beton prategang - 2_compressed (1).pdf
rekayasa struktur beton prategang - 2_compressed (1).pdfrekayasa struktur beton prategang - 2_compressed (1).pdf
rekayasa struktur beton prategang - 2_compressed (1).pdfssuser40d8e3
 

Recently uploaded (9)

2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx
2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx
2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx
 
2021 - 12 - 10 PAPARAN AKHIR LEGGER JALAN.pptx
2021 - 12 - 10 PAPARAN AKHIR LEGGER JALAN.pptx2021 - 12 - 10 PAPARAN AKHIR LEGGER JALAN.pptx
2021 - 12 - 10 PAPARAN AKHIR LEGGER JALAN.pptx
 
Slide Transformasi dan Load Data Menggunakan Talend Open Studio
Slide Transformasi dan Load Data Menggunakan Talend Open StudioSlide Transformasi dan Load Data Menggunakan Talend Open Studio
Slide Transformasi dan Load Data Menggunakan Talend Open Studio
 
05 Sistem Perencanaan Pembangunan Nasional.ppt
05 Sistem Perencanaan Pembangunan Nasional.ppt05 Sistem Perencanaan Pembangunan Nasional.ppt
05 Sistem Perencanaan Pembangunan Nasional.ppt
 
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptxPembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
 
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
 
MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++
 
Strategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di IndonesiaStrategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di Indonesia
 
rekayasa struktur beton prategang - 2_compressed (1).pdf
rekayasa struktur beton prategang - 2_compressed (1).pdfrekayasa struktur beton prategang - 2_compressed (1).pdf
rekayasa struktur beton prategang - 2_compressed (1).pdf
 

UNPAS MySQL 2013

  • 1. Universitas Nasional Pasim | DBMS | Kelompok MySQL | 2013 Now, our Presentation is about
  • 2. Presenter Andi Sopandi Husnul K. (0203122062) Hygsan Asep Ardi Winardi Salam
  • 3. Poin Pembahasan Installasi5 Studi Kasus & Demo6 Spesifikasi4 Sejarah1 Kelebihan & Kekurangan3 Teknologi / Fitur2
  • 5. Sejarah MySQL1 Tahun 1979 Michael Widenius (Monty) at TcX UNIREG TcX mengembangkan UNIREGdengan interface builder yang menggunakan low- level connectionISAM storage UNIREG terlalu sulit untuk dikembangkan menjadi web base interface, sehingga TcX mulai mencari alternatif lain. Mencoba menggunakan mSQL, namun tidak mensupport indexing
  • 6. Sejarah MySQL1 Tahun 1995 Perusahaan TcX MySQLUNIREG + mSQL Monty mengajak David Huges, yaitu seorang pembuat mSQL, agar tertarik untuk menghubungkan antara mSQL dengan UNIREG B+ ISAM sehingga mampu menyediakan indexing untuk mSQL melakukan kombinasi antara API mSQL dengan sistem UNIREG MySQL pertama versi 1.0
  • 7. Sejarah MySQL1 Tahun 1998 Perusahaan TcX MySQL AB MySQL versi 3.11 menjadi Open Sourcedan merilis software dibawah GPL (General Public Licence) Perubahan ini memungkinkan kontrol komersial yang lebih baikdalam pengembangan dan support dari MYSQL TcX berubah nama menjadi MySQL AB (Swedia)
  • 8. Sejarah MySQL1 Tahun 2008 Sun Microsystem, Inc Sun Microsystems, Inc mengumumkan aksi korporasi - akuisisi terhadap MySQL AB MySQL AB Sun menjadi salah satu perusahaan dengan produk platform open source terbesar seperti Java, OpenSolaris dan akhirnya MySQL
  • 9. Sejarah MySQL1 Tahun 2009 Oracle Oracle melakukan akusisi terhadap Sun Microsystems. Sun Microsystem, Inc Berkembang isu Oracle yang memiliki produk database yang berkompetisi dengan MySQL akan mematikan MySQL. Namun sampai sejauh ini hal tersebut belum terbukti
  • 11. Teknologi / Fitur-fitur MySQL2 Security5 Scalability and Limits Connectivity Client & Tools 6 7 8 Portability1 Data Types Localization Statements & Functions 2 3 4
  • 12. 1. Portability MySQL dapat berjalan stabil pada berbagai platform : Teknologi / Fitur-fitur MySQL Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, Novell NetWare dan lain-lain. http://dev.mysql.com/doc/refman/5.0/en/supported-os.html 2
  • 13. 2. Data Types MySQL memiliki ragam tipe datayang sangat kaya, seperti signed ( -128 to 127) / unsigned ( 0 to 255) integer, float, double, char, varchar, binnary, text, blob, date, datetime, timestamp, year, dan tipe spatial OpenGIS dan lain-lain. http://dev.mysql.com/doc/refman/5.6/en/data-types.html Teknologi / Fitur-fitur MySQL2
  • 14. 3. Statements & Functions MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query). Teknologi / Fitur-fitur MySQL Full support untuk SQL GROUP BY dan ORDER BY Support untuk LEFT OUTER JOIN and RIGHT OUTER JOIN sesuai standar SQL dan sintak ODBC. 2
  • 15. 4. Localization MySQL dapat mendeteksi pesan errorpada klien dengan menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa Indonesia belum termasuk di dalamnya. Teknologi / Fitur-fitur MySQL2
  • 16. 5. Security Hak akses dan password sistem dapat dikontrol secara fleksibel, dan berbasis host verification. Teknologi / Fitur-fitur MySQL Sekuritas Password dengan menggunakan encryption untuk semua lalu lintas password ketika melakukan koneksi ke server. 2
  • 17. 6. Scalability and Limits MySQL mampu menangani basis data dalam skala besar, dengan jumlah record sampai 50 jutadan 200 ribu tabel serta 5 milyar baris. Selain itu batas indeks yang dapat ditampung mencapai 64 indeks pada tiap tabelnya Teknologi / Fitur-fitur MySQL2 http://dev.mysql.com/doc/refman/5.6/en/features.html
  • 18. 7. Connectivity Client dapat terhubung ke MySQL Server menggunakan berbagai protokol : protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT). Teknologi / Fitur-fitur MySQL Tersedia API untuk C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, and Tcl sehingga memungkinkan MySQL client ditulis dalam berbagai bahasa pemrograman. 2 Mendukung ODBC (Open Database Connectivity), JDBC (java konektor) & MySQL Connector/.Net (.Net konektor).
  • 19. 8. Client & Tools MySQL menyediakan berbagai client dan utility program. Diantaranya command-line program seperti mysqldump and mysqladmin, dan grafikal program seperti MySQL Workbench, SQLyog, HeidiSQL, Navicat, Toad dll. Teknologi / Fitur-fitur MySQL2
  • 21. Kelebihan & Kekurangan MySQL3 disokong oleh komunitas pengguna yang besar Mendukung web baseClient FOSS (Free & Opensource Software) dibawah GPL (General Public License) Kelebihan http://www.mysql.com/why-mysql/ Hampir semua perusahaan web-hosting menyediakan akses ke MySQL.
  • 22. Kelebihan & Kekurangan MySQL3 Kekurangan Tidak support untuk case sensitive Lisensi komersial untuk redistribusi komersial
  • 24. Spesifikasi MySQL4 Mendukung OS baik versi 32-bit maupun 64-bit. Support TCP/IP. RAM min 215 Mb. Hardware & Software
  • 26. Installasi MySQL Installasi MySQL5 Download MySQL for windows dan install http://dev.mysql.com/downloads/installer/
  • 40. Installasi MySQL Installasi MySQL5 Download XAMPP for windows dan install http://www.apachefriends.org/en/xampp-windows.html/
  • 48. Pengelolaan Stok Barang Mencatat seluruh data barang berdasarkan kategorinya. Studi Kasus6 Mencatat data masuk dan keluarbarang per hari. Mencatat histori masuk dan keluar per data barang.
  • 50. Mencatat data barang masuk dan keluar per hari. Studi Kasus6
  • 51. Mencatat histori masuk dan keluar per data barang. 6
  • 52. Entitas yang terlibat Studi Kasus6 Customer+ Supplier+ Barang+ Kategori+
  • 54. Tabel - tabel Studi Kasus6 1. m_barang 2. m_customer 3. m_supplier 4. r_kategori_barang 5. t_transak_keluar 6. t_det_transak_keluar 7. t_log_transak_keluar 8. t_log_det_transak_keluar 9. t_transak_masuk 10.t_det_transak_masuk 11.t_log_transak_masuk 12.t_log_det_transak_masuk
  • 55. Procedure Studi Kasus6 1. sp_GetAllBarang() 2. sp_GetBarangById() 3. sp_GetCustomerByNama() 4. sp_InsertTransakMasuk() 5. sp_InsertDetTransakMasuk() 6. sp_InsertTransakKeluar() 7. sp_InsertDetTransakKeluar() 8. sp_UpdateTransakMasuk() 9. sp_UpdateDetTransakMasuk() 10.sp_UpdateTransakKeluar() 11.sp_UpdateDetTransakKeluar() 12.sp_DeleteTransakMasuk() 13.sp_DeleteDetTransakMasuk() 14.sp_DeleteTransakKeluar() 15.sp_DeleteDetTransakKeluar()
  • 57. Trigger Studi Kasus6 1. after_insert_t_transak_masuk 2. after_insert_t_det_transak_masuk 3. after_update_t_transak_masuk 4. after_update_t_det_transak_masuk 5. after_update_t_transak_keluar 6. after_update_t_det_transak_keluar
  • 58. CREATE DATABASE db_inventori; CREATE TABLE m_supplier( id_supplier INT PRIMARY KEY AUTO_INCREMENT, nama VARCHAR(50) NOT NULL, alamat VARCHAR(255) NULL, no_telp VARCHAR(20) NULL ); CREATE TABLE m_customer( id_customer INT PRIMARY KEY AUTO_INCREMENT, nama VARCHAR(50) NOT NULL, alamat VARCHAR(255) NULL, no_telp VARCHAR(20) NULL ); CREATE TABLE m_barang( id_barang INT PRIMARY KEY AUTO_INCREMENT, id_kategori_barang INT NOT NULL, nama VARCHAR(50) NOT NULL, merk VARCHAR(50) NULL ); CREATE TABLE r_kategori_barang( id_kategori_barang INT PRIMARY KEY AUTO_INCREMENT, nama VARCHAR(50) NOT NULL ); Tabel Master
  • 59. CREATE TABLE t_transak_masuk( id_transak_masuk INT PRIMARY KEY AUTO_INCREMENT, id_supplier INT NOT NULL, tgl_transak DATE NOT NULL, no_surat_jalan VARCHAR(20) NOT NULL, ket TEXT NULL, is_deleted TINYINT(1) NOT NULL DEFAULT 0 ); CREATE TABLE t_det_transak_masuk( id_det_transak_masuk INT PRIMARY KEY AUTO_INCREMENT, no_surat_jalan VARCHAR(20) NOT NULL, id_barang INT NOT NULL, jml_masuk BIGINT DEFAULT 0, is_deleted TINYINT(1) NOT NULL DEFAULT 0 ); CREATE TABLE t_log_transak_masuk( id_log_transak_masuk INT PRIMARY KEY AUTO_INCREMENT, id_transak_masuk INT NOT NULL, tgl_log TIMESTAMP NOT NULL, no_surat_jalan VARCHAR(20) NOT NULL, aksi VARCHAR(15) NOT NULL ); CREATE TABLE t_log_det_transak_masuk( id_log_det_transak_masuk INT PRIMARY KEY AUTO_INCREMENT, tgl_log TIMESTAMP NOT NULL, no_surat_jalan VARCHAR(20) NOT NULL, id_det_transak_masuk INT NOT NULL, aksi VARCHAR(15) NOT NULL ); Tabel Transaksi Masuk
  • 60. CREATE TABLE t_transak_keluar( id_transak_keluar INT PRIMARY KEY AUTO_INCREMENT, id_customer INT NOT NULL, tgl_transak DATE NOT NULL, no_surat_jalan VARCHAR(20) NOT NULL, ket TEXT NULL, is_deleted TINYINT(1) NOT NULL DEFAULT 0 ); CREATE TABLE t_det_transak_keluar( id_det_transak_keluar INT PRIMARY KEY AUTO_INCREMENT, no_surat_jalan VARCHAR(20) NOT NULL, id_barang INT NOT NULL, jml_keluar BIGINT DEFAULT 0, is_deleted TINYINT(1) NOT NULL DEFAULT 0 ); CREATE TABLE t_log_transak_keluar( id_log_transak_keluar INT PRIMARY KEY AUTO_INCREMENT, id_transak_keluar INT NOT NULL, tgl_log TIMESTAMP NOT NULL, no_surat_jalan VARCHAR(20) NOT NULL, aksi VARCHAR(15) NOT NULL ); CREATE TABLE t_log_det_transak_keluar( id_log_det_transak_keluar INT PRIMARY KEY AUTO_INCREMENT, tgl_log TIMESTAMP NOT NULL, no_surat_jalan VARCHAR(20) NOT NULL, id_det_transak_keluar INT NOT NULL, aksi VARCHAR(15) NOT NULL ); Tabel Transaksi Keluar
  • 61. CREATE VIEW v_TransakMasuk AS SELECT a.no_surat_jalan, a.tgl_transak, c.nama AS nama_supplier, d.nama AS nama_barang, e.nama AS nama_kategori, b.jml_masuk AS jml_masuk FROM t_transak_masuk a JOIN t_det_transak_masuk b ON a.no_surat_jalan = b.no_surat_jalan JOIN m_supplier c ON a.id_supplier = c.id_supplier JOIN m_barang d ON b.id_barang = d.id_barang JOIN r_kategori_barang e ON d.id_kategori_barang = e.id_kategori_barang WHERE a.is_deleted = 0; View
  • 62. DELIMITER // CREATE PROCEDURE sp_GetAllBarang() BEGIN SELECT * FROM m_barang; END// CREATE PROCEDURE sp_GetBarangById(IN _id INT) BEGIN SELECT * FROM m_barang WHERE id_barang=_id; END// CREATE PROCEDURE sp_GetCustomerByNama(IN _nama VARCHAR(50)) BEGIN SELECT * FROM m_customer WHERE nama LIKE CONCAT('%', _nama, '%'); END// Store Procedure Get Data
  • 63. DELIMITER // CREATE PROCEDURE sp_InsertTransakMasuk( IN _id_supplier INT, IN _tgl_transak DATE, IN _no_surat_jalan VARCHAR(20), IN _ket TEXT) BEGIN INSERT INTO t_transak_masuk(id_supplier, tgl_transak, no_surat_jalan, ket) VALUES(_id_supplier, _tgl_transak, _no_surat_jalan, _ket); END // CREATE PROCEDURE sp_InsertDetTransakMasuk( IN _no_surat_jalan VARCHAR(20), IN _id_barang INT, IN _jml_masuk BIGINT(20)) BEGIN IF NOT EXISTS (SELECT id_transak_masuk FROM t_transak_masuk WHERE no_surat_jalan=_no_surat_jalan) THEN SELECT 'No. Surat Jalan tidak ada di dalam database!' AS status; ELSE INSERT INTO t_det_transak_masuk(no_surat_jalan, id_barang, jml_masuk) VALUES(_no_surat_jalan, _id_barang, _jml_masuk); END IF; END // Store Procedure Insert Transaksi Masuk
  • 64. DELIMITER // CREATE PROCEDURE sp_InsertTransakKeluar( IN _id_customer INT, IN _tgl_transak DATE, IN _no_surat_jalan VARCHAR(20), IN _ket TEXT) BEGIN INSERT INTO t_transak_keluar(id_customer, tgl_transak, no_surat_jalan, ket) VALUES(_id_customer, _tgl_transak, _no_surat_jalan, _ket); END // CREATE PROCEDURE sp_InsertDetTransakKeluar( IN _no_surat_jalan VARCHAR(20), IN _id_barang INT, IN _jml_keluar BIGINT(20)) BEGIN IF NOT EXISTS (SELECT id_transak_keluar FROM t_transak_keluar WHERE no_surat_jalan=_no_surat_jalan) THEN SELECT 'No. Surat Jalan tidak ada di dalam database!' AS status; ELSE INSERT INTO t_det_transak_keluar(no_surat_jalan, id_barang, jml_keluar) VALUES(_no_surat_jalan, _id_barang, _jml_keluar); END IF; END // Store Procedure Insert Transaksi Keluar
  • 65. DELIMITER // CREATE PROCEDURE sp_UpdateTransakMasuk( IN _id_supplier INT, IN _tgl_transak DATE, IN _no_surat_jalan VARCHAR(20), IN _ket TEXT, IN _id_transak_masuk INT) BEGIN UPDATE t_transak_masuk SET id_supplier=_id_supplier, tgl_transak=_tgl_transak, no_surat_jalan=_no_surat_jalan, ket=_ket WHERE id_transak_masuk=_id_transak_masuk; END // CREATE PROCEDURE sp_UpdateDetTransakMasuk( IN _no_surat_jalan VARCHAR(20), IN _id_barang INT, IN _jml_masuk BIGINT(20), IN _id_det_transak_masuk INT) BEGIN IF NOT EXISTS (SELECT id_transak_masuk FROM t_transak_masuk WHERE no_surat_jalan=_no_surat_jalan) THEN SELECT 'No. Surat Jalan tidak ada di dalam database!' AS status; ELSE UPDATE t_det_transak_masuk SET id_barang=_id_barang, jml_masuk=_jml_masuk WHERE id_det_transak_masuk=_id_det_transak_masuk; END IF; END // Store Procedure Update Transaksi Masuk
  • 66. DELIMITER // CREATE PROCEDURE sp_UpdateTransakKeluar( IN _id_customer INT, IN _tgl_transak DATE, IN _no_surat_jalan VARCHAR(20), IN _ket TEXT, IN _id_transak_keluar INT) BEGIN UPDATE t_transak_keluar SET id_customer=_id_customer, tgl_surat=_tgl_surat, no_surat_jalan=_no_surat_jalan, ket=_ket WHERE id_transak_keluar=_id_transak_keluar; END // CREATE PROCEDURE sp_UpdateDetTransakKeluar( IN _no_surat_jalan VARCHAR(20), IN _id_barang INT, IN _jml_keluar BIGINT(20), IN _id_det_transak_keluar INT) BEGIN IF NOT EXISTS (SELECT id_transak_keluar FROM t_transak_keluar WHERE no_surat_jalan=_no_surat_jalan) THEN SELECT 'No. Surat Jalan tidak ada di dalam database!' AS status; ELSE UPDATE t_det_transak_keluar SET id_barang=_id_barang, jml_masuk=_jml_masuk WHERE id_det_transak_keluar=_id_det_transak_keluar; END IF; END // Store Procedure Update Transaksi Keluar
  • 67. DELIMITER // CREATE PROCEDURE sp_DeleteTransakMasuk(IN _no_surat_jalan VARCHAR(20), OUT flag TINYINT) BEGIN DECLARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK; START TRANSACTION; SET flag = 0; UPDATE t_transak_masuk SET is_deleted=1 WHERE no_surat_jalan=_no_surat_jalan; UPDATE t_det_transak_masuk SET is_deleted=1 WHERE no_surat_jalan=_no_surat_jalan; SET flag = 1; COMMIT; END // CREATE PROCEDURE sp_DeleteDetTransakMasuk(IN _id_det_transak_masuk INT) BEGIN UPDATE t_det_transak_masuk SET is_deleted=1 WHERE id_det_transak_masuk=_id_det_transak_masuk; END // Store Procedure Delete Transaksi Masuk
  • 68. DELIMITER // CREATE PROCEDURE sp_DeleteTransakKeluar(IN _id_transak_keluarINT) BEGIN UPDATE t_transak_keluar SET is_deleted=1 WHERE id_transak_keluar=_id_transak_keluar; END // CREATE PROCEDURE sp_DeleteDetTransakKeluar(IN _id_det_transak_keluar INT) BEGIN UPDATE t_det_transak_keluar SET is_deleted=1 WHERE id_det_transak_keluar=_id_det_transak_keluar; END // Store Procedure Delete Transaksi Keluar
  • 69. DELIMITER // CREATE TRIGGER after_insert_t_transak_masuk AFTER INSERT ON t_transak_masuk FOR EACH ROW BEGIN IF NEW.is_deleted THEN SET @aksi = 'DELETE'; ELSE SET @aksi = 'NEW'; END IF; INSERT INTO t_log_transak_masuk(tgl_log, id_transak_masuk, no_surat_jalan, aksi) VALUES(NOW(), NEW.id_transak_masuk, NEW.no_surat_jalan, @aksi); END // CREATE TRIGGER after_insert_t_det_transak_masuk AFTER INSERT ON t_det_transak_masuk FOR EACH ROW BEGIN IF NEW.is_deleted THEN SET @aksi = 'DELETE'; ELSE SET @aksi = 'NEW'; END IF; INSERT INTO t_log_det_transak_masuk(tgl_log, id_det_transak_masuk, no_surat_jalan, aksi) VALUES(NOW(), NEW.id_det_transak_masuk, NEW.no_surat_jalan, @aksi); END // Trigger Insert Barang Masuk
  • 70. DELIMITER // CREATE TRIGGER after_update_t_transak_masuk AFTER UPDATE ON t_transak_masuk FOR EACH ROW BEGIN IF NEW.is_deleted THEN SET @aksi = 'DELETE'; ELSE SET @aksi = 'EDIT'; END IF; INSERT INTO t_log_transak_masuk(tgl_log, id_transak_masuk, no_surat_jalan, aksi) VALUES(NOW(), NEW.id_transak_masuk, NEW.no_surat_jalan, @aksi); END // CREATE TRIGGER after_update_t_det_transak_masuk AFTER UPDATE ON t_det_transak_masuk FOR EACH ROW BEGIN IF NEW.is_deleted THEN SET @aksi = 'DELETE'; ELSE SET @aksi = 'EDIT'; END IF; INSERT INTO t_log_det_transak_masuk(tgl_log, id_det_transak_masuk, no_surat_jalan, aksi) VALUES(NOW(), NEW.id_det_transak_masuk, NEW.no_surat_jalan, @aksi); END // Trigger Update Barang Masuk
  • 71. DELIMITER // CREATE TRIGGER after_update_t_transak_keluar AFTER UPDATE ON t_transak_keluar FOR EACH ROW BEGIN IF NEW.is_deleted THEN SET @aksi = 'DELETE'; ELSE SET @aksi = 'EDIT'; END IF; INSERT INTO t_log_transak_keluar(tgl_log, id_transak_keluar, no_surat_jalan, aksi) VALUES(NOW(), NEW.id_transak_keluar, NEW.no_surat_jalan, @aksi); END // CREATE TRIGGER after_update_t_det_transak_keluar AFTER UPDATE ON t_det_transak_keluar FOR EACH ROW BEGIN IF NEW.is_deleted THEN SET @aksi = 'DELETE'; ELSE SET @aksi = 'EDIT'; END IF; INSERT INTO t_log_det_transak_keluar(tgl_log, id_det_transak_keluar, no_surat_jalan, aksi) VALUES(NOW(), NEW.id_det_transak_keluar, NEW.no_surat_jalan, @aksi); END // Trigger Update Barang Keluar
  • 72. DELIMITER // CREATE FUNCTION fn_getTotalTransakMasukByNoSuratJalan( _no_surat_jalan VARCHAR(20)) RETURNS INT BEGIN DECLARE total INT DEFAULT 0; SET total = (SELECT SUM(jml_masuk) FROM t_det_transak_masuk WHERE no_surat_jalan=_no_surat_jalan); RETURN total; END // CREATE FUNCTION fn_getTotalTransakKeluarByNoSuratJalan( _no_surat_jalan VARCHAR(20)) RETURNS INT BEGIN DECLARE total INT DEFAULT 0; SET total = (SELECT SUM(jml_masuk) FROM t_det_transak_keluar WHERE no_surat_jalan=_no_surat_jalan); RETURN total; END // Function
  • 73. INSERT INTO r_kategori_barang(nama) VALUES('Elektronik'); INSERT INTO r_kategori_barang(nama) VALUES('ATK'); INSERT INTO r_kategori_barang(nama) VALUES('Makanan'); INSERT INTO r_kategori_barang(nama) VALUES('Minuman'); INSERT INTO m_barang(id_kategori_barang, nama, merk) VALUES(1, 'Tablet 10"', 'Samsung'); INSERT INTO m_barang(id_kategori_barang, nama, merk) VALUES(1, 'Tablet 7"', 'Samsung'); INSERT INTO m_barang(id_kategori_barang, nama, merk) VALUES(1, 'Laptop Sony Vaio 14"', 'Sony'); INSERT INTO m_barang(id_kategori_barang, nama, merk) VALUES(1, 'Sony Handycam', 'Sony'); INSERT INTO m_barang(id_kategori_barang, nama, merk) VALUES(2, 'Kertas F4', 'Sinar Dunia'); INSERT INTO m_barang(id_kategori_barang, nama, merk) VALUES(2, 'Kertas A4', 'Sinar Dunia'); INSERT INTO m_barang(id_kategori_barang, nama, merk) VALUES(3, 'Indomie Bawang Rasa Kari Ayam', 'Indomie'); INSERT INTO m_barang(id_kategori_barang, nama, merk) VALUES(3, 'Indomie Mie Goreng', 'Indomie'); INSERT INTO m_barang(id_kategori_barang, nama, merk) VALUES(4, 'Green Sands Original', 'Green Sands'); INSERT INTO m_barang(id_kategori_barang, nama, merk) VALUES(4, 'Green Sands Fruit', 'Green Sands'); INSERT INTO m_customer(nama, alamat, no_telp) VALUES('PT. ABC', 'Jl. Pasantren', '022123456'); INSERT INTO m_customer(nama, alamat, no_telp) VALUES('Saddam', 'Jl. Kavling IPTN', '022999999'); INSERT INTO m_customer(nama, alamat, no_telp) VALUES('Baso Bedu', 'Jl. Cihanjuang', '022333444'); INSERT INTO m_supplier(nama, alamat, no_telp) VALUES('PT. Sinar Dunia', 'Jawa Barat', ''); INSERT INTO m_supplier(nama, alamat, no_telp) VALUES('Sony Corp.', 'Japan', ''); INSERT INTO m_supplier(nama, alamat, no_telp) VALUES('Samsung', 'South Korea', ''); INSERT INTO m_supplier(nama, alamat, no_telp) VALUES('PT. Indofood', 'Jawa Barat', ''); INSERT INTO m_supplier(nama, alamat, no_telp) VALUES('PT. Green Sands', 'Jupiter', ''); Insert Data Dummy
  • 74. /* parm: id_supplier, tgl_transak, no_surat_jalan, ket */ CALL sp_InsertTransakMasuk(3, NOW(), 'SJ001', 'tes pertama'); /* parm: no_surat_jalan, id_barang, jml_masuk */ CALL sp_InsertDetTransakMasuk('SJ001', 1, 10); CALL sp_InsertDetTransakMasuk('SJ001', 2, 5); /* parm: id_supplier, tgl_transak, no_surat_jalan, ket, id_transak_masuk */ CALL sp_UpdateTransakMasuk(3, NOW(), 'SJ001', 'tes update pertama', 1); /* parm: no_surat_jalan, id_barang, jml_masuk, id_det_transak_masuk */ CALL sp_UpdateDetTransakMasuk('SJ001', 1, 5, 1); CALL sp_UpdateDetTransakMasuk('SJ001', 2, 10, 2); /* parm: no_surat_jalan, @flag */ CALL sp_DeleteTransakMasuk('SJ001', @flag); SELECT @flag; /* parm: id_det_transak_masuk */ CALL sp_DeleteDetTransakMasuk(1); SELECT fn_getTotalTransakMasukByNoSuratJalan('SJ001') AS 'Jumlah Total Masuk'; Penggunaan Store Procedure
  • 75. SHOW TRIGGERS; DROP TRIGGER {trigger_name}; SHOW PROCEDURE STATUS; DROP PROCEDURE {procedure_name}; SHOW FUNCTION STATUS; DROP FUNCTION {function_name}; Common Functions MySQL
  • 76. Sekian Terimakasih Universitas Nasional Pasim | DBMS | Kelompok MySQL | 2013