SKRIPSI
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
Oleh:
Nama : Cordelia Lajamarta NIM : 015314025
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
A THESIS
Presented as a Partial Fulfillment To Obtain a Bachelor of Technic Degree
Informatics Engineering Study Program
By:
Name : Cordelia Lajamarta NIM : 015314025
INFORMATICS ENGINEERING STUDY PROGRAM
SCIENCE AND TECHNOLOGY FACULTY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
Karya ini kupersembahkan kepada
My Lord Jesus Christ…
Papa dan Mama di surga,
Kedua kakakku Cie Nonie dan Ko Herry
Teman-temanku Nana, Welly, Yosep, Nope, Diana,
Fenny, Vino, Grace, dan sahabat-sahabatku
Nilai seseorang bukan hanya dilihat dari Prestasi dan harta benda yang dimiliki
tetapi juga dari Kebaikan, Ketulusan, Kerendahan dan Kebesaran Hati.
Kegagalan bukanlah akhir dari segalanya tapi jadikan kegagalan sebagai awal
usaha yang baru
Kesalahan terbesar yang dapat dilakukan oleh umat manusia adalah merasa takut
melakukan kesalahan (Abbert Hubbard).
Jangan menunggu, waktu tidak pernah “benar-benar” tepat mulailah dari tempat
anda berhenti sekarang dan bekerjalah dengan menggunakan alat apapun yang
anda miliki, dan alat-alat yang lebih baik akan ditemukan saat anda melakukan
pekerjaan anda.(Napoleon Hill)
Pikiran yang paling menghancurkan diri sendiri yang bisa dimiliki oleh setiap orang
adalah bahwa dia tidak memegang kendali atas hidupnya sendiri (Roger Dawson).
Selama ini pencatatan transaksi penjualan, retur penjualan, dan inventori dilakukan secara manual oleh staff penjualan dan inventori, sehingga untuk
memperoleh informasi ini dibutuhkan waktu yang lama. Oleh karena itu, perlu dikembangkan suatu sistem yang dapat digunakan untuk membantu kegiatan
operasional perusahaan meliputi transaksi penjualan, retur penjualan, dan inventori agar mampu menghasilkan dan mengolah informasi penjualan dan inventori secara cepat, tepat, dan akurat.
Sistem ini dikembangkan dengan menggunakan metode Rekayasa Perangkat Lunak secara terstruktur, dengan menggunakan DBMS Oracle XE, dan
menggunakan Oracle Developer sebagai piranti pengembangnya. Oracle XE digunakan karena Oracle merupakan DBMS yang cukup reliable dan bersifat freeware.
Hasil akhir yang diperoleh adalah sebuah sistem informasi penjualan & inventori berbasis web, yang mampu menerima dan mengolah masukan data
transaksi penjualan, retur penjualan, dan inventori sehingga mampu menghasilkan informasi secara cepat dan akurat.
Sistem ini hanya dapat diakses oleh lingkungan internal perusahaan khususnya
staff penjualan dan inventori, manager, dan owner. Masing-masing user memiliki hak dan kewenangan sendiri dalam mengakses sistem. Sistem ini masih memiliki
Transaction Sales and Inventory has been recorded manually by Sales and Information Staff. It spend more time to process data and produce information. So
we need to develop a system which can help operational activity (sales and inventory transaction) to produce information quickly but still appropriate and accurate.
This system developed by structured software engineer with Oracle XE as
DBMS and Oracle Developer as development tool. Oracle XE has been used because of reliability and freeware.
The final result is a web-based sales and inventory information system which can accept and processing sales and inventory data transaction, so it can produce appropriate and accurate information.
Only internal side of the company can access this system, especially sales and inventory staff; manager; and owner. Each user has privilege to access the system.
Terima kasih dan puji syukur penulis ucapkan kepada Tuhan Yang Maha Esa
atas berkat dan rahmatnya, sehingga penulis dapat menyelesaikan karya ini. Penulis menyadari bahwa tanpa bantuan dari berbagai pihak, penulis tidak dapat menyelesaikan karya ini. Untuk itu, penulis ingin mengucapkan terima kasih kepada
semua pihak yang telah membantu, terutama kepada :
1. Ibu A. M. Polina, S. Kom, M. Sc, selaku Ketua Jurusan Teknik Informatika
sekaligus pembimbing Tugas Akhir penulis yang telah memberikan bimbingan dan dukungan (serta turut direpotkan dan disibukkan) dalam pembuatan karya ini.
2. Kakak-kakak penulis Cie Nonie dan Ko Herry yang sudah mendukung, membantu penulis dalam segala hal baik moril maupun materil dan juga yang sudah berperan sebagai pengganti orang tua penulis.
3. Ci Ana, O Atun, Jonas, Jessi serta seluruh kerabat yang sudah ikut membantu penulis dalam segala hal.
4. Dosen Pembimbing Akademik, Bapak Alb. Agung H., Bapak Bambang
Soelistijanto, S.T., M.Sc (eks P.A.) dan Bapak Dyonisius Dony Ariananda, S.T. (eks.P.A juga.) yang telah memberikan bimbingan dalam bidang akademis.
5. Pak Bele, Mas Danang, Mbak Sri, Mas Catur dan Pak Dar, serta staff laboratorium lainnya yang membantu menyediakan fasilitas laboratorium selama
Ncep. Trim’s buat bantuan, saran, dan dukungan kalian.
7. Teman-teman Kos 99999 Diana, Fenny, Grace, Vina, Linna, Limdra, Meri,
Nyun, Lise, Maria, Octa, Julie. Makasih buat semuanya yang sudah kalian berikan.
8. Mbeng n Adri yang sering membantu mengantar-antar penulis dan juga
membantu pindahan mengangkut barang-barang.
9. Seluruh teman penulis yang belum penulis sebutkan namanya diatas terimakasih
atas dukungan dan bantuannya.
Penulis mohon maaf yang sebesar-besarnya kepada semua pihak apabila dalam pembuatan karya ini, penulis melakukan kekeliruan dan kesalahan baik yang
disengaja maupun yang tidak disengaja.
Penulis juga menyadari keterbatasan kemampuan yang dimiliki untuk menyelesaikan karya ini dengan baik, sehingga masih terdapat banyak kekurangan.
Untuk itu, penulis mengharapkan adanya kritik dan saran yang membangun. Semoga karya ini bermanfaat bagi kita semua.
Yogyakarta, 24 September 2007
Penulis
HALAMAN JUDUL... i
HALAMAN PERSETUJUAN... ii
HALAMAN PENGESAHAN...iii
PERNYATAAN KEASLIAN KARYA ... iv
HALAMAN PERSEMBAHAN ... v
HALAMAN MOTO ... vi
ABSTRAKSI ... vii
ABSTRACT...viii
KATA PENGANTAR ... ix
DAFTAR ISI... xi
DAFTAR TABEL...xiii
DAFTAR GAMBAR ... xiv
BAB I PENDAHULUAN ... 1
1.1. Latar Belakang Masalah... 1
1.2. Batasan Masalah ... 2
1.3. Tujuan dan Manfaat ... 2
1.4. Rumusan Masalah ... 3
1.5. Metodologi Penelitian ... 3
1.6. Sistematika Penulisan ... 4
BAB II LANDASAN TEORI ... 6
2.1 Web... 6
2.2 Sistem Informasi ... 6
2.3 Database Design/Perancangan Basis Data ... 11
2.4. Oracle Database... 20
2.5. Oracle PL/SQL (Procedural Language/Structured Query Language)... 26
2.6. Oracle Developer ... 28
2.6.1 Forms Developer... 28
2.6.2 Reports Developer... 31
BAB III ANALISA DAN PERANCANGAN SISTEM... 33
3.1. Analisa Sistem... 33
3.1.1 Gambaran Umum Sistem ... 33
3.1.1.1 Gambaran Umum Sistem Lama ... 34
3.1.1.2 Gambaran Umum Sistem Baru ... 35
3.1.2 Use Case... 37
3.1.3 DFD ( Data Flow Diagram )/DAD ( Diagram Arus Data ) ... 38
3.1.3.1 Context Diagram... 39
3.1.3.2 Bagan Berjenjang ... 39
3.1.3.3 Overview Diagram... 40
3.1.3.4 DFD Level 1 Proses 6 ... 41
3.1.3.5 DFD Gabungan ... 42
3.2 Perancangan Sistem ... 44
3.2.1.2 Logical Database Design... 45
3.2.1.3 Physical Database Design... 47
3.2.2 Design User Interface... 51
3.2.2.1 Design Output... 51
3.2.2.2 Design Input... 54
BAB IV IMPLEMENTASI SISTEM ... 60
4.1 Karakteristik Sistem ... 60
4.2 Tahap Implementasi ... 61
4.2.1 Implementasi Database... 61
4.2.1.1 Pembuatan Tabel... 61
4.2.1.2 Pembuatan Trigger... 62
4.2.1.3 Pembuatan Sequence... 66
4.2.2 Implementasi User Interface... 67
4.2.2.1 Pembuatan Form... 67
4.2.2.2 Pembuatan Laporan... 76
4.2.2.3 Pembuatan Menu... 79
4.2.2.4 User Interface... 80
BAB V ANALISIS HASIL... 104
5.1 Kelebihan Sistem ... 104
5.2 Kekurangan Sistem ... 105
BAB VI KESIMPULAN DAN SARAN ... 106
6.1 Kesimpulan ... 106
6.2 Saran... 106
DAFTAR PUSTAKA ... 107
Tabel 2.3 Tabel Bagian dari Trigger... 25
Tabel 2.4 Tabel Struktur Prosedur ... 27
Tabel 2.5 Tabel Perbedaan Prosedur dan Fungsi ... 28
Tabel 3.1 Tabel StaffPI Tahap Physical Design... 47
Tabel 3.2 Tabel Konsumen Tahap Physical Design... 48
Tabel 3.3 Tabel Barang Tahap Physical Design... 48
Tabel 3.4 Tabel Masuk Tahap Physical Design... 49
Tabel 3.5 Tabel DetailMasuk Tahap Physical Design... 49
Tabel 3.6 Tabel Jual Tahap Physical Design... 50
Tabel 3.7 Tabel DetailJual Tahap Physical Design... 50
Gambar 2.2 Tahap-tahap Perancangan Database (Atzeni, 2000)... 12
Gambar 3.1 Use Case Diagram... 38
Gambar 3.2 Context Diagram... 39
Gambar 3.3 Bagan Berjenjang ... 40
Gambar 3.4 Overview Diagram... 41
Gambar 3.5 DFD level 1 Proses 6... 42
Gambar 3.6 DFD Gabungan ... 43
Gambar 3.7 ER Diagram (sebelum normalisasi) ... 44
Gambar 3.8 Relational Model (setelah normalisasi)... 46
Gambar 3.9 Faktur Penjualan... 52
Gambar 3.10 Laporan Penjualan... 52
Gambar 3.11 Laporan Persediaan Barang... 53
Gambar 3.12 Laporan Barang Terjual ... 53
Gambar 3.13 Laporan Konsumen yang Membeli Barang ... 54
Gambar 3.14 Form Login... 54
Gambar 3.15 Form Input data Staff PI... 55
Gambar 3.16 Form Input Data Konsumen... 56
Gambar 3.17 Form Input Data Barang ... 57
Gambar 3.18 Form Input Data Transaksi Penjualan... 58
Gambar 3.19 Form Input Data Transaksi Pemasukan Barang... 59
Gambar 3.20 Form Input untuk Pembuatan Laporan ... 59
Gambar 4.1 Form Login... 82
Gambar 4.2 Menu Utama... 83
Gambar 4.3 Sub Menu Transaksi... 84
Gambar 4.4 Sub Menu Master ... 85
Gambar 4.5 Form Input Data Staff PI... 86
Gambar 4.6 Form Input Data Konsumen... 88
Gambar 4.7 Form Input Data Barang ... 89
Gambar 4.8 Form Transaksi Pemasukan Barang... 92
Gambar 4.9 Form Transaksi Penjualan Barang ... 94
Gambar 4.10 Form Transaksi Retur Penjualan Barang ... 96
Gambar 4.11 Parameter Input Tanggal untuk Pembuatan Laporan... 97
Gambar 4.12 Faktur Penjualan... 98
Gambar 4.13 Laporan Penjualan... 99
Gambar 4.14 Laporan Persediaan Barang... 100
Gambar 4.15 Laporan Barang Terjual ... 101
Gambar 4.16 Laporan Konsumen yang Membeli Barang ... 102
1.1. Latar Belakang Masalah
Saat ini informasi memegang peranan penting dalam kehidupan manusia. Salah satu kriteria keunggulan suatu perusahaan dapat dilihat dari
kecepatan dan ketepatan perolehan informasi. Informasi bagi perusahaan dapat digunakan untuk meningkatkan efektifitas dan efisiensi kinerja perusahaan. Kecepatan dan pengaruh informasi terhadap perusahaan akan dibandingkan
dengan waktu, tenaga, dan biaya yang dikeluarkan perusahaan untuk memperoleh informasi. Tentunya semakin sedikit waktu, tenaga, dan biaya
yang dikeluarkan namun menghasilkan informasi yang sangat berpengaruh bagi perusahaan merupakan hal yang diharapkan oleh perusahaan pada umumnya.
Pada PT. Sanitas-Cirebon perhitungan omzet (hasil transaksi penjualan)
setiap hari, bulan, dan tahun masih dilakukan secara manual. Laporan untuk owner/pemilik masih secara manual, staff dari pabrik harus melaporkan
transaksi-transaksi penjualan dan pembayaran dari transaksi-transaksi tersebut secara manual. Staff pabrik dan owner berada di tempat yang berbeda sehingga dibutuhkan waktu, tenaga, dan biaya lebih banyak untuk mendapat informasi
yang dibutuhkan. PT. Sanitas-Cirebon khususnya di bagian pabrik plastik sudah memiliki perangkat komputer namun belum dimanfaatkan secara optimal
Informasi Penjualan dan Inventori Berbasis Web yang memiliki kemampuan dalam pengelolaan data berkaitan dengan persediaan barang, penjualan, dan
retur penjualan.
1.2. Batasan Masalah
a. Sistem yang dibuat hanya meliputi bagian penjualan dan inventori barang
jadi, tanpa membahas keterlibatan bahan mentah.
b. Sistem tidak menangani keamanan data akibat adanya tindakan dari pihak luar.
c. Sistem tidak menangani masalah transaction management. d. Sistem tidak menangani masalah piutang konsumen.
1.3. Tujuan dan Manfaat
Tujuan dan manfaat yang diharapkan:
a. Mengembangkan Sistem Informasi yang sesuai dengan kebutuhan PT.
Sanitas-Cirebon sehingga mampu membantu operasional perusahaan, melalui tersedianya informasi yang cepat, tepat, dan akurat khususnya untuk user di bidang transaksi penjualan dan inventori.
b. Dapat menjadi acuan teori dan praktek bagi pengembangan Sistem Informasi Penjualan dan Inventori Berbasis Web sejenis yang
a. Bagaimana mengembangkan Sistem Informasi Berbasis Web untuk
penjualan dan inventori yang sesuai untuk PT. Sanitas-Cirebon menggunakan Oracle.
b. Sejauh mana Oracle mendukung untuk membuat aplikasi berbasis web
untuk kasus tersebut diatas.
1.5. Metodologi Penelitian
Metodologi penelitian yang digunakan adalah studi kasus, dengan tahap-tahap sebagai berikut:
a. Studi literatur: mempelajari hal-hal yang berkaitan dengan pengembangan
sistem informasi mulai dari analisa sampai proses implementasi.
b. Observasi: mengamati proses kerja dari perusahaan (dalam kasus ini yang diamati PT. Sanitas-Cirebon bidang pabrik plastik).
c. Interview: mewawancara staff pabrik mengenai sistem yang sedang dijalankan.
d. Pengembangan sistem dengan metode pengembangan perangkat lunak secara terstruktur, dengan langkah-langkah sebagai berikut:
1. Analisa sistem yaitu dengan melakukan analisa terhadap sistem yang
ada.
2. Merancang sistem informasi yang akan menjadi dasar dalam pembuatan
Berbasis Web.
4. Menguji perangkat lunak yang dihasilkan.
1.6. Sistematika Penulisan
Bab I PENDAHULUAN
berisi latar belakang masalah, batasan masalah, tujuan dan manfaat
penelitian, rumusan masalah, metodologi penelitian, sistematika penulisan.
Bab II LANDASAN TEORI
berisi teori-teori yang digunakan sebagai acuan selama perancangan sampai pembuatan Sistem Informasi.
Bab III ANALISA DAN PERANCANGAN SISTEM
berisi analisa dan perancangan dari sistem informasi yang akan dibuat.
Bab IV IMPLEMENTASI
berisi pengubahan dari perancangan ke pembuatan sistem serta
berisi analisa terhadap hasil dari sistem dibandingkan dengan masalah yang akan dipecahkan dalam rumusan masalah, mengungkap
kelemahan dari sistem (jika ada) beserta penyebabnya.
Bab VI KESIMPULAN DAN SARAN
berisi pengambilan kesimpulan dari keluaran sistem dibandingkan
2.1 Web
Istilah-istilah yang ada dalam Web ( Febrian & Andayani, 2002): 1. HTTP (Hypertext Transfer Protocol)
HTTP adalah protokol yang dipakai web browser dan web server untuk mengirimkan data dalam www (world wide web).
2. Web browser/browser
Web browser adalah suatu program komputer yang menyediakan layanan
untuk membaca halaman web di suatu komputer.
3. Web server
Web server adalah suatu program (dan juga mesin yang menjalankan
program) yang mengerti protokol HTTP dan dapat menanggapi
permintaan-permintaan dari web browser untuk mengakses suatu halaman web tertentu.
2.2 Sistem Informasi
Istilah-istilah yang ada dalam sistem informasi: 1. Proses
Proses adalah mengolah masukan (input) yang diperlukan sehingga
menghasilkan suatu keluaran (output) (Febrian & Andayani, 2002). 2. Program
3. Perangkat Lunak
Perangkat lunak adalah program yang digunakan untuk menghasilkan, mengelola, memperoleh, mengubah, menampilkan, atau mengirimkan
informasi (Febrian & Andayani, 2002). 4. Perangkat Keras
Perangkat keras adalah seluruh perangkat yang digunakan untuk
mengoperasikan suatu sistem komputer (Febrian & Andayani, 2002). 5. Teknologi Informasi
Teknologi informasi adalah istilah yang menggambarkan kombinasi teknologi komputer (perangkat keras dan lunak) dengan teknologi
komunikasi (jaringan data, gambar, dan suara) (Whitten, 2004).
6. Data
Data adalah suatu fakta, kejadian yang belum diolah (mentah). 7. Databas/Basis Data
Database adalah sekumpulan data yang dikendalikan dan dikelola oleh
suatu DBMS (Atzeni, 2000).
8. DBMS/Database Management System
DBMS adalah suatu perangkat lunak yang dapat mengelola kumpulan data yang besar, digunakan bersama (shared) dan secara terus menerus
9. Informasi
Informasi adalah data yang sudah diolah sehingga berguna bagi pihak tertentu.
10. Sistem Informasi
Sistem informasi adalah pengaturan orang, data, proses, dan teknologi informasi yang berinteraksi untuk mengumpulkan, memproses,
menyimpan, dan menyediakan sebagai keluaran, informasi yang diperlukan untuk mendukung sebuah organisasi (Whitten, 2004).
Siklus hidup pengembangan Sistem Informasi dapat dilihat pada gambar 2.1.
Gambar 2.1 Siklus Hidup Pengembangan SI (Atzeni, 2000) Feasibility Study
Collection & Analysis of Requirements
Design Database Design
Operational Design
Implementation
Validation & Testing
Tahap-tahap dalam siklus pengembangan sistem informasi, yaitu:
1. Feasibility Study
Tahap feasibility study yaitu tahap studi kelayakan terhadap
pembuatan sistem.
2. Collection and Analysis of Requirements
Tahap collection and analysis of requirements yaitu tahap
pengumpulan dan analisis terhadap kebutuhan.
3. Design
Tahap design meliputi design database (mendefinisikan struktur dan organisasi data) dan design operational (mendefinisikan sifat/karakteristik dari sistem informasi).
4. Implementation
Tahap implementation yaitu tahap pembuatan sistem informasi berdasar struktur dan karakteristik yang telah didefinisikan dalam
tahap design.
5. Validation dan testing
Tahap validation dan testing yaitu tahap pemeriksaan kualitas dan kebenaran dari sistem informasi.
6. Operation
Tahap operation yaitu tahap penggunaan sistem informasi.
11. Use Case Modelling/Pemodelan Use Case
Use case modelling adalah sebuah proses untuk memodelkan
cara mengaksesnya. Use case merupakan pemodelan dari analisis
kebutuhan.
Didalam use case modelling terdapat beberapa istilah, yaitu:
1. Aktor adalah segala sesuatu yang berhubungan dengan sistem, yang mengolah dan mendapatkan informasi dalam sistem.
2. Asosiasi adalah interaksi yang terjadi antara aktor dengan use case.
3. Use case depends on relationship adalah adanya use case yang harus dijalankan terlebih dahulu sebelum use case yang lain.
12. DFD (Data Flow Diagram)/DAD (Diagram Arus Data)
DFD menggambarkan aliran data dari (sebagai masukan) dan ke dalam sistem (sebagai keluaran). Penggambaran DFD meliputi beberapa tahap :
1. Context Diagram
Context diagram menggambarkan sistem secara umum, hanya
menggambarkan aliran data dari dan ke dalam sistem.
2. Bagan Berjenjang
Bagan berjenjang menggambarkan struktur dari proses-proses yang
ada dalam sistem. 3. Overview Diagram
Menggambarkan aliran data dari dan ke dalam proses yang ada dalam sistem.
4. Level 1 Proses sub proses
5. DFD Gabungan
DFD gabungan merupakan gabungan antara overview diagram dan level 1 proses sub proses.
2.3 Database Design/Perancangan Basis Data
Database design merupakan salah satu tahap yang dikerjakan dari tahap
desain pada siklus hidup pengembangan sistem. Tahap-tahap yang akan
Gambar 2.2 Tahap-tahap Perancangan Database (Atzeni, 2000) Perancangan Database terdiri dari 3 tahap yang utama, yaitu:
1. Conceptual Design
Tahap conceptual design menggambarkan isi (content) dari
database tanpa mempertimbangkan implementasi database tersebut dan efisiensi dari program yang memanfaatkan database tersebut.
Tahap conceptual design menghasilkan conceptual schema yang
mengacu pada suatu conceptual model (saat ini conceptual model yang Application
Requirements
Database Design
Conceptual Schema
Logical Schema
Physical Schema
Database Structure and related documentation
Conceptual Design
Logical Design
banyak digunakan adalah ER Model (Entity Relationship Model)/ER
Diagram (Entity Relationship Diagram).
Conceptual model mendeskripsikan organisasi data pada abstraksi
level tinggi dan tidak memperhatikan aspek implementasi.
Komponen utama yang membentuk ER Diagram, yaitu:
a. Entitas
Entitas adalah obyek (misal berupa orang, tempat, kejadian) yang nyata dan dapat dibedakan satu dengan yang lainnya. Himpunan entitas
adalah kumpulan entitas yang sejenis. Setiap entitas memiliki atribut sebagai karakteristik masing-masing entitas. Macam-macam atribut:
1. Key (primary key) dan atribut deskriptif
Key adalah atribut yang membedakan antara satu record dengan
record yang lain. Key bersifat unik. Record adalah kumpulan dari isi
atau nilai atribut. Atribut deskriptif adalah atribut yang tidak
menjadi primary key
2. Simple Attribute dan Composite attribute
Simple attribute adalah atribut yang tidak dapat diuraikan lagi.
Composite attribute adalah atribut yang dapat dibagi menjadi
3. Single Valued Attribute dan Multivalued Attribute
Single valued attribute adalah atribut yang memiliki satu dan hanya
satu nilai pada setiap record. Multivalued attribute adalah atribut yang dapat memiliki lebih dari satu nilai.
4. Mandatory attribute dan Nonmandatory attribute
Mandatory attribute adalah atribut yang harus memiliki nilai (tidak
boleh bernilai NULL). Nonmandatory attribute adalah atribut yang boleh tidak memiliki nilai (boleh NULL).
5. Derived Attribute
Derived attribute adalah atribut yang nilainya dapat diperoleh dari
atribut lain atau hasil pengolahan.
b. Relasi
Relasi adalah hubungan antar entitas. Relasi yang mungkin terjadi : 1. Relasi satu lawan satu (One To One Relationship)
Setiap entitas pada himpunan entitas yang satu tepat berelasi dengan satu entitas pada himpunan entitas yang lain.
2. Relasi satu lawan banyak ( One to Many Relationship)
Setiap entitas pada himpunan entitas yang satu berelasi dengan banyak (lebih dari satu) entitas pada himpunan entitas yang lain.
3. Relasi banyak lawan banyak (Many to Many Relationship) Banyak entitas pada himpunan entitas yang satu berelasi dengan
2. Logical Design
Tahap logical design berisi penerjemahan conceptual schema ke model data yang digunakan suatu DBMS. Pada tahap logical design juga dilakukan optimalisasi database yang digunakan, biasanya menggunakan
teknik normalisasi.
Tahap logical design menghasilkan logical schema database yang
mengacu pada logical data model (saat ini logical data model yang banyak digunakan adalah relational model).
Logical model mempresentasikan data tanpa melibatkan physical
details. Tahap logical design melakukan restrukturisasi ER Diagram dan
mentranslasikan ER Diagram tersebut ke bentuk relational model.
a. Restrukturisasi ER Diagram
Langkah-langkah dalam restrukturisasi ER Diagram:
1. Analisa redundansi
Redudansi pada ER Diagram adalah data yang diperoleh dari data yang lain.
Macam redundansi:
a) Redundansi akibat adanya nilai atribut yang didapat dari atribut yang lain pada entitas atau relasi yang sama.
c) Redundansi akibat adanya relasi yang didapat dari relasi yang
lain.
2. Hilangkan Generalisasi
Generalisasi yang ada pada ER Diagram tidak dapat langsung
ditranslasikan ke bentuk relational model. Ada 3 cara untuk menghilangkan generalisasi:
a) Meleburkan entitas-entitas anak ke dalam entitas induk b) Memecah entitas induk ke dalam entitas-entitas anak. c) Mengganti generalisasi yang ada dengan relasi.
3. Memecah/menggabungkan entitas-entitas dan relasi-relasi
Memecah maupun menggabungkan entitas-entitas dan relasi-relasi
dapat dilakukan dengan tujuan efisiensi operasional/akses. Akses akan berkurang dengan adanya pemisahan atribut konsep sama yang diakses dengan operasional yang berbeda. Akses juga akan
berkurang dengan penggabungan atribut dari konsep berbeda yang diakses operasional yang sama. Pemecahan entitas dilakukan bila:
a) Informasi yang sering diakses hanya sebagian kecil dari atribut yang dimiliki entitas tersebut.
b) Atribut pada entitas yang bernilai banyak.
4. Tentukan Primary Key
Primary key merupakan komponen yang penting untuk dapat
b. Translasi ER Diagram ke bentuk relational model
Ada 2 langkah yang dilakukan dalam translasi ER diagram ke dalam bentuk relational model, yaitu:
1. Normalisasi
Normalisasi bertujuan untuk:
a) Memudahkan perancangan database
b) Memperkecil redundansi
c) Memudahkan proses update pada database Langkah-langkah normalisasi:
a) Mentransformasikan semua data ke dalam tabel 2 dimensi Bentuk unnormalisasi dapat terjadi karena setiap record dapat
memiliki lebih dari 1 nilai.
Pada langkah ini, data yang berulang akan dihilangkan.
b) Menentukan kunci/key dan item data yang berkaitan dengan
kunci tersebut.
Dalam proses normalisasi ada 2 bentuk normal, yaitu:
1. Bentuk Normal Pertama
2. Bentuk Normal Kedua
berisi pemecahan tabel normal pertama menjadi tabel-tabel yang baru. Pemecahan akan dilakukan bila ada atribut bukan
kunci yang tidak tergantung penuh pada atribut kunci.
c) Memisahkan item data yang bergantung pada item data yang bukan kunci.
Pemisahan tabel normal kedua dilakukan bila ada item data yang bergantung secara tidak langsung (transitive dependency) pada item data bukan kunci.
2. Relational Model
Relational model adalah model yang menggambarkan database
dalam bentuk tabel 2 dimensi yaitu baris dan kolom. Tiap baris menggambarkan atribut sedangkan tiap kolom menggambarkan record. Sifat relational model:
a) Tidak ada baris yang sama nilainya b) Urutan baris dan kolom bebas
c) Nilai data atomic/tidak dapat dipecah lagi. Komponen dalam relational model:
a) Tabel
b) Kunci
Setiap record pada tabel harus mempunyai unsur unik dalam nilai tiap atributnya. Unsur unik tersebut dapat dikelompokkan dalam kolom tersendiri.
Setiap tabel memiliki jenis kunci yang berbeda dan antara kunci yang satu dengan kunci yang lain dapat digabungkan.
Fungsi kunci adalah untuk menggambarkan relasi yang ada dan juga sebagai pengenal. Jenis kunci pada tabel:
a. Primary Key
Nilai atribut yang membedakan record yang satu dengan record yang lain.
b. Secondary Key
Nilai dari atribut yang tidak terlalu unik tetapi juga dapat digunakan untuk melengkapi primary key, dalam
membedakan record yang satu dengan record yang lain.
c. Foreign Key
Nilai dari atribut pada record pada suatu tabel yang merupakan primary key pada record di tabel lain.
c) Relasi
3. Physical Design
Tahap physical design menghasilkan logical schema, yang dilengkapi dengan detail-detail implementasi database secara fisik (organisasi file dan indeks) sesuai DBMS yang digunakan.
2.4. Oracle Database
Relational database/basis data relasional adalah kumpulan relasi.
Relational database dapat diakses dengan menggunakan SQL (Structured
Query Language).
Berdasarkan fungsinya perintah-perintah dalam SQL dibedakan
menjadi 5 golongan yaitu:
1. Data Retrieval
Perintah SQL yang berfungsi untuk membaca data dari database. Perintah SQLnya meliputi: select.
2. DDL/Data Definition Language
DDL digunakan untuk mendefinisikan suatu database untuk pertama kali. Perintah SQLnya meliputi antara lain: create, alter, drop, rename, truncate.
3. DML/Data Manipulation Language
DML digunakan untuk meng-queri dan meng-update isi dari suatu database. Perintah SQLnya meliputi antara lain: insert, update, delete, dan
4. Transaction Control
Perintah-perintah yang berfungsi untuk mengatur perubahan-perubahan yang dilakukan oleh perintah-perintah dalam pernyataan DML. Perintah-perintah SQLnya meliputi: commit, rollback, savepoint.
5. DCL/Data Control Language
Perintah-perintah yang memberikan atau menghilangkan hak untuk
mengakses database maupun struktur dari database tersebut. Perintah-perintah SQL nya meliputi: grant, revoke.
Aturan penulisan SQL:
1. Tidak bersifat case sensitive (tidak pengaruh bila ditulis dengan huruf besar ataupun kecil)
2. Dapat terdiri dari beberapa baris
3. Kata kunci tidak dapat disingkat.
Kegunaan SQL:
1. Menampilkan data hasil perhitungan
2. Memodifikasi item data perseorangan
3. Memanipulasi keluaran dari kumpulan baris
4. Format tanggal dan nomor untuk tampilan.
5. Mengkonversi tipe data kolom
a. Varchar2: tipe data karakter
b. Char: tipe data karakter
c. Number: tipe data numerik
d. Date: tipe data tanggal
Ada 2 tipe data yang berbeda untuk karakter. Perbedaan pada tipe data tersebut adalah tipe data varchar2 sifatnya lebih dinamis. Bila jumlah
maksimum yang didefinisikan pada varchar2 tidak dipenuhi maka memori yang digunakan sesuai dengan kebutuhan.
Tipe obyek yang terdapat pada Oracle
Tipe obyek yang terdapat pada Oracle dapat dilihat pada tabel 2.1
Tabel 2.1 Tabel Tipe Obyek
Tipe Obyek Keterangan
Tabel Tempat untuk menyimpan data, terdiri
dari kumpulan baris dan kolom yang membentuk record-record.
View Mempresentasikan secara logis subset dari
satu atau lebih table
Sequence Membantu membangkitkan (generate) nilai dari primary key
Indeks Mempercepat pengeksekusian query
Sinonim Nama alias untuk suatu obyek
Aturan penamaan obyek:
b. Maksimal 30 karakter
c. Berisi alfabet (A-Z/a-z), 0-9, _, $, #)
d. Unik (setiap nama obyek untuk 1 pemakai dan ruang nama tidak boleh sama)
e. Tidak berupa kata kunci dari Oracle
Tabulasi Oracle mengenai berbagai konstruksi program (tipe blok) dapat dilihat
Tabel 2.2 Tabel Konstruksi Program
Konstruksi program Keterangan Terdapat pada
Anonymous block Blok yang tidak memiliki nama
PL/SQL
Stored procedure Mencakup prosedur dan fungsi
Oracle Server
Prosedur atau fungsi aplikasi
Blok bernama yang ditulis di aplikasi pada Oracle Developer dan yang bisa menerima operand
Oracle Developer (misal : forms)
Package Bisa disebut module
berfungi untuk membungkus tipe, operasi maupun obyek sebagai satu kesatuan.
Oracle Server Oracle Developer
Trigger (database trigger)
Blok bernama yang pemanggilannya secara implisit (tidak langsung)
Oracle Server
Trigger aplikasi Hampir sama dengan trigger pada database yaitu pemanggilannya implisit, perbedaannya pada even untuk trigger aplikasi didefinisikan oleh development tool (misal : Oracle
Developer)
Trigger
Trigger adalah suatu aksi dalam database yang mempengaruhi database
lain yang berelasi akibat adanya suatu perubahan pada database tersebut.
Triger dipicu oleh even/kejadian insert, update, dan delete pada database.
Kode dalam trigger disebut trigger body, dibuat dalam blok PL/SQL. Trigger digunakan untuk menjaga integritas data, membuat aturan bisnis yang
kompleks dan mengaudit perubahan data. Trigger dapat dijalankan sebelum atau sesudah dilakukan perubahan pada database.
Bagian-bagian dari trigger dapat dilihat pada tabel 2.3
Tabel 2.3 Tabel Bagian dari Trigger
Bagian Keterangan Kemungkinan Nilai
Trigger timing Waktu trigger dijalankan: sesudah, sebelum, atau bersamaan dengan terjadinya perubahan pada database.
Before, after, instead off
Triggering event Perintah yang
menyebabkan perubahan pada database sebagai pemicu terjadinya trigger
Insert, update, dan delete
Trigger type Jumlah pengeksekusian trigger
Setiap pernyataan, setiap baris
2.5. Oracle PL/SQL (Procedural Language/Structured Query Language)
PL merupakan bagian pemrograman prosedural yang untuk melengkapi
SQL yang dianggap non prosedural. Blok PL/SQL
Ada 3 blok dalam PL/SQL:
DECLARE
Bersifat opsional, berisi deklarasi variabel, kursor, dan user-define
exceptions, konstanta.
BEGIN
Bersifat mandatory, berisi perintah-perintah SQL.
EXCEPTION
Bersifat opsional, berisi tindakan/aksi yang akan dilakukan bila terjadi
error/kesalahan.
END
Bersifat mandatory, untuk mengakhiri blok PL/SQL.
Procedure/Prosedur
Prosedur adalah blok PL/SQL yang digunakan untuk memperbaiki kinerja dan dapat disimpan dalam database. Prosedur berfungsi untuk memindahkan kode dari aplikasi ke database. Sehingga kode tersebut akan dapat digunakan
oleh berbagai aplikasi yang menggunakan database yang sama. Langkah-langkah pembuatan prosedur:
2. kompilasi kode
3. eksekusi prosedur
Struktur dari prosedur dapat dilihat pada tabel 2.4 Tabel 2.4 Tabel Struktur Prosedur
Parameter Keterangan Procedure_name Nama dari prosedur
Paramater Nama dari variabel PL/SQL yang
dihasilkan dari lingkungan pemanggil prosedur, dipengaruhi mode yang digunakan
Mode Tipe: IN
OUT IN OUT
Tipe data Tipe data yang umum digunakan di PL/SQL: %TYPE,%ROWTYPE,skalar, ataupun komposit
Blok PL/SQL Body dari prosedur yang akan
mendefinisikan aksi dari prosedur.
Function/Fungsi
Fungsi adalah blok PL/SQL yang mengembalikan sebuah nilai. Keuntungan penggunaan fungsi:
1. merupakan perluasan SQL, untuk menjalankan perintah SQL yang terlalu
kompleks atau yang tidak tersedia dengan SQL biasa.
2. meningkatkan efisiensi dalam penyaringan data sesuai kondisi tertentu.
Tabel 2.5 Tabel Perbedaan Prosedur dan Fungsi
Prosedur Fungsi
Dieksekusi sebagai statemen PL/SQL Diinvoke sebagai bagian ekspresi
Header tidak mengandung klausa
RETURN
Header mengandung klausa RETURN
Mengembalikan 0 atau lebih nilai Mengembalikan nilai tunggal
Dapat mengandung statemen RETURN Mengandung minimal 1 statemen
RETURN
2.6. Oracle Developer
2.6.1 Forms Developer
Oracle Forms Developer merupakan piranti pengembang yang dibuat
Oracle untuk memudahkan pembuatan aplikasi yang menggunakan database Oracle. Kemudahan dalam hal konektivitas/sambungan aplikasi terhadap database yang digunakan. Karena Oracle Developer merupakan piranti
desain berbasis visual yang diciptakan berpasangan dengan database Oracle. Aplikasi pada Forms Developer dapat memiliki 1 atau lebih form.
Untuk aplikasi yang kompleks, terdiri atas beberapa form dapat digunakan menu program untuk mengintegrasikan form-form tersebut. Ada 2
jenis menu program, yaitu:
b. Menu sekunder : menu yang terdapat dalam menu, biasa disebut sub
menu.
Pada Forms Developer dikenal adanya Object Navigator yaitu tempat
pengelompokkan obyek-obyek yang terdapat pada Forms Developer. Obyek-obyek yang terdapat pada Oracle Forms antara lain:
1. Triggers
Blok PL/SQL yang ditulis dengan fungsi tertentu yang berhubungan dengan even/kejadian spesifik/khusus pada database. Even khusus seperti insert, update, atau delete pada database.
2. Alerts
Window yang akan menampilkan pesan kesalahan bila suatu kondisi
terpenuhi. Alert menampilkan pesan kesalahan atas aksi yang dilakukan oleh user. Ada 3 jenis tipe alert:
a. Stop: alert yang mencegah user untuk melanjutkan aksi yang
dilakukan user, sistem menolak aksi yang dilakukan user. b. Caution: alert yang hanya menampilkan peringatan pada user
atas aksi yang dilakukannya.
c. Note: alert yang hanya menampilkan catatan atas aksi user. 3. Data Blok
Merupakan kontainer yang menampung sekelompok obyek seperti: text item, list, dan buttons.
blok mengelompokkan obyek-obyek dalam suatu fungsi untuk
menampilkan, memanipulasi, atau menyimpan record dalam database. 4. Canvas
Tempat untuk meletakkan semua obyek pada form yang akan
ditampilkan dalam aplikasi. Merupakan permukaan dari sebuah
windows
5. List Of Values (LOVs) dan Record Group
Record Group merupakan daftar kumpulan field dari 1 atau beberapa
tabel. LOVs merupakan daftar atau tampilan dari sebuah record group.
6. Parameters
Parameter menampung nilai yang akan dilewatkan ke form lain.
7. Program Units
Berisi sub program yang terdapat pada suatu form. Program unit dapat berupa fungsi, prosedur ataupun package.
8. Reports
Menampilkan report yang dibuat dengan Reports Developer.
9. Windows
Windows adalah obyek yang menampung seluruh obyek lain yang
terdapat dalam sebuah modul form.
2.6.2 Reports Developer
Merupakan piranti untuk membuat laporan-laporan berdasar data yang tersimpan dalam database melalui form yang telah dibuat.
Jenis laporan yang dapat dibuat menggunakan Reports Developer antara
lain: tabular, master-detail (group), form, form letter, mailing label.
Reports developer memiliki Object Navigator untuk mengatur
obyek-obyek dalam laporan. Obyek-obyek-obyek yang terdapat pada laporan antara lain: a. Data Model
Merupakan tempat untuk mendefinisikan data-data yang digunakan dalam
laporan. Data-data yang didefinisikan antara lain: 1. Queries
Perintah select dari SQL. 2. Groups
Kumpulan field yang di-queri.
3. Column
Terdiri dari formula column, summary column, placeholder column.
4. Parameter
Terdiri dari sistem parameter dan user parameter. Merupakan form yang digunakan sebagai parameter masukan laporan. Sistem
parameter telah didefinisikan Reports Developer dan digunakan untuk mengubah pilihan pada saat runtime. User parameter didefinisikan
5. DataLinks
Untuk menghubungkan 2 queri, umumnya merupakan master-detail. b. Paper Layout
Merupakan tempat untuk mendesain tampilan laporan. Paper layout
terdiri atas 4 bagian:
1. Header Section : halaman awal/pembuka laporan
2. Main Section : bagian utama laporan 3. Trailer Section : bagian akhir dari laporan
Obyek-obyek yang terdapat pada paper layout, antara lain:
1. text : untuk membuat label
2. frame : obyek yang mengelilingi field.
3. repeating frame : merupakan obyek yang mengelilingi field, yang mewakili grup pada data model.
4. field : obyek untuk menampung data dari obyek kolom
pada data model. c. Report Trigger
Trigger yang dikenakan pada laporan.
d. Program Unit
Kumpulan sub program yang ada pada laporan, meliputi: prosedur,
3.1.1 Gambaran Umum Sistem
Pabrik melayani penjualan barang kepada konsumen bisa secara langsung maupun melalui toko (toko Sanitas-Cirebon). Untuk penjualan
barang secara langsung, konsumen dapat memesan barang melalui telepon atau datang ke lokasi pabrik. Perolehan barang yang sudah dibeli konsumen bisa melalui pengiriman oleh staff pabrik atau pengambilan oleh konsumen
yang bersangkutan. Pengiriman barang oleh staff pabrik untuk pembelian barang dalam jumlah banyak tidak selalu dapat dilakukan karena adanya
keterbatasan kendaraan. Penjualan melalui toko tentu saja dengan harga yang lebih mahal daripada penjualan secara langsung ke konsumen. Harga yang dikenakan terhadap konsumen berbeda-beda tergantung dari frekuensi dan
kuantitas pembelian barang konsumen itu sendiri. Konsumen yang sering membeli barang dan dalam jumlah banyak maka akan dikenakan harga yang
lebih murah untuk barang yang sama, dibandingkan dengan konsumen yang lain. Demikian juga dalam hal pembayaran, konsumen yang sering membeli barang dan dalam jumlah banyak dapat membayar barang yang dibelinya
kemudian, beberapa minggu setelah pembelian.
Pabrik menjual botol-botol plastik berbagai jenis dan ukuran seperti:
jerigen 1 liter, sedotan, dan lain-lain. Konsumen pabrik meliputi: apotik,
rumah makan, perusahaan individu, dan lain-lain. Penyediaan barang setiap jenisnya berbeda satu sama lain tergantung dari banyaknya penjualan atas
barang tersebut. Bila banyak barang yang terjual untuk jenis tertentu maka barang jenis tersebut akan tersedia dalam jumlah banyak. Tidak ada batasan yang pasti mengenai jumlah maksimum dan minimum persediaan suatu jenis
barang.
3.1.1.1 Gambaran Umum Sistem Lama
Persediaan tiap jenis barang dicatat secara manual ke dalam buku persediaan barang. Pencatatan tersebut dilakukan pada setiap akhir jam
kerja.
Transaksi penjualan dicatat secara manual pada faktur yang diberikan oleh staff keuangan. Faktur yang diberikan staff keuangan
mempunyai no urut tertentu yang nantinya akan diperiksa penggunaannya oleh staff keuangan. Masing-masing faktur terdiri dari 3 lembar halaman
yang mempunyai warna berbeda-beda. Lembar pertama berwarna putih diberikan pada konsumen yang membeli barang secara tunai. Faktur lembar kedua berwarna merah muda digunakan untuk konsumen yang membeli
barang namun pembayarannya tidak pada saat pembelian. Faktur lembar kedua digunakan sebagai bukti penerimaan barang. Bila konsumen tidak
tersebut menerima faktur lembar kedua sedangkan lembar pertama akan
disimpan oleh Staff Penjualan dan Inventori (Staff PI) selama konsumen tersebut belum melakukan pembayaran. Faktur ketiga berwarna kuning
digunakan untuk arsip pabrik. Faktur lembar ketiga akan diperiksa oleh staff keuangan.
Untuk konsumen yang sering dan membeli barang dalam jumlah
banyak, barang dapat diretur apabila ada cacat produksi (misal: bocor), maka barang tersebut akan ditukar dengan barang yang sama sesuai dengan
jumlah barang yang diretur. Namun barang yang akan diretur tersebut harus dalam keadaan bersih, sebelumnya tidak diisikan bahan-bahan yang dapat menghambat proses pengolahan kembali barang tersebut. Barang
berkualitas baik yang sudah dibeli tidak bisa ditukar tambah atau dikembalikan dengan uang atau barang lain. Bila ada retur maka jumlah barang dalam stok akan dikurangi secara manual.
Akhir bulan, Staff PI akan menghitung secara manual penjualan selama satu bulan. Kemudian hasil perhitungan penjualan beserta
persediaan barang pada akhir bulan tersebut akan dilaporkan pada owner.
3.1.1.2 Gambaran Umum Sistem Baru
Persediaan setiap jenis barang akan dicatat dengan menggunakan
Transaksi penjualan dicatat oleh Staff PI melalui komputer,
memanfaatkan sistem informasi penjualan dan inventori yang akan dibuat. Faktur penjualan akan dicetak melalui printer, dibuat dengan rangkap dua.
Lembar pertama berwarna putih digunakan untuk konsumen yang membeli secara tunai dan lembar kedua berwarna merah muda digunakan untuk konsumen yang membeli barang namun pembayarannya dilakukan
kemudian. Konsumen yang membeli barang namun pembayarannya dilakukan kemudian, harus menandatangani faktur rangkap dua tersebut.
Faktur lembar kedua akan diberikan ke konsumen sebagai bukti penerimaan barang sedangkan lembar pertama akan disimpan oleh Staff PI selama konsumen tersebut belum melakukan pembayaran.
Apabila ada retur penjualan maka retur akan dicatat oleh Staff PI menggunakan komputer dan akan secara otomatis mengurangi stok barang yang bersangkutan (karena barang yang di-retur adalah barang yang
berkualitas kurang baik maka tidak dapat dijual kepada konsumen yang lain). Retur penjualan tidak mengurangi jumlah barang pada transaksi
penjualan, hanya akan mengurangi stok karena adanya penggantian barang kepada konsumen.
Akhir bulan, sistem akan membantu Staff PI dalam menghitung penjualan selama satu bulan tersebut.
Sistem akan membantu manager pabrik dalam pembuatan laporan.
Sistem Informasi penjualan dan inventori berbasis web ini
memungkinkan owner untuk memantau dan menerima laporan hasil penjualan dan retur secara langsung.
3.1.2 Use Case
3.2.1.2 Logical Database Design
Relational model dari ER Diagram setelah di-normalisasi dapat dilihat pada
Tahap physical design meliputi perancangan tabel pada database. Tabel yang diperlukan dalam sistem yang dibuat meliputi:
1. Tabel StaffPI
Tabel StaffPI berisi data-data Staff PI PT. Sanitas-Cirebon. Tahap physical design dari Tabel Staff PI dapat dilihat pada tabel 3.1.
Tabel 3.1 Tabel StaffPI Tahap Physical Design
Nama Field Tipe Data Ukuran Field Keterangan
KodeStaffPI Varchar2 5 Primary Key
NamaStaffPI Varchar2 50 -
AlamatStaffPI Varchar2 75 -
KotaStaffPI Varchar2 30 -
NoTelpStaffPI Varchar2 15 -
Pasword Varchar2 10 -
2. Tabel Konsumen
Nama Field Tipe Data Ukuran. Field Keterangan
KodeKonsumen Varchar2 10 Primary Key
NamaKonsumen Varchar2 50 -
AlamatKonsumen Varchar2 75 -
KotaKonsumen Varchar2 30 -
NoTelpKonsumen Varchar2 15 -
3. Tabel Barang
Tabel barang berisi data-data mengenai barang hasil produksi PT. Sanitas-Cirebon. Tahap physical design dari tabel barang dapat dilihat
pada tabel 3.3.
Tabel 3.3 Tabel Barang Tahap Physical Design
Nama Field Tipe Data Ukuran. Field Keterangan
KodeBarang Varchar2 10 Primary key
NamaBarang Varchar2 30 -
Satuan Varchar2 5 -
JumlahBarang Number 5 -
HargaProduksi Number 5 -
HargaJual Number 5 -
StokMinimum Number 5 -
StokMaksimum Number 5 -
4. Tabel Masuk
Tabel Masuk berisi data-data mengenai transaksi pemasukan barang,
3.4.
Tabel 3.4 Tabel Masuk Tahap Physical Design
Nama Field Tipe Data Ukuran Field Keterangan
TanggalPemasukan Date - DD-MM-YYYY
KodePemasukan Number 10 Primary Key, Format : 0000000001
KodeStaffPI Varchar2 5 Foreign Key
5. Tabel DetailMasuk
Tabel DetailMasuk merupakan detail dari tabel master-detail transaksi
pemasukan barang. Tahap physical design tabel DetailMasuk dapat dilihat pada tabel 3.5.
Tabel 3.5 Tabel DetailMasuk Tahap Physical Design
Nama Field Tipe Data Ukuran Field Keterangan
KodePemasukan Number 10 Foreign Key
KodeBarang Varchar2 10 Foreign Key
JumlahBarang Number 5 -
6. Tabel Jual
Tabel Jual berisi data-data mengenai transaksi penjualan barang. Tabel
Jual merupakan tabel master dari tabel master-detail transaksi penjualan barang. Tahap physical design dari tabel Jual dapat dilihat pada tabel
Nama Field Tipe Data Ukuran Field Keterangan
TanggalPenjualan Date - DD-MM-YYYY
KodePenjualan Number 10 Primary Key, format : 0000000001
KodeStaffPI Varchar2 5 Foreign Key
KodeKonsumen Varchar2 10 Foreign Key
TotalHarga Number 5 -
Discount Number 3 -
7. Tabel DetailJual
Tabel DetailJual merupakan detail dari tabel master-detail transaksi
penjualan barang. Tahap physical design dari tabel detailjual dapat dilihat pada tabel 3.7.
Tabel 3.7 Tabel DetailJual Tahap Physical Design
Nama Field Tipe Data Ukuran Field Keterangan
KodePenjualan Number 10 Foreign Key
KodeBarang Varchar2 10 Foreign Key
JumlahBarang Number 5 -
HargaSatuan Number 5 -
8. Tabel ReturJual
Tabel ReturJual berisi data-data transaksi retur penjualan. Transaksi
tabel ReturJual dapat dilihat pada tabel 3.8.
Tabel 3.8 Tabel ReturJual Tahap Physical Design
Nama Field Tipe Data Ukuran Field Keterangan
TanggalRetur Date - DD-MM-YYYY
KodeRetur Number 10 NOT NULL,Format : 0000000001
KodePenjualan Number 10 Foreign Key, format : 0000000001
KodeStaffPI Varchar2 5 Foreign Key
KodeKonsumen Varchar2 10 Foreign Key
KodeBarang Varchar2 10 Foreign Key
JumlahBarang Number 5 -
3.2.2 Design UserInterface
3.2.2.1 Design Output
a. Faktur Penjualan
Desain faktur penjualan dapat dilihat pada gambar 3.9. Faktur penjualan merupakan bukti dari transaksi penjualan. Lembar faktur ada yang diberikan pada konsumen dan ada faktur yang disimpan oleh Staff PI
Gambar 3.9 Faktur Penjualan
b. Laporan Penjualan
Desain laporan penjualan dapat dilihat pada gambar 3.10. Laporan penjualan ditujukan pada owner dan manager pabrik. Laporan ini
digunakan untuk perhitungan pendapatan dari pabrik setiap periode tertentu.
Desain laporan persediaan barang dapat dilihat pada gambar 3.11. Laporan ini ditujukan pada manager pabrik. Laporan ini dapat
digunakan untuk membantu manager tersebut dalam memutuskan barang mana yang akan diproduksi (berdasar jenis barang yang sudah habis/stoknya menipis).
Gambar 3.11 Laporan Persediaan Barang d. Laporan Barang Terjual
Desain laporan barang terjual dapat dilihat pada gambar 3.12. Laporan
barang yang terjual ditujukan untuk manager pabrik. Laporan ini dapat digunakan untuk membantu manager tersebut dalam menentukan barang mana yang akan diproduksi berdasar barang yang
paling banyak terjual.
Gambar 3.12 Laporan Barang Terjual
Kode
KodePenjualan NamaBarang JumlahBarang HargaSatuan
Dari Tanggal s/d
Desain laporan konsumen yang membeli barang dapat dilihat pada gambar 3.13. Laporan ini ditujukan untuk manager pabrik. Laporan
ini berguna untuk dapat menentukan siapa saja konsumen yang aktif dalam membeli barang di pabrik tersebut.
Gambar 3.13 Laporan Konsumen yang Membeli Barang
3.2.2.2 Design Input
a. Form Login
Desain form login dapat dilihat pada gambar 3.14. Form ini digunakan oleh Staff PI, manager pabrik, ataupun owner untuk dapat
masuk dan menggunakan sistem.
Gambar 3.14 Form Login UserName
Password
Nama Database
Connect Cancel Exit
Tanggal Penjualan
Kode Penjualan
Kode Konsumen
Nama Konsumen
Dari Tanggal s/d
Desain form input data Staff PI dapat dilihat pada gambar 3.15. Form ini digunakan untuk memasukkan, mengubah, dan menghapus data Staff PI.
Gambar 3.15 Form Input data Staff PI b. Form Input Data Konsumen
Desain form input data konsumen dapat dilihat pada gambar 3.16. Form ini digunakan untuk memasukkan, mengubah, atau menghapus
data konsumen pabrik. Data Staff Penjualan dan Inventori
Kode
Save Delete Exit
First Last Previous Next New
Gambar 3.16 Form Input Data Konsumen c. Form Input Data Barang
Desain form input data barang dapat dilihat pada gambar 3.17. Form
ini digunakan untuk memasukkan, mengubah, atau menghapus data barang hasil produksi dari PT. Sanitas-Cirebon.
Data Konsumen
Kode Konsumen
Nama Konsumen
Alamat Konsumen
Kota Konsumen
NoTelp Konsumen Kode Konsumen
Nama Konsumen
Alamat Konsumen
No. Telp Konsumen
Save Delete Exit
First Last Previous Next New
Gambar 3.17 Form Input Data Barang
d. Form Input Transaksi Penjualan
Desain form input data transaksi penjualan dapat dilihat pada gambar
3.18. Form ini digunakan untuk memasukkan, mengubah, atau menghapus data transaksi penjualan.
Data Barang
Save Delete Exit
First Last Previous Next
Harga Produksi
Harga Jual
New Stok Minimum
Gambar 3.18 Form Input Data Transaksi Penjualan
e. Form Input Data Transaksi Pemasukan Barang
Desain form input data transaksi pemasukan barang dapat dilihat pada gambar 3.19. Form ini digunakan untuk memasukkan, mengubah, atau menghapus data transaksi pemasukan barang. Data transaksi
pemasukan barang meliputi barang-barang yang diproduksi oleh pabrik.
Transaksi Penjualan
Detail Transaksi Penjualan
Kode Barang Jumlah Barang Harga Satuan
Tanggal Penjualan
Kode Penjualan
Kode Staff PI
Kode Konsumen
Save Delete Exit
First Last Previous Next New
Gambar 3.19 Form Input Data Transaksi Pemasukan Barang
f. Form Input untuk Pembuatan Laporan
Desainform input untuk pembuatan laporan dapat dilihat pada gambar 3.20. Form ini digunakan untuk menampilkan laporan-laporan
berdasar periode/rentang waktu tertentu.
Gambar 3.20 Form Input untuk Pembuatan Laporan Tanggal Awal
Tanggal Akhir Data transaksi Pemasukan Barang
Detail data transaksi Pemasukan Barang
KodeBarang JumlahBarang Tanggal Pemasukan
Kode Pemasukan
Kode Staff PI
Save Delete Exit
4.1 Karakteristik Sistem
Agar aplikasi dapat dijalankan maka server maupun client harus memenuhi karakteristik sebagai berikut:
1. Server
Kebutuhan perangkat keras yang digunakan:
a. Prosesor : minimal Intel Pentium IV 2,0 GHz
b. RAM : minimal 512 MB
c. Harddisk : 80 Gigabyte
Kebutuhan perangkat lunak yang digunakan:
a. Sistem Operasi : Microsoft Windows (minimal windows 2000) untuk dapat menginstall Oracle baik Oracle
XE ataupun Oracle Developernya.
b. Database : Oracle Express Edition (Oracle XE),
merupakan produk database Oracle yang bersifat freeware (gratis).
c. Service : OC4J Instance (service dari Oracle
Developer).
d. Piranti Pengembang : Oracle Developer versi 9.0.2.0.1.
Kebutuhan perangkat keras yang digunakan: a. Prosesor : 1 GHz
b. RAM : minimal 256 MB
c. Harddisk : 40 Gigabyte
Kebutuhan perangkat lunak yang digunakan:
a. Sistem Operasi : Microsoft Windows (minimal windows 2000) untuk koneksi dengan database server.
b. Web Browser : Internet Explorer 6.0 atau mozilla firefox 5.0 untuk
mengakses sistem.
4.2 Tahap Implementasi
4.2.1 Implementasi Database
4.2.1.1 Pembuatan Tabel
Ada 8 buah tabel yang dibuat dalam database, yaitu:
1. Tabel StaffPI 2. Tabel Konsumen 3. Tabel Barang
4. Tabel Masuk 5. Tabel DetailMasuk
8. Tabel ReturJual
Perintah untuk membuat tabel pada database dapat dilihat pada lampiran A
4.2.1.2 Pembuatan Trigger
Trigger database yang dibuat, yaitu:
1. Trigger Barang_DMasuk_AIUDR
Trigger ini digunakan untuk mengurangi atau menambah stok barang
bila terjadi penambahan (insert), pengubahan (update), ataupun
penghapusan (delete) transaksi pemasukan barang. Namun untuk pengubahan atau penghapusan transaksi pemasukan barang tidak dapat
2. Trigger Barang_DJual_AIUDR
Trigger ini digunakan untuk mengurangi atau menambah stok barang
bila terjadi penambahan (insert), pengubahan (update), ataupun penghapusan (delete) transaksi penjualan barang. Namun untuk
pengubahan atau penambahan transaksi pemasukan barang tidak dapat dilakukan bila jumlah barang yang dibeli konsumen lebih dari stok barang yang dimiliki.
create or replace TRIGGER Barang_DMasuk_AIUDR
AFTER INSERT OR UPDATE OR DELETE ON DetailMasuk FOR EACH ROW
BEGIN
IF INSERTING THEN UPDATE Barang
SET JumlahBarang = JumlahBarang + :NEW.JumlahBarang WHERE Barang.KodeBarang = :NEW.KodeBarang; ELSIF UPDATING('JumlahBarang') THEN
UPDATE Barang
SET JumlahBarang = JumlahBarang + (:NEW.JumlahBarang - :OLD.JumlahBarang) WHERE Barang.KodeBarang = :OLD.KodeBarang;
ELSIF UPDATING ('KodeBarang') THEN UPDATE Barang
SET JumlahBarang = JumlahBarang - :OLD.JumlahBarang WHERE Barang.KodeBarang = :OLD.KodeBarang; UPDATE Barang
SET JumlahBarang = JumlahBarang + :OLD.JumlahBarang WHERE Barang.KodeBarang = :NEW.KodeBarang; ELSIF DELETING THEN
UPDATE Barang
SET JumlahBarang = JumlahBarang - :OLD.JumlahBarang WHERE Barang.KodeBarang = :OLD.KodeBarang; END IF;
3. Trigger Barang_RJual_AIUDR
Trigger ini digunakan untuk mengurangi atau menambah stok barang
bila terjadi penambahan (insert), pengubahan (update), ataupun penghapusan (delete) transaksi retur penjualan barang. Namun untuk pengubahan atau penambahan transaksi retur penjualan barang tidak
dapat dilakukan bila jumlah barang yang diretur melebihi stok barang yang dimiliki. Retur barang hanya dapat dilakukan bila sebelumnya
terjadi transaksi penjualan barang dan berlaku terhadap jenis barang yang sama.
create or replace TRIGGER Barang_DJual_AIUDR
AFTER INSERT OR UPDATE OR DELETE ON DetailJual FOR EACH ROW
BEGIN
IF INSERTING THEN UPDATE Barang
SET JumlahBarang = JumlahBarang - :NEW.JumlahBarang WHERE Barang.KodeBarang = :NEW.KodeBarang; ELSIF UPDATING('JumlahBarang') THEN
UPDATE Barang
SET JumlahBarang = JumlahBarang - (:NEW.JumlahBarang - :OLD.JumlahBarang)
WHERE Barang.KodeBarang = :OLD.KodeBarang; ELSIF UPDATING ('KodeBarang') THEN
UPDATE Barang
SET JumlahBarang = JumlahBarang + :OLD.JumlahBarang WHERE Barang.KodeBarang = :OLD.KodeBarang; UPDATE Barang
SET JumlahBarang = JumlahBarang - :OLD.JumlahBarang
WHERE Barang.KodeBarang = :NEW.KodeBarang;
ELSIF DELETING THEN UPDATE Barang
SET JumlahBarang = JumlahBarang + :OLD.JumlahBarang WHERE Barang.KodeBarang = :OLD.KodeBarang; END IF;
4. Trigger DJual_HSatuan_AIUS
Trigger ini digunakan untuk menampilkan HargaJual barang bila terjadi
penambahan (insert), pengubahan (update), ataupun penghapusan (delete) detail transaksi penjualan barang.
Perintah untuk pembuatan trigger DJual_HSatuan_AIUS:
create or replace TRIGGER Barang_RJual_AIUDR
AFTER INSERT OR UPDATE OR DELETE ON DetailJual FOR EACH ROW
BEGIN
IF INSERTING THEN UPDATE Barang
SET JumlahBarang = JumlahBarang - :NEW.JumlahBarang WHERE Barang.KodeBarang = :NEW.KodeBarang; ELSIF UPDATING('JumlahBarang') THEN
UPDATE Barang
SET JumlahBarang = JumlahBarang - (:NEW.JumlahBarang - :OLD.JumlahBarang)
WHERE Barang.KodeBarang = :OLD.KodeBarang; ELSIF UPDATING ('KodeBarang') THEN
UPDATE Barang
SET JumlahBarang = JumlahBarang + :OLD.JumlahBarang WHERE Barang.KodeBarang = :OLD.KodeBarang; UPDATE Barang
SET JumlahBarang = JumlahBarang - :OLD.JumlahBarang
WHERE Barang.KodeBarang = :NEW.KodeBarang;
ELSIF DELETING THEN UPDATE Barang
SET JumlahBarang = JumlahBarang + :OLD.JumlahBarang WHERE Barang.KodeBarang = :OLD.KodeBarang; END IF;
END;
create or replace TRIGGER DJual_HSatuan_AIUS
AFTER INSERT OR UPDATE OF KodeBarang ON DetailJual BEGIN
UPDATE DetailJual
Sequence dibuat untuk memudahkan user dalam meng-inputkan
kodepenjualan atau kodepemasukan barang. Kode Penjualan dan Kode Pemasukan otomatis bertambah 1 bila user meng-klik pada image New.
1. KodeJual_Seq
Digunakan untuk men-generate KodePenjualan secara otomatis.
Perintah untuk membuat sequence KodeJual_Seq:
2. KodeMasuk_Seq
Digunakan untuk men-generate KodePemasukan secara otomatis.
Perintah untuk membuat sequence KodeMasuk_Seq:
CREATE SEQUENCE KODEJUAL_SEQ MINVALUE 1
MAXVALUE 9999999999 INCREMENT BY 1 START WITH 1 NOCACHE ORDER NOCYCLE
CREATE SEQUENCE KODEMASUK_SEQ MINVALUE 1
4.2.2.1Pembuatan Form
Langkah-langkah pembuatan form sebagai berikut:
Form Barang (FRM_BARANG)
1. Jalankan aplikasi Oracle Forms Builder, akan tampil Object Navigator yang berisi menu, form, library PL/SQL. Untuk koneksi
dengan database, klik connect pada toolbar. Isikan username, password, dan nama database.
2. Klik kanan module1 dibawah node form, pilih property palett untuk mengubah properti dari form. Pada nama, ubah module1 menjadi FRM_BARANG.
3. Klik kanan pada window, pilih property palett untuk mengubah properti window. Pada Nama ubah module1 menjadi W_Barang.
4. Klik 2 kali pada canvas atau klik canvas kemudian klik tanda tambah yang berwarna hijau. Ubah nama pada canvas menjadi C_Barang dengan menampilkan property palett.
5. Buat 3 buah datablok, datablok pertama menampung masukan dari user (nama datablok: Barang), datablok kedua menampilkan data
Klik dua kali datablok, pilih use datablock wizard. Klik next, pilih table/view klik next. Klik browse pilih Barang. Masukkan field yang
tersedia sebagai item database. Klik next, masukkan nama dari
datablok, yaitu Barang. Untuk menempatkan datablok pada canvas, bisa menggunakan layout wizard atau secara manual. Untuk layout
wizard pilih create datablock then call the layout wizard. Klik finish.
Klik next, pilih canvas yang akan digunakan, yaitu C_Barang. Klik next pilih item yang akan ditampilkan, pilih semua item. Klik next,
atur prompt atau label dari masing-masing item/field. Klik next pilih bentuk yang akan ditampilkan, pilih bentuk form. klik next, klik
finish.
Cara membuat datablok DB_Barang:
Klik dua kali datablok, pilih use datablock wizard. Klik next, pilih
table/view klik next. Klik browse pilih tabel Barang. Masukkan field yang tersedia sebagai item database. Klik next, masukkan nama dari
datablok, yaitu DB_Barang. Pilih create datablock then call the layout wizard. Klik finish. Klik next, pilih canvas yang akan digunakan,
yaitu C_Barang. Klik next pilih item yang akan ditampilkan, pilih
semua item. Klik next, atur prompt atau label dari masing-masing item/field. Klik next pilih bentuk yang akan ditampilkan, pilih bentuk
tabular. Klik next dan masukkan jumlah record yang akan
Cara membuat DB_TOOL:
Buat datablok baru secara manual. Ubah nama datablok dengan property palett. Klik kanan pada datablok yang dibuat pilih layout
editor.
Untuk Membuat image item pada datablok DB_TOOL:
Klik image item dan tempatkan pada canvas, dikelompokkan dalam datablok DB_TOOL. Klik kanan pada image item, ubah nama dari property palett. Klik kanan pilih smart triggers pilih
when-mouse-click masukkan perintah yang akan dijalankan bila gambar tersebut
di-klik. Perintah yang ada pada trigger image item dapat dilihat pada
lampiran b.
Untuk Membuat button pada datablok DB_TOOL:
Klik button dan tempatkan pada canvas. Ubah nama dan label dari
button. Klik kanan pilih trigger When-Button-Pressed dan isikan
perintah-perintah jika button tersebut ditekan. Perintah-perintah yang
ada pada trigger button dapat dilihat pada lampiran b.
6. Di bawah FRM_BARANG terdapat trigger yang akan dijalankan sesuai dengan kejadian terhadap form. Contoh: trigger
When-New-Form-Instance merupakan trigger yang akan dijalankan setiap form
tersebut dijalankan. Trigger ini akan mempengaruhi proses
dapat dilihat pada penjelasan form barang.
7. Simpan form yang dibuat ke folder yang lain. Karena bila tidak disimpan, akan ada pesan kesalahan karena pada address/alamat file
yang ditampilkan yaitu mengacu pada folder penyimpanan file sementara.
8. Untuk menjalankan form, sebelumnya jalankan dulu OC4J Instance yaitu dengan cara start OC4J Instance pada menu Forms Developer dan bila sudah selesai pilih shut down OC4J Instance. Kemudian
pastikan application URL dan Web Browser Locationnya benar yaitu dengan cara klik edit, pilih preference, pilih runtime. Pada
application URL klik Default dan pada browser location pilih lokasi
dari web browser berupa aplikasi dari browser yang digunakan. 9. Jalankan form dengan meng-klik run form.
Form Login (FRM_LOGON)
1. Buat form baru, klik dua kali form. Klik kanan module1 dibawah
node form, pilih property palett untuk mengubah property dari form.
Pada nama, ubah module1 menjadi FRM_LOGON.
2. Klik 2 kali pada canvas atau klik canvas kemudian klik tanda tambah
yang berwarna hijau. Ubah nama pada canvas menjadi C_Login dengan menampilkan property palett.