Contoh Manipulasi Data dalam Database dengan Perl

Perl apakah itu ? hehe, anaknya Mr. Crabs -_-.

Haha, bukan Perl yang akan dibahas ini merupakan salah satu bahasa pemrograman juga, dia bisa jalan di browser, command line, atau basis desktop.  Perl susunan bahasanya mirip-mirip dengan php, contohnya kalau mau buat variable ya tinggal tambahin $ (dolar) di depan namanya.

Ok, skip-skip kita langsung latihan cara manipulasi data dalam database dengan Perl.  Btw, untungnya dalam Perl sudah disediakan library bernama DBI yang bisa kita gunakan untuk akses ke database.  DBI ini support macem-macem database, bisa mysql, oracle, dll.

Oh ya contoh kasusnya seperti ini ( btw jo protes kalau aneh kasusnya haha 😛 ) :

dalam suatu toko punya sistem inventory barang yang sudah keren, sayangnya dalam sistem inventory tersebut belum disediakan tampilan dashboard maupun laporan akan stok barang digudang saat ini.  Nah karena sang pemilik gak mau diungkat ungkit sistemnya dan developer dari sistem tersebut entah kemana, Anda disuruh untuk membuat sistem dashboardnya.

Singkat cerita sistem Anda sudah jadi nih, sayang datanya tak bisa langsung ambil dari database sistem inventory tersebut, akhirnya dibuatlah suatu jembatan dimana sistem inventory tadi ngisi terus ke suatu table yang dimana table tersebut gak bisa diubah-ubah, anggap saja table itu bernama dataMentah.  Padahal anda menggunakan tabel totalBarang untuk menampilkan dashboard tersebut.

Singkatnya dalam latihan kali ini adalah kita akan coba mengisi secara otomatis table totalBarang dari suatu data transaksi barang setiap harinya, misalnya saja kita berikan nama table tersebut dataMentah.

Ok, pertama buat table latihannya terlebih dahulu, seperti berikut :

-- --------------------------------------------------------
 
--
-- Struktur dari tabel `datamentah`
--
 
CREATE TABLE IF NOT EXISTS `datamentah` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `barang` VARCHAR(50) NOT NULL,
  `qty` INT(11) NOT NULL,
  `tanggal` DATE NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
 
-- --------------------------------------------------------
 
--
-- Struktur dari tabel `totalbarang`
--
 
CREATE TABLE IF NOT EXISTS `totalbarang` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `barang` VARCHAR(50) NOT NULL,
  `total` INT(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Kalau sudah copas sintaknya seperti berikut ini

use DBI;
 
# KONEK DATABASE
 $connect = DBI->connect('dbi:mysql:indi','root','')
 or die "Connection Error: $DBI::errstr\n";
# MENDEFINISIKAN QUERY DARI TABEL DATA MENTAH
$myquery = "SELECT sum(qty), barang from datamentah group by barang";
 
# EXECUTE QUERY
$tbl = $connect->prepare($myquery);
$tbl->execute();
# $tbl MERUPAKAN TABEL HASIL DARI QUERY YANG DIATAS
while (@rows = $tbl->fetchrow_array) {
	#CARI APAKAH ADA ATAU BELUM BARANGNYA
	$tblTotal = $connect->prepare('SELECT * FROM totalbarang WHERE barang = ?');
	$tblTotal->execute($rows[1]);
	#KALAU BELUM YA DI INSERT KALAU ADA YA DI UPDATE
	if ($tblTotal->rows > 0)
	{
		$qUpdate = $connect->prepare('UPDATE totalbarang set total = ? WHERE barang = ?');
		$qUpdate->execute($rows[0], $rows[1]);	
	}
	else
	{
		$qInsert = $connect->prepare('INSERT INTO totalbarang values (null, ? , ?)');
		$qInsert->execute($rows[1], $rows[0]);	
 
	}
 
}

Selesai .

Nah ceritanya toko ini ini pengen bener-bener otomatis dashboardnya dengan ketentuan tiap 5 menit sekali update, sehingga pemilik toko tahu keadaan barang yang ada di gudang, caranya klik dimari yakz

Perl apakah itu ? hehe, anaknya Mr. Crabs -_-.

Haha, bukan Perl yang akan dibahas ini merupakan salah satu bahasa pemrograman juga, dia bisa jalan di browser, command line, atau basis desktop.  Perl susunan bahasanya mirip-mirip dengan php, contohnya kalau mau buat variable ya tinggal tambahin $ (dolar) di depan namanya.

Ok, skip-skip kita langsung latihan cara manipulasi data dalam database dengan Perl.  Btw, untungnya dalam Perl sudah disediakan library bernama DBI yang bisa kita gunakan untuk akses ke database.  DBI ini support macem-macem database, bisa mysql, oracle, dll.

Oh ya contoh kasusnya seperti ini ( btw jo protes kalau aneh kasusnya haha 😛 ) :

dalam suatu toko punya sistem inventory barang yang sudah keren, sayangnya dalam sistem inventory tersebut belum disediakan tampilan dashboard maupun laporan akan stok barang digudang saat ini.  Nah karena sang pemilik gak mau diungkat ungkit sistemnya dan developer dari sistem tersebut entah kemana, Anda disuruh untuk membuat sistem dashboardnya.

Singkat cerita sistem Anda sudah jadi nih, sayang datanya tak bisa langsung ambil dari database sistem inventory tersebut, akhirnya dibuatlah suatu jembatan dimana sistem inventory tadi ngisi terus ke suatu table yang dimana table tersebut gak bisa diubah-ubah, anggap saja table itu bernama dataMentah.  Padahal anda menggunakan tabel totalBarang untuk menampilkan dashboard tersebut.

Singkatnya dalam latihan kali ini adalah kita akan coba mengisi secara otomatis table totalBarang dari suatu data transaksi barang setiap harinya, misalnya saja kita berikan nama table tersebut dataMentah.

Ok, pertama buat table latihannya terlebih dahulu, seperti berikut :

-- --------------------------------------------------------
 
--
-- Struktur dari tabel `datamentah`
--
 
CREATE TABLE IF NOT EXISTS `datamentah` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `barang` VARCHAR(50) NOT NULL,
  `qty` INT(11) NOT NULL,
  `tanggal` DATE NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
 
-- --------------------------------------------------------
 
--
-- Struktur dari tabel `totalbarang`
--
 
CREATE TABLE IF NOT EXISTS `totalbarang` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `barang` VARCHAR(50) NOT NULL,
  `total` INT(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Kalau sudah copas sintaknya seperti berikut ini

use DBI;
 
# KONEK DATABASE
 $connect = DBI->connect('dbi:mysql:indi','root','')
 or die "Connection Error: $DBI::errstr\n";
# MENDEFINISIKAN QUERY DARI TABEL DATA MENTAH
$myquery = "SELECT sum(qty), barang from datamentah group by barang";
 
# EXECUTE QUERY
$tbl = $connect->prepare($myquery);
$tbl->execute();
# $tbl MERUPAKAN TABEL HASIL DARI QUERY YANG DIATAS
while (@rows = $tbl->fetchrow_array) {
	#CARI APAKAH ADA ATAU BELUM BARANGNYA
	$tblTotal = $connect->prepare('SELECT * FROM totalbarang WHERE barang = ?');
	$tblTotal->execute($rows[1]);
	#KALAU BELUM YA DI INSERT KALAU ADA YA DI UPDATE
	if ($tblTotal->rows > 0)
	{
		$qUpdate = $connect->prepare('UPDATE totalbarang set total = ? WHERE barang = ?');
		$qUpdate->execute($rows[0], $rows[1]);	
	}
	else
	{
		$qInsert = $connect->prepare('INSERT INTO totalbarang values (null, ? , ?)');
		$qInsert->execute($rows[1], $rows[0]);	
 
	}
 
}

Selesai .

Nah ceritanya toko ini ini pengen bener-bener otomatis dashboardnya dengan ketentuan tiap 5 menit sekali update, sehingga pemilik toko tahu keadaan barang yang ada di gudang, caranya klik dimari yakz

1 thought on “Contoh Manipulasi Data dalam Database dengan Perl

Leave a Comment