Archive | Basis Data 1 RSS feed for this section

mySQL Trigger

5 Apr

Berikut contoh penerapan trigger di database mysql. Dalam contoh ini, ada 2 tabel, tabel barang dan tabel barang_keluar. Tabel barang terdiri dari kolom kode_barang, nama_barang, stock. Tabel barang_keluar terdiri dari kolom id1, kode_barang, jml.

Relationship antar 2 tabel tampak pada gambar berikut

Dalam kasus ini, kita ingin membuat trigger agar memberikan batasan

  1. sebelum barang_keluar insert, cek dulu, jika stock kurang, maka batalkan insert
  2. setelah barang_keluar insert, lakukan pengurangan stock.

barang_keluar_after_insert

Kita berikan trigger dengan listing

BEGIN
update barang
set barang.stock = barang.stock – new.jml
where barang.kode_barang = new.kode_barang;
END

dari trigger di atas, setelah proses insert data selesai, kita melakukan update tabel barang, kita update stocknya menjadi stock – jml barang keluar.

Tampilan implementasi dengan menggunakan heidiSQL tampak pada gambar berikut

barang_keluar_before_insert

untuk pengecekan stock sebelum insert data, listing berikut

BEGIN
DECLARE dummy, jmlstock INT;
SELECT barang.stock INTO jmlstock FROM barang
WHERE barang.kode_barang = NEW.kode_barang;

if new.jml > jmlstock then
SIGNAL SQLSTATE ‘01000’ SET MESSAGE_TEXT = ‘Jumlah stock kurang’, MYSQL_ERRNO = 1000;
signal sqlstate ‘45000’;
end if;
END

Pada bagian awal, kita declare variabel jmlstock untuk menyimpan data jumlah stock. Data jumlah stock kita dapatkan melalui query select barang.stock sesuai dengan kode barang (New.kode_barang) yang akan diinsert. Kemudian dicek, jika jml stock lebih kecil dari jml barang yang akan keluar, kita munculkan sqlstate error untuk membatalkan insert data.

Hasil implementasi di heidiSQL tampak pada gambar berikut

Advertisements

Nilai Perbaikan Basis Data I Ganjil 2009

13 Jan

nilai basis data1

remidi

12 Jan
Ujian Perbaikan Basis Data I – Ganjil 2009 yang disiapkan : Laptop + power designer + oracle Tugas : desain PDM, create database, perintah SQL Tempat : ruang dosen, jika terlambat , dianggap gugur Jika ada yang berhalangan, segera konfirmasi sebelum selasa 12 jan’10 jam 14

UAS dan Nilai Akhir MK Basis Data I Ganjil 2009

8 Jan

Ujian Akhir Semester
Mata Kuliah    : Basis Data I
Kelas        : FE-17 10.00
Dosen        : M. Kautsar Sophan
Sifat        : Tertutup
Waktu        : 50 menit
Tanggal        : 7 Januari 2010

Sebuah perusahaan sabun ingin membuat sistem database untuk mendata penjualan sabun, dengan deskripsi berikut: Produk yang dijual terdiri dari beberapa jenis sabun. Data penjualan yang disimpan adalah data salesman, daerah penjualan yang dilayani, dan jumlah produk yang berhasil dijual untuk daerah tertentu dan bulan tertentu. Contoh data yg ada saat ini:

Nama Salesman

Produk

Lokasi

Bulan/Tahun

Jumlah Penjualan

Poniran Sabun Mandi Kamal Desember 2009

200

Aliman Sabun Mandi Socah Desember 2009

222

Dewi Sabun Cuci Arosbaya Desember 2009

234

Dewi Sabun Mandi Arosbaya Desember 2009

565

dst

Sebelum mengerjakan, baca seluruh soal dengan baik. Jika ada pertanyaan, silahkan ditanyakan.

Soal:

  1. Desain PDM sesuai dengan deskripsi diatas ! (15 menit)
  2. Tuliskan Perintah SQL untuk memasukkan 3 data ke tabel Salesman ! (5 menit)
  3. Tuliskan Perintah SQL untuk merubah data dari tabel Daerah_Penjualan ! (5 menit)
  4. Tuliskan perintah SQL untuk menghapus data dari tabel Penjualan untuk penjualan dibawah 300! (5 menit)
  5. Tuliskan perintah SQL untuk menampilkan data jumlah penjualan (seluruhnya) untuk daerah “Kamal” ! (5 menit)
  6. Tuliskan perintah SQL untuk menampilkan data penjualan yang dilakukan oleh salesman yang bernama ‘Dewi’ ! (5 menit)
  7. Tuliskan perintah SQL untuk menampilkan data penjualan yang dilakukan oleh salesman yang bernama ‘Dewi’ untuk bulan ‘Desember 2009’ ! (5 menit)

Mohon dikerjakan sendiri-sendiri,

Kerjasama dalam ujian akan diberikan sangsi pengurangan nilai hingga 100%

Kunci


  1. total nilai (84)
  2. Insert into salesman (kd_sales, nama_sales) values (‘xx’,’budiman’); total nilai (1)
  3. Update daerah_penjualan set daerah_penjualan = ‘Bangkalan’ where kd_daerah = ’02’ total nilai (1)
  4. Delete from penjualan where jumlah < 300 total nilai (1)
  5. Select sum(jumlah) from penjualan, daerah_penjualan where daerah_penjualan.kd_daerah = penjualan.kd_daerah and daerah_penjualan = ‘Kamal’ total nilai (2)
  6. Select * from penjualan, salesman where salesman.kd_sales = penjualan.kd_sales and nama_sales = ‘dewi’ total nilai (2)
  7. Select * from penjualan, salesman where salesman.kd_sales = penjualan.kd_sales and nama_sales = ‘dewi’ and penjualan.bulan = ‘desember’ and penjualan.tahun = ‘2009’ total nilai (2)

Ket: Yang menjadi penilaian utama adalah Soal No1
Hasil koreksi: Beberapa mahasiswa belum paham tentang mendesain database dengan model PDM.

Bagi yang ingin ujian perbaikan, Silahkan kontak saya Sebelum hari Selasa 12 Jan’2010 jam 11.

nilai basis data1

Koneksi PHP ke Oracle 10g XE

18 Dec

Contoh koneksi PHP ke Database Oracle
by: Kautsar <ocal_sophan@yahoo.com>

Pada tulisan ini penulis menyampaikan contoh untuk melakukan koneksi dari PHP ke database oracle. Sebelumnya dilakukan instalasi software untuk keperluan ini, yaitu instalasi database dan web server. Proses instalasi tidak dijelaskan karena sudah cukup banyak referensi di internet untuk melakukan instalasi tersebut. Software database yang digunakan adalah freeware, kecuali untuk tool dreamweaver. Dreamweaver ini tool optional,bisa digunakan ataupun tidak digunakan.

Software / Tool yang diinstall

  1. Database/DBMS Oracle, dalam contoh ini digunakan Oracle 10g Express Edition. Digunakan sebagai media penyimpan data
  2. Wampserver 2.0, digunakan sebagai web server PHP
  3. Dreamweaver 8.0, digunakan untuk melakukan edit file PHP.

Penyiapan sample data di database oracle

Sebagai contoh, di oracle kita membuat tabel mahasiswa dengan kolom nim, nama, alamat, kota. Sebelumnya, kita harus membuat user di database oracle. Langkah

  1. Buka Database Home Page, Login sebagai sistem seperti pada tampilan berikut
  2. Pilih administrator à database Users à create User seperti pada tampilan berikut
  3. Pada tampilan berikutya, isikan nama user yang baru (yg akan digunakan sebagai tempat database yg baru), misalnya diisikan db1 dengan password db1, sesuai dengan tampilan berikut. Jika sudah, klik Create
  4. Jika sudah, lakukan logout, dan coba lakukan Login kembali menggunakan user yang baru (db1)

Pada langkah berikutnya, kita akan membuat tabel mahasiswa. Pada pembuatan tabel mahasiswa ini kita membuat tabel menggunakan script SQL. Script yang digunakan untuk membuat tabel mahasiswa adalah:

CREATE TABLE “MAHASISWA”

(    “NIM” VARCHAR2(20) NOT NULL,

“NAMA” VARCHAR2(30),

“ALAMAT” VARCHAR2(50),

“KOTA” VARCHAR2(50),

CONSTRAINT “MAHASISWA_PK” PRIMARY KEY (“NIM”)

)

/

 

Langkah untuk membuat tabel mahasiswa

  1. Login ke database oracle menggunakan user yang baru dibuat (db1)
  2. Pilih SQL à SQL Commands à Enter Command, sesuai dengan tampilan berikut
  3. Pada window yang ada, Paste kan script SQL diatas sesuai dengan tampilan berikut, Jika sudah, klik RUN

Langkah berikutnya adalah memasukkan data ke tabel mahasiswa, dalam contoh ini penulis menggunakan perintah SQL berikut

 

Insert into mahasiswa (nim, nama, alamat, kota)

values (‘001′,’andi’,’a. Yani’, ‘Bangkalan’)

/


Perintah SQL tersebut dijalankan di jendela SQL Commands.

Setelah dilakukan pengisian data ke tabel mahasiswa, kita bisa melihat isi tabel mahasiswa dengan perintah SQL

Select * from mahasiswa à sesuai dengan tampilan berikut

Koding PHP untuk koneksi ke oracle

Untuk melakukan koneksi ke oracle dari PHP, penulis menggunakan odbc (open database connectivity). Metode ini dipilih karena setelah menggunakan beberapa ujicoba menggunakan driver OCI8, penulis mengalami kesulitan dalam loading library (dll) di php untuk OCI8. Pada kesempatan yang lain akan penulis ulas untuk setting OCI8.

Untuk koneksi menggunakan ODBC, sebelumnya kita harus medefinisikan DSN (data source name) yang akan digunakan. Langkah:

  1. Dari desktop windows, buka menu start à Control Panel à Administrative Tools à Data Source (ODBC), Klik System DSN, Klik ADD sesuai dengan tampilan berikut
  2. Pilih oracle XE, klik Finish
  3. Isikan nama datasource, dalam contoh ini : ora99, pilih TNS Name, isikan User ID. Lakukan Test Connection untuk ujicoba koneksi. Jika sudah, klik OK.

Setelah setting DSN / ODBC, berikut script php untuk melakukan koneksi ke database melalui ODBC yang telah di set:

<?php

$conn = odbc_connect(“ora99″,”db1″,”db1”);

if($conn == 0)

echo(“Koneksi ke database error”);

else

echo(“koneksi sukses <br>”);

//open table

if (!($query = odbc_exec($conn, “SELECT * FROM mahasiswa”)))

die(“SQL Error”);

$t = odbc_num_rows($query);

while(odbc_fetch_into($query,$res))

{

for($i=0;$i<odbc_num_fields($query);$i++)

{

echo $res[$i].” “;

}

echo “<br>”;

}

odbc_close($conn);

?>

Hasil Ujicoba: