laporan perancangan aplikasi inventori

36
 Laporan Tugas Besar Diajukan Untuk Memenuhi Salah Satu Tugas Praktikum Basis Data Oleh: Fikri Fahru Roji (1106042) JURUSAN TEKNIK INFORMATIKA SEKOLAH TINGGI TEKNOLOGI GARUT 2013

Upload: fikri-fahru-roji

Post on 11-Oct-2015

71 views

Category:

Documents


1 download

DESCRIPTION

Laporan Perancangan Aplikasi Inventori Asesoris Komputer Berbasis PHP dan MySql

TRANSCRIPT

Laporan Tugas BesarDiajukan Untuk Memenuhi Salah Satu Tugas Praktikum Basis Data

Oleh:Fikri Fahru Roji (1106042)

JURUSAN TEKNIK INFORMATIKASEKOLAH TINGGI TEKNOLOGI GARUT2013

BAB IPENDAHULUANBasis Data adalah kumpulan file-file/tabel-tabel yang mempunyai kaitan antara satu dengan yang lainnya. Basis data juga merupakan suatu kumpulan data saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan (redudansi data) yang tidak perlu untuk memenuhi berbagai macam kebutuhan. Pada mata kuliah praktikum basis data ini penulis mencoba membuat sebuah rancangan basis data inventori yang diberi nama toko Idiotique Inventory. Dimana toko ini menjual accessoris computer seperti Mouse, Keyboard dan sebagainya. Toko ini memiliki barang jual yang dipasok dari dalam dan luar kota. Pada rancangan basis data toko ini hanya membuat rancangan data inventori nya saja, tidak sampai kepada penjualannya. Dan selanjutnya akan dibahas tentang rancangan basisdata yang menangani data inventori dari toko ini, dan kemudian dilanjutkan dengan pembuatan antar muka program dengan menggunakan PHP dan database MySql.

BAB IIKAJIAN TEORI

1. Basis dataBasis Data atau Database berasal dari kata basis dan data. Basis adalah markas,gudang, atau tempat berkumpul. Sedangkan data adalah representasi fakta dunia nyata suatu objek seperti manusia, hewan, Type dan lain-lain, direkam dalam bentuk angka, huruf, symbol, teks, gambar, bunyi, atau kombinasi. Basis data adalah kumpulan file / tabel yang saling berinteraksi dan dapat digunakan bersama. Tujuan dibentuknya basis data adalah kemudahan dan kecepatan dalam pengambilan kembali data. Suatu media penyimpanan (hard disk) dapat menempatkan lebih dari 1 (satu) basis data dan tidak semua bentuk penyimpanan data secara elektronik dikatakan basis data. Basis data terdiri dari entitas, atribut, data value, record/tuple dan file. Entitas dapat berupa orang, tempat, kejadian/konsep informasi yang direkam. Atribut adalah sebutan untuk mewakili entitas. Data value adalah data aktual/informasi yang disimpan pada setiap data elemen/atribut.

2. MySqlMySQL merupakan sebuah database server yang dapat berjalan pada beberapa Sistem Operasi. Pada awalnya distro MySQL dikembangkan dan dijalankan hanya pada Sistem Operasi LINUX saja, akan tetapi dengan perkembangannya sekarang distri MySQL dapat juga dijalankan pada beberapa Sistem seperti Windows 9X, 2000, NT, maupun pada komputer Solaris.

Database dengan nama MySQL ini dapat memuat berpuluh-puluh bahkan beratus-ratus user untuk diolah di dalamnya. Karena berupa database Server maka program ini telah memiliki sebuah sistem keamanan yang dipercaya bagi para penggunanya. Database MySQL memiliki lisensi resmi dari GNU/GPL(General Public Lisence), sebagai pengguna kita bisa menggunakannya secara bebas tanpa harus bayar.

Perintah yang digunakan dalam MySQL adalah perintah SQL (Structure Query Language) yaitu berupa bahasa permintaan yang terstruktur yang telah distandarkan oleh pihak ANSI/ISO.

3. PHPPHP (PHP Hypertext PreeProsesor) merupakan sebuah bahasa Interpreter yang berjalan samping server atau yang sering disebut dengan Server Site. Hasil dari program ini berapa sebuah Script yang hanya dapat dijalankan pada Browser (IE, Mozila, Netscape, dll).

Untuk dapat menjalankan Script-Script PHP kita harus meletakan Script tersebut pada sebuah direktori Root yang disediakan oleh Server Web. Bentuk-bentuk Web Server yang dapat digunakan untuk menjalankan PHP adalah Apache, IIS, ataupun Xitami.

Karena program PHP merupakan program yang berjalan disamping server seperti Apache, maka untuk dapat menterjemahkan Code-code programnya komputer anda juga harus terinstal paket PHP itu sendiri, Sorce Code dari paket PHP dapat diperoleh pada alamat http://www.php.net, dan dapat memperoleh Apache pada alamat http://www.apache.org .

BAB IIIPEMBAHASAN

Permasalahan:Suatu perusahaan software diminta membuatkan basis data yang akan menangani data inventaris sebuah toko kecil. Karena tokonya kecil, maka ada beberapa gudang yang khusus untuk menyimpan stock produk. Data yang akan ditanganinya adalah: data produk yang ditawarkan toko, data pemasok produk (satu pemasok dapat memasok beberapa macam produk), data transaksi pembelian produk dari pemasok (nota pembelian), dan data gudang tempat penyimpanan produk. Satu produk yang sama bisa disimpan di beberapa gudang yang berbeda, dan tentu saja tiap gudang menyimpan berbagai macam produk. Di database harus ada data mengenai sisa stock yang ada di masing-masing gudang untuk semua produk.

Pertanyaan :

1. Identifikasi entitas yang terlibat dalam sistem tersebut2. Lengkapi dengan atribut3. Tentukan PK4. Tentukan Relationshipnya5. Tentukan Kardinalitas-nya6. Buat kamus data nya.7. Buat ERD-nya8. Tentukan FK-nya9. Transformasikan ERD ke dalam tabel basis data10. Lakukan normalisasi (dalam kasus ini,semua tabel sudah memenuhi bentuk normal (BCNF)).11. Buat Struktur tabel basis data (Struktur penyimpanan)12. Buat syntax (dalam bentuk DDL)13. Implementasikan DDL yang sudah dibuat dengan MySql14. Buat antar muka dengan PHP15. Koneksikan Basis Data yang sudah dibuat dengan PHP sebagai antar muka16. Isi data (dengan syntax MySql) yang sudah Anda pelajari17. Isi data dengan fasilitas antar muka yang sudah Anda buat (Minimal masing-masing 20 data pada tabel master dan 10 transaksi pada tabel transaksi)18. Lakukan manipulasi data dengan MySql (Tampilkan syntaxnya dan tampilkan hasilnya dari seluruh perintah yang sudah anda pelajari)

1. Entitas external yang terlibat didalam sistem terdiri dari : Entitas Jenis Barang : Menyimpan informasi jenis-jenis barang yang ditawarkan Entitas Barang : Menyimpan informasi rincian dari Entitas Jenis Barang Entitas Pemasok: Menyimpan informasi mengenai semua pemasok Entitas Gudang : Menyimpan informasi mengenai gudang untuk penyimpanan barang

2. Penentuan atribut dari stiap entitas yang terlibat didalam sistem : Jenis Barang : kd_jenis, nama_jenis Barang : kd_barang, kd_jenis, merk, ukuran, harga_jual Pemasok: kd_pemasok, nama_pemasok, alamat, no_tlp, kode_pos, kota Gudang : kd_gudang, nama_gudang, alamat

3. Penentuan Primary Key (PK) dari stiap entitas yang terlibat didalam sistem : Jenis Barang : kd_jenis (PK) Barang : kd_barang (PK) Pemasok: kd_pemasok (PK) Gudang : kd_gudang (PK)

4. Penentuan relasi dan kadinalitas dari entitas yang terlibat didalam sistem :

5. Penentuan kadinalitas dari entitas yang terlibat didalam sistem :

Dikarenakan kardinalitas relasi antara entitas Barang ke entitas Pemasok dan entitas Barang ke Gudang many to many, maka akan menghasilkan entitas internal yang baru yaitu entitas Transaksi dan Stok dengan atribut sebagai berikut : Transaksi: kd_transaksi (PK), tanggal, kd_barang, kd_pemasok, quantity, harga_satuan, total_harga Stok: kd_stok (PK), kd_barang, kd_gudang, jumlah_stok

6. Penentuan kamus data dari setiap entitas yang terlibat dalam sistem : Jenis Barang kd_jenis: kode unik unuk setiap jenis barang nama_jenis: nama jenis barang Barang kd_barang : kode unik unuk setiap barang kd_jenis: kode unik yang mengacu pada entitas jenis barang merk: merk barang ukuran: ukuran (kapasitas) barang jika jenis barang berupa drive harga_jual: harga jual barang Pemasok kd_pemasok : kode unik unuk setiap pemasok nama_pemasok: nama pemasok alamat: alamat pemasok no_tlp: no telpon pemasok kode_pos: kode pos pemasok kota: kota asal pemasok

Gudang kd_gudang : kode unik unuk setiap gudang nama_gudang: nama gudang alamat: alamat / lokasi gudang Transaksi kd_transaksi: kode unik unuk setiap transaksi tanggal: tanggal terjadinya transaksi kd_barang: kode unik yang mengacu pada entitas barang kd_pemasok: kode unik yang mengacu pada entitas pemasok quantity: jumlah barang yang dikirim oleh suplayer harga_satuan: harga beli per satuan barang dari suplayer total_harga: total pembayaran kepada suplayer Stok kd_stok : kode unik unuk setiap stok barang kd_barang: kode unik yang mengacu pada entitas barang yang tersimpan di gudang kd_gudang: kode unik yang mengacu pada entitas gudang tempat penyimpanan barang jumlah_stok: jumlah barang yang ada di gudang

7. Gambar ERD dari system :

8. Penentuan Foriegn Key (FK) dari stiap entitas yang terlibat didalam sistem : Jenis Barang : kd_jenis (PK), nama_jenis Barang : kd_barang (PK), kd_jenis (FK), merk, ukuran, harga_jual Pemasok: kd_pemasok (PK), nama_pemasok, alamat, no_tlp, kode_pos, kota Gudang : kd_gudang (PK), nama_gudang, alamat Transaksi: kd_transaksi (PK), tanggal, kd_barang (FK), kd_pemasok (FK), quantity, harga_satuan, total_harga Stok: kd_stok (PK), kd_barang (FK), kd_gudang (FK), jumlah_stok

9. Mentransformasikan ERD yang sudah dibuat kedalam Tabel Basis data :

10. Pada study kasus ini tabel sudah normal, jadi tidak perlu melakukan normalisasi

11. Membuat struktur penyimpanan table basis datajenis_barangAtributType DataPanjangKeterangan

kd_jenisChar 3 Primary Key

nama_jenisVarchar 30

barangAtributType DataPanjangKeterangan

kd_barangChar 5 Primary Key

kd_jenisChar 3 Foreign Key

merkVarchar 20

ukuranVarchar 10

harga_jualInteger 11

pemasokAtributType DataPanjangKeterangan

kd_pemasokChar 3 Primary Key

nama_pemasokVarchar 30

alamatVarchar 30

no_tlpVarchar 12

kode_posVarchar 5

kotaVarchar 10

gudangAtributType DataPanjangKeterangan

kd_gudangChar 3 Primary Key

nama_gudangVarchar 30

alamatVarchar 30

transaksiAtributType DataPanjangKeterangan

kd_transaksiChar 3 Primary Key

tanggalDate

kd_barangChar 5 Foreign Key

kd_pemasokChar 3 Foreign Key

quantityInt 11

harga_satuanInt 11

total_hargaInt 11

StokAtributType DataPanjangKeterangan

kd_stokChar 3 Primary Key

kd_barangChar 5 Foreign Key

kd_gudangChar 3 Foreign Key

jumlah_stokInt 11

12. Membuat syntax DDL (langsung di implementasikan ke dalam MySql di no 13)

13. Mengimplementasikan syntax DDL kedalam MySql :

Membuat database baru :CREATE DATABASE inventory_1106042_acc_komputer;

SHOW DATABASES;

Membuat (menambahkan) tabel baru ke database Inventory

Syntax membuat tabel jenis_barang :CREATE TABLE jenis_barang (kd_jenis Char(3) NOT NULL PRIMARY KEY, nama_jenis Varchar(30) NOT NULL);

Syntax membuat table barang :CREATE TABLE barang ( kd_barang Char(5) PRIMARY KEY, kd_jenis Char(3) NOT NULL , merk Varchar (20) DEFAULT -, ukuran Int(10), harga_jual Int);

Syntax membuat table pemasok :CREATE TABLE pemasok (kd_pemasok Char(3) NOT NULL PRIMARY KEY,nama_pemasok Varchar(30) NOT NULL,alamat Varchar(30),no_tlp Varchar(12),kode_pos Varchar(5),kota Varchar(10));

Syntax membuat table gudang :CREATE TABLE gudang (kd_gudang Char(3) PRIMARY KEY,nama_gudang Varchar(30) NOT NULL,alamat Varchar(30));

Syntax membuat table transaksi :CREATE TABLE transaksi (kd_transaksi Char(3) NOT NULL PRIMARY KEY,tanggal Date,kd_barang Char(5) NOT NULL,kd_pemasok Char(3) NOT NULL,quantity Int,harga_satuan Int NOT NULL,total_harga Int);

Syntax membuat table stok :CREATE TABLE stok (kd_stok Char(3) PRIMARY KEY,kd_barang Char(5) NOT NULL,kd_gudang Char(3) NOT NULL,jumlah_stok Int);

Syntax melihat semua tabel didalam database inventory_1106042_acc_komputer :SHOW TABLES;

Membuat Trigger auto yang berfungsi untuk melakukan otomatis update tabel stok(Jumlah_Stok) ketika tabel Transaksi melakukan Insert data.DELIMITER $$CREATE TRIGGER auto AFTER INSERT ON transaksiFOR EACH ROW BEGINUPDATE stok SET Jumlah_Stok = Jumlah_Stok + new.QuantityWHERE kd_barang = new.kd_barang;END$$DELIMITER ;

14. Membuat antar muka dengan php (Dikarenakan banyaknya source yang dibuat untuk setiap tabel, penulis hanya melampirkan antar muka untuk melihat data, menambah data, mengedit data dan menghapus data pada tabel transaksi saja, sisanya penulis lampirkan source dalam bentuk file PHP untuk setiap tabelnya)

Manampilkan data

Transaksi

Cufon.replace('h1, h2 ,#portfolio-filter a', { hover: true , fontFamily: 'SansationLight'});Cufon.replace('#topNav a,h3, h4', { hover: true , fontFamily: 'SansationRegular' });

  • Transaksi
  • Barang
  • Stok
  • Jenis Barang
  • Pemasok
  • Gudang

Laporan TransaksiNoKode TransaksiTanggalKd BarangNama PemasokQuantityHarga SatuanTotal HargaAction

Transaksi

Cufon.replace('h1, h2 ,#portfolio-filter a', { hover: true , fontFamily: 'SansationLight'});Cufon.replace('#topNav a,h3, h4', { hover: true , fontFamily: 'SansationRegular' });

  • Transaksi
  • Barang
  • Stok
  • Jenis Barang
  • Pemasok
  • Gudang

Tambah Data Transaksi

Kode Transaksi

Tanggal Kode Barang Nama Pemasok Quantity Harga Satuan Copyright 2013 Fikri Fahru Roji. All Rights Reserved.

-----------------------------------------------------------------------

Transaksi

Cufon.replace('h1, h2 ,#portfolio-filter a', { hover: true , fontFamily: 'SansationLight'});Cufon.replace('#topNav a,h3, h4', { hover: true , fontFamily: 'SansationRegular' });

  • Transaksi
  • Barang
  • Stok
  • Jenis Barang
  • Pemasok
  • Gudang

Update Data Transaksi

Kode Transaksi Nama Pemasok