130
PENGGUNAAN ORACLE DEVELOPER UNTUK IMPLEMENTASI SISTEM INFORMASI PENJUALAN DAN INVENTORI BERBASIS WEB (Studi Kasus di PT. Sanitas - Cirebon) 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 2007

B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

PENGGUNAAN ORACLE DEVELOPER UNTUK IMPLEMENTASI

SISTEM INFORMASI PENJUALAN DAN INVENTORI BERBASIS WEB

(Studi Kasus di PT. Sanitas - Cirebon)

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

2007

Page 2: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

THE USE OF ORACLE DEVELOPER FOR IMPLEMENTATION

OF WEB-BASED SALES AND INVENTORY INFORMATION SYSTEM

(Case Study at PT. Sanitas - Cirebon)

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

2007

Page 3: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa
Page 4: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa
Page 5: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa
Page 6: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

v

HALAMAN PERSEMBAHAN

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

lainnya…

Page 7: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

vi

HALAMAN MOTO

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).

Sebelum kau berdamai dengan jati dirimu, kau tidak akan pernah merasa puas

dengan apa yang kau miliki (Dorris Mortman).

Page 8: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

vii

ABSTRAKSI

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

kekurangan yaitu laporan belum dapat diakses secara langsung.

Page 9: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

viii

ABSTRACT

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.

The weakness of this system is the user cannot access reports directly.

Page 10: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

ix

KATA PENGANTAR

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

penulis menjalankan kegiatan perkuliahan dan selama penulis menyelesaikan

karya ini.

Page 11: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

x

6. Teman-teman seperjuangan penulis semasa perkuliahan Welly, Nana, Nope,

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

Cordelia Lajamarta

Page 12: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

xi

DAFTAR ISI

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 Perancangan Database ....................................................................... 44

Page 13: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

xii

3.2.1.1 Conceptual Database Design ( ER Diagram )............................... 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 LAMPIRAN............................................................................................................. 108

Page 14: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

DAFTAR TABEL

Tabel 2.1 Tabel Tipe Obyek....................................................................................... 22 Tabel 2.2 Tabel Konstruksi Program ......................................................................... 24 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 Tabel 3.8 Tabel ReturJual Tahap Physical Design .................................................... 51

Page 15: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

DAFTAR GAMBAR

Gambar 2.1 Siklus Hidup Pengembangan SI (Atzeni, 2000)....................................... 8 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 Gambar 4.17 Laporan Retur Penjualan.................................................................... 103

Page 16: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

BAB I PENDAHULUAN

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

dan belum memiliki program khusus sebagai sarana penyedia sistem informasi.

Page 17: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

2

Dari latar belakang itulah, penulis tertarik mengembangkan Sistem

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

dikembangkan menggunakan Oracle.

Page 18: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

3

1.4. Rumusan Masalah

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

program.

Page 19: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

4

3. Membuat implementasi Sistem Informasi Penjualan dan Inventori

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

pengujicobaan sistem ditinjau dari sisi masukan dan keluaran sistem.

Page 20: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

5

Bab V ANALISA HASIL

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

dengan rumusan masalah, apakah sistem yang dibuat menyelesaikan

masalah yang ada dan saran untuk pengembangan sistem lebih lanjut.

Page 21: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

BAB II LANDASAN TEORI

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

Program adalah kumpulan perintah yang akan dijalankan

Page 22: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

7

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

(persistent), dan memastikan bahwa kumpulan data tersebut terjaga

kerahasiaan dan kehandalannya (Atzeni, 2000).

Page 23: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

8

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

Operation

Page 24: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

9

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 fungsi-

fungsi sistem, siapa yang mengakses fungsi-fungsi sistem tersebut beserta

Page 25: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

10

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

Level 1 proses sub proses menggambarkan detail aliran data pada

proses yang memiliki sub proses.

Page 26: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

11

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

dikerjakan pada tahap perancangan database dapat dilihat pada gambar 2.2.

Page 27: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

12

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

Physical Design

Page 28: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

13

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

bagian-bagian atribut.

Page 29: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

14

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

banyak entitas pada himpunan entitas yang lain.

Page 30: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

15

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.

b) Redundansi akibat adanya nilai atribut yang didapat dari

proses perhitungan.

Page 31: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

16

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

mentranslasikan ER Diagram ke relational model.

Page 32: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

17

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

yaitu seluruh baris pada tabel bergantung terhadap seluruh

kunci pada tabel tersebut.

Page 33: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

18

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

Setiap entitas dan relasi pada ER Diagram akan menjadi tabel

pada relational model.

Page 34: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

19

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

Relasi yang ada pada relational model yaitu: relasi dalam tabel

(relasi antar atribut dalam tabel) dan relasi antar tabel.

Page 35: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

20

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

merge.

Page 36: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

21

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

6. Tipe data yang umum digunakan dalam Oracle:

Page 37: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

22

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:

a. Diawali dengan huruf

Page 38: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

23

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

pada tabel 2.2

Page 39: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

24

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)

Bagian dari Oracle

Developer

Page 40: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

25

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

Trigger body Aksi dari trigger Blok PL/SQL lengkap

Page 41: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

26

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:

1. penulisan kode prosedur

Page 42: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

27

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.

Perbedaan antara fungsi dan prosedur dapat dilihat pada tabel 2.5.

Page 43: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

28

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:

a. Menu utama : menu yang ditampilkan di bawah judul

Page 44: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

29

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.

Data blok tidak terlihat, hanya obyek-obyek yang terdapat pada

data blok yang akan terlihat pada waktu menjalankan aplikasi. Data

Page 45: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

30

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.

Setiap form dapat memiliki 1 atau lebih obyek.

Page 46: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

31

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 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

oleh pengembang aplikasi pada data model.

Page 47: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

32

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,

fungsi, atau package.

Page 48: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

BAB III ANALISA DAN PERANCANGAN SISTEM

3.1. Analisa Sistem

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:

botol 10cc, botol 30cc, botol 100cc, mangkok baking kecil, pot petis hitam,

Page 49: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

34

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

membayar pada saat itu, konsumen yang mengambil barang harus

menandatangani faktur lembar pertama sampai lembar ketiga. Konsumen

Page 50: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

35

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

komputer melalui sistem informasi penjualan dan inventori yang akan

dibuat.

Page 51: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

36

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.

Laporan dibuat secara otomatis oleh sistem. Manager pabrik menyiapkan

laporan dan membuat perencanaan berdasarkan laporan tersebut.

Page 52: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

37

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

Fungsi-fungsi sistem yang akan dibuat dapat digambarkan secara umum

dalam use case diagram yang dapat dilihat pada gambar 3.1.

Page 53: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa
Page 54: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa
Page 55: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa
Page 56: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa
Page 57: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa
Page 58: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa
Page 59: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa
Page 60: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

45

3.2.1.2 Logical Database Design

Relational model dari ER Diagram setelah di-normalisasi dapat dilihat pada

gambar 3.8.

Page 61: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

46

Gambar 3.8 Relational Model (setelah normalisasi)

* *

* ** *

**

**

**

** **

**

* *

*

**

**

**

**

Staff PI KodeStaffPI NamaStaffPI AlamatStaffPI KotaStaffPI NoTelpSTaffPI Pasword

Barang KodeBarang NamaBarang Satuan HargaProduksi HargaJual JumlahBarang StokMinimum StokMaksimum

Konsumen KodeKonsumen NamaKonsumen AlamatKonsumen KotaKonsumen NoTelpKonsumen

Masuk TanggalPemasukan KodePemasukan KodeStaffPI

DetailMasuk KodePemasukan KodeBarang JumlahBarang

Jual TanggalPenjualan KodePenjualan KodeStaffPI KodeKonsumen Discount TotalHarga

DetailJual KodePenjualan KodeBarang JumlahBarang HargaSatuan

ReturJual TanggalRetur KodeRetur KodePenjualan KodeKonsumen KodeBarang JumlahBarang KodeStaffPI

*

Page 62: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

47

3.2.1.3 Physical Database Design

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

Tabel konsumen berisi data-data konsumen PT. Sanitas-Cirebon. Tahap

physical design dari Tabel Konsumen dapat dilihat pada tabel 3.2.

Page 63: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

48

Tabel 3.2 Tabel Konsumen Tahap Physical Design

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,

merupakan tabel master dari tabel master-detail transaksi pemasukan

Page 64: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

49

barang. Tahap physical design dari tabel masuk dapat dilihat pada tabel

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

3.6.

Page 65: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

50

Tabel 3.6 Tabel Jual Tahap Physical Design

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

retur penjualan dijalankan bila ada konsumen yang mengembalikan

Page 66: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

51

barang karena barang memiliki cacat/rusak. Tahap physical design dari

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 User Interface

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

sebagai arsip.

Page 67: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

52

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.

Gambar 3.10 Laporan Penjualan

Tanggal Penjualan

Kode Penjualan

Kode Konsumen

Total Harga

Dari Tanggal s/d

Faktur Penjualan Detail Penjualan

Nama Barang

Harga Satuan

Jumlah Barang

Staff PI Konsumen (…………) (……………)

Tanggal Penjualan

KodePenjualan

Nama Konsumen

Alamat Konsumen

Total Harga

Discount

Total Pembayaran

Kode Staff PI

Page 68: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

53

c. Laporan Persediaan Barang

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 Barang

Nama Barang

Jumlah Barang

Stok Minimum

Stok Maksimum

Pertanggal

LAPORAN PERSEDIAAN BARANG

KodePenjualan NamaBarang JumlahBarang HargaSatuan

Dari Tanggal s/d

LAPORAN BARANG TERJUAL

Page 69: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

54

e. Laporan Konsumen yang Membeli Barang

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

LAPORAN KONSUMEN YANG MEMBELI BARANG

Page 70: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

55

b. Form Input Data Staff PI

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 Staff PI

Nama Staff PI

Alamat Staff PI

Kota Staff PI

No. Telp Staff PI

Pasword

Kode StaffPI

Nama StaffPI

Alamat StaffPI

NoTelpStaffPI

Save Delete ExitFirst Last Previous Next New

Pasword

Kota StaffPI

Page 71: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

56

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 ExitFirst Last Next Previous New

Kota Konsumen

Page 72: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

57

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 Detail Barang

Kode Barang

Nama Barang

Satuan Jumlah Barang

Harga Produksi

Harga Jual

Stok Minimum

Stok Maksimum

Kode Barang

Nama Barang

Jumlah Barang

Satuan

Save Delete ExitFirst Last NextPrevious

Harga Produksi

Harga Jual

New

Stok Minimum

Stok Maksimum

Page 73: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

58

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 ExitFirst Last NextPrevious New

Discount (%)

Total Harga

Page 74: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

59

Gambar 3.19 Form Input Data Transaksi Pemasukan Barang

f. Form Input untuk Pembuatan Laporan

Desain form 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 ExitFirst Last NextPrevious New

Page 75: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

BAB IV IMPLEMENTASI SISTEM

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.

e. Web Server : Apache 2.0.46 dan Javascript

Page 76: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

61

2. Client

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

6. Tabel Jual

Page 77: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

62

7. Tabel DetailJual

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

dilakukan bila stok barang jadi kurang dari jumlah barang yang sudah

dijual.

Page 78: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

63

Perintah untuk pembuatan trigger Barang_DMasuk_AIUDR :

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; END;

Page 79: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

64

Perintah untuk pembuatan trigger Barang_DJual_AIUDR:

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; END;

Page 80: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

65

Perintah untuk pembuatan trigger Barang_RJual_AIUDR:

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 SET HargaSatuan = (SELECT HargaJual FROM Barang WHERE DetailJual.KodeBarang = Barang.KodeBarang); END;

Page 81: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

66

4.2.1.3 Pembuatan Sequence

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 MAXVALUE 9999999999 INCREMENT BY 1 START WITH 1 NOCACHE ORDER NOCYCLE

Page 82: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

67

4.2.2 Implementasi User Interface

4.2.2.1 Pembuatan 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

barang (nama datablok: DB_BARANG), dan yang ketiga merupakan

datablok kontrol yang berisi tombol-tombol untuk menampilkan atau

mengubah data (nama datablok: DB_TOOL).

Page 83: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

68

Cara membuat datablok Barang:

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

ditampilkan misal: 5. Klik finish.

Page 84: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

69

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

berjalannya suatu form. Untuk membaca data dari database pada saat

form dijalankan, perlu adanya perintah execute_query pada trigger

Page 85: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

70

New-Form-Instance. Perintah pada trigger When-New-Form-Instance

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.

3. Klik 2 kali pada parameter. Ubah nama menjadi USER_ID_,

parameter data type menjadi Char, dan maksimum length menjadi 30.

Page 86: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

71

4. Buat datablok DB_Login yang berisi 2 buah teks item untuk

menampung masukan dari user berupa username dan password dan 3

buah button yaitu button connect, cancel, dan exit secara manual.

Perintah-perintah yang terdapat pada trigger button connect dapat

dilihat pada lampiran B

5. Di bawah FRM_LOGON pada object navigator buat trigger When-

New-Form-Instance dan ON-LOGON. Perintah trigger dapat dilihat

pada lampiran B.

6. Buat alert a_fail_connect. Klik 2 kali pada alert, ubah nama alert

menjadi a_fail_connect. Pada title masukkan connection failed dan

pada message masukkan invalid username/password. Alert style pilih

stop dan button 1 label diisi OK. Button lain dikosongkan. Default

alert button pilih button 1.

7. Buat prosedur CENTER dan SELECT_USER. Perintah dalam

prosedur CENTER dan SELECT_USER dapat dilihat pada lampiran

B.

8. Simpan form yang dibuat ke folder yang lain. Karena bila tidak

disimpan, akan ada pesan kesalahan karena pada address yang

ditampilkan yaitu merupakan folder penyimpanan file sementara.

9. Jalankan form, sebelumnya jalankan terlebih dahulu OC4J Instance

Form Jual (FRM_JUAL)

1. Buat form baru, beri nama FRM_JUAL.

Page 87: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

72

2. Klik kanan pada window, pilih property palett untuk mengubah

properti window. Pada nama ubah module1 menjadi W_Jual.

3. Klik 2 kali pada canvas atau klik canvas kemudian klik tanda tambah

yang berwarna hijau. Ubah nama pada canvas menjadi C_Jual

dengan menampilkan property palett.

4. Buat 3 buah datablok, datablok pertama menampung masukan dari

user (nama datablok: Jual), datablok kedua menampilkan data barang

(nama: DetailJual), dan yang ketiga merupakan datablok kontrol yang

berisi tombol-tombol untuk menampilkan atau mengubah data (nama:

DB_TOOL).

Cara membuat datablok Jual:

Klik dua kali datablok, pilih use datablock wizard. Klik next, pilih

table/view klik next. Klik browse pilih Jual. Masukkan field yang

tersedia sebagai database item. Klik next, masukkan nama dari

datablok, yaitu Jual. 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_Jual. Klik next pilih

item yang akan ditampilkan. Klik next, atur prompt atau label dari

masing-masing item/field. Klik next pilih bentuk yang akan

ditampilkan. Pilih bentuk form. klik next dan klik finish.

Page 88: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

73

Cara membuat datablok DetailJual:

Klik dua kali datablok, pilih use datablock wizard. Klik next, pilih

table/view klik next. Klik browse pilih DetailJual. Masukkan field

yang tersedia sebagai database item. Klik next pilih create

relationship karena detailjual merupakan tabel detail dari tabel

master-detail. Datablok jual merupakan tabel master. Klik create

relationship untuk membuat relasi master-detail secara otomatis. Klik

Ok. Akan tampil mana yang sebagai master item dan mana yang

sebagai detail item. Klik next, masukkan nama dari datablok, yaitu

DetailJual. 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 item yang belum

ditampilkan datablok Jual. Klik next, atur prompt atau label dari

masing-masing item/field. Klik next pilih bentuk yang akan

ditampilkan, pilih bentuk tabular. Klik next masukkan jumlah record

yang akan ditampilkan misal: 5. Klik finish. Trigger ON-CLEAR-

DETAILS dan prosedur yang berkaitan dengan master-detail

(CHECK_PACKAGE_FAILURE,

CLEAR_ALL_MASTER_DETAILS,dan

QUERY_MASTER_DETAILS) akan terbentuk dengan sendirinya.

Pada datablok Jual sebagai master terisi relasi yang terbentuk. Klik

kanan pada relasi pilih property palett. Pada delete record behaviour,

pilih cascade, yaitu untuk menghapus record detail bila record master

Page 89: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

74

dihapus. Perintah-perintah trigger ON-CLEAR-DETAILS, dan

prosedur:

CHECK_PACKAGE_FAILURE,

CLEAR_ALL_MASTER_DETAILS, dan

QUERY_MASTER_DETAILS dapat dilihat pada lampiran B.

Cara membuat DB_TOOL:

Buat datablok baru secara manual. Ubah nama datablok dengan

property palett. Klik kanan pada datablok yang dibuat pilih layout

editor.

Klik image item dan tempatkan pada canvas, dikelompokkan sebagai

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.

Adapun perintah-perintah pada image item dapat dilihat pada

lampiran B.

5. Di bawah FRM_Jual 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 berjalannya suatu

form. Untuk membaca data dari database pada saat form dijalankan,

perlu adanya perintah execute_query pada trigger New-Form-

Page 90: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

75

Instance. Perintah pada trigger When-New-Form-Instance dapat

dilihat pada penjelasan form Jual.

6. Untuk membuat List Of Value (LOVs) bisa dengan cara klik 2 kali

LOVs kemudian klik kanan dan pilih LOVs wizard. Pilih new record

group based on a query, klik next. Klik build SQL Query pilih tabel

yang berelasi dengan record yang akan ditampilkan. Misalnya untuk

LOVs StaffPI, tabel yang digunakan adalah tabel StaffPI dan tabel

Jual. Pilih field yang akan termasuk dalam record group, misal

NamaStaffPI dari tabel StaffPI dan KodeStaffPI dari tabel Jual. Klik

next. Pilih item kolom dari record group yang akan ditampilkan

dalam LOVs, pilih semua. Klik next. Klik finish. Ubah nama record

group dengan menampilkan property palett dari record group yang

bersangkutan. Tampilkan property palett dari LOVs yang baru

dibuat. Ubah nama LOVs menjadi LOV_STAFFPI. Klik column

mapping properties, pada return item klik browse dan pilih item yang

akan mengandung LOVs (misal item teks pada datablok Jual).

Automatic display diganti Yes. Tampilkan property palett dari item

teks yang mau diisikan LOVs. Pada List Of Values isikan nama

LOVs yang dimaksud (dalam contoh ini: LOV_STAFFPI).

7. Simpan form yang dibuat ke folder yang lain. Karena bila tidak

disimpan, akan ada pesan kesalahan karena pada address file yang

ditampilkan yaitu merupakan folder penyimpanan file sementara.

Page 91: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

76

8. Jalankan 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.

Form Menu (FRM_MENU)

Langkah-langkah pembuatan form menu hampir sama dengan form-form

lainnya hanya pada menu module yang ditampilkan property palett

FRM_MENU diisikan lokasi penyimpanan file menu yang akan

dijalankan. File menu yang dijalankan adalah file menu yang sudah

dikompilasi, yaitu yang ekstensinya .mmx bukan .mmb.

Menu yang sudah dikompilasi disimpan dalam file berekstensi .mmx.

Untuk form menu dibutuhkan parameter USER_ID_ untuk dilewatkan

pada saat pemanggilan. Form menu akan dipanggil bila user berhasil

login ke dalam sistem, maka form menu membutuhkan parameter yang

sama pada form login (FRM_LOGON).

Langkah-langkah pembuatan form staffpi, konsumen, returjual, dan form

masuk identik dengan langkah-langkah pembuatan form barang dan jual

hanya perlu disesuaikan dengan kebutuhan masing-masing form.

4.2.2.2 Pembuatan Laporan

Langkah-langkah pembuatan laporan (sebagai contoh laporan Penjualan)

sebagai berikut:

Page 92: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

77

Laporan Penjualan (RPT_JUAL)

1. Jalankan aplikasi Oracle Reports Builder, akan tampil object

navigator yang berisi reports, templates, library PL/SQL, dan lain-

lain. Untuk koneksi dengan database, klik connet pada toolbar.

Isikan username, password, dan nama database.

2. Jalankan OC4J Instance dengan cara yang sama seperti menjalankan

OC4J Instance pada Forms Builder.

3. Pada object navigator, dibawah node report terdapat tulisan module1,

itu merupakan report/laporan yang akan dibuat. Bila tidak ada, dapat

membuat report yang baru, dengan cara klik 2 kali pada reports atau

dengan klik reports kemudian klik tanda + yang berwana hijau.

Untuk mengubah properti dari report dengan menampilkan property

inspector. Untuk menampilkan property inspector yaitu dengan klik

kanan pada report dan klik property inspector. Untuk membuat

report, bisa dengan menggunakan wizard ataupun manual. Untuk

menggunakan wizard, klik kanan pada data model dan pilih report

wizard. Klik next. Pilih create both paper and web layout. Klik next.

Tuliskan judul laporan pada field title. Pilih bentuk tabular. Klik next.

Pilih SQL Query dan klik next. Untuk memilih data yang akan

ditampilkan bisa menuliskan queri atau bisa menggunakan query

builder. Klik query builder, pilih tabel yang akan dijadikan sumber

dari report. Dalam contoh ini yaitu tabel jual. Klik include. Pilih

field-field yang akan ditampilkan dengan memberi checklist didepan

Page 93: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

78

field. (pada contoh ini tanggal penjualan, kodepenjualan,

kodekonsumen, dan total harga). Klik next. Pilih item/field yang akan

ditampilkan. Klik next. Dengan menggunakan wizard juga bisa

memudahkan bila ada field tambahan yang menampung hasil operasi

perhitungan dari field tertentu. Contoh total merupakan penjumlahan

dari seluruh nilai field total harga. Untuk itu, pilih field totalharga klik

sum. Klik next. Ubah label dan lebar dari field-field yang akan

ditampilkan. Klik next. Untuk tampilan, Oracle menyediakan

template (desain yang sudah jadi) untuk ditempatkan dalam suatu

website. Namun karena sistem ini belum bertujuan sebagai website,

dan format laporan menggunakan desain sendiri maka gunakan no

template. Klik finish.

4. Untuk mensortir laporan penjualan berdasar tanggal awal dan tanggal

akhir diperlukan parameter. Untuk membuatnya, pada object

navigator, di bawah data model klik dua kali user parameter, untuk

membuat user parameter. Ubah properti dengan menampilkan

property inspector. Ubah nama dan tipe data serta ukuran dari

parameter sesuai dengan ukuran field pada database. Nama parameter

p_dari, tipe data tanggal/date dan ukurannya diset 15. buat parameter

kedua dengan tipe data sama, beri nama p_sampai. Klik kanan di

parameter pilih report editor. Klik toolbar paper parameter form.

Klik toolbar field untuk menambahkan field/item yang akan

menampung nilai parameter tanggal awal. Klik kanan pada field yang

Page 94: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

79

sudah dibuat, tampilkan property inspector. Ubah source menjadi

p_dari. Buat field kedua dan ubah source field kedua menjadi

p_sampai. Tambahkan label yang akan membedakan field 1 dan field

2.

5. Jalankan report dengan cara klik run paper layout.

Langkah-langkah pembuatan laporan yang lain (faktur penjualan,

laporan persediaan barang, laporan barang terjual, laporan konsumen

yang membeli barang, dan laporan retur barang) identik dengan

langkah-langkah pembuatan laporan penjualan hanya perlu

disesuaikan dengan kebutuhan masing-masing laporan.

4.2.2.3 Pembuatan Menu

Pada object navigator Forms Developer klik 2 kali menus.

Tampilkan property palett dari menus. Ubah nama menu menjadi

MENU_UTAMA. Pada menus di bawah MENU_UTAMA klik 2 kali.

Tampilkan property palett dan ubah nama menjadi MENUUTAMA. Klik

kanan pada MENUUTAMA pilih menu editor. Isikan Menu yang akan

ditampilkan yaitu menu Transaksi. Klik tanda panah + dan arah panah

kekanan untuk mengisi menu Master. Lakukan hal yang sama untuk menu

Laporan dan Help. Untuk sub menu transaksi yaitu pemasukan barang,

penjualan barang dan retur penjualan, pada menu transaksi klik tanda +

dan arah panah ke bawah (untuk membuat sub menu). Lakukan hal yang

sama untuk sub menu-sub menu lainnya.

Page 95: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

80

Untuk memanggil form bila menu atau sub menu di-klik (contoh:

untuk memanggil FRM_STAFFPI bila sub menu STAFFPI di-klik),

ditambahkan perintah:

open_form('E:\TA\PROGRAM\form\FRM_STAFFPI.fmx',

activate). Form yang dipanggil adalah form yang sudah dikompilasi, yaitu

yang berekstension .fmx bukan .fmb Form yang hasil kompilasi disimpan

dalam bentuk file berekstensi .fmx. Untuk menambahkan perintah, klik

kanan pada menu yang bersangkutan pilih PL/SQL editor. Lakukan hal

yang sama untuk menu atau sub menu lainnya.

4.2.2.4 User Interface

a. Form Login

Form Login pertama kali tampil bila aplikasi dijalankan. User diminta

untuk memasukkan username dan password. Username dan Password

adalah KodestaffPI dan Pasword yang ada pada tabel StaffPI. Bila

username atau password yang dimasukkan salah maka akan tampil

alert/peringatan pada user dan user tidak dapat menjalankan aplikasi

selanjutnya.

Page 96: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

81

Pada saat form login dijalankan, perintah yang dijalankan adalah:

Perintah tersebut mengakibatkan user terkoneksi dengan Oracle XE

sebagai database dalam skema Lia .

Prosedur untuk men-seleksi user:

Declare vUser VARCHAR2(80); vPassword VARCHAR2(80); vConnect VARCHAR2(80); begin logout; vUser := 'lia'; vPassword := 'lajamarta'; vConnect := 'XE'; if vConnect is not null then Logon(vUser, VPassword||'@'||vConnect); else Logon(vUser,vPassword); end if; set_window_property('WINDOW1',title,'Aplikasi Penjualan & Inventory '); set_window_property(forms_mdi_window,window_state,maximize); CENTER('window1'); end;

PROCEDURE SELECT_USER (USERNAME_ VARCHAR2, PASSWORD_ VARCHAR2) IS BEGIN begin select KODESTAFFPI into :PARAMETER.USER_ID_ from STAFFPI where KODESTAFFPI = USERNAME_ and PASWORD = PASSWORD_; exception when no_data_found then :PARAMETER.USER_ID_ := NULL; end; NULL; END;

Page 97: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

82

Tampilan form login dapat dilihat pada gambar 4.1.

Gambar 4.1 Form Login

b. Form Menu

Form Menu akan tampil bila user berhasil login atau menjalankan

aplikasi setelah login. Form Menu berisi menu-menu yang dapat diakses

oleh user. Menu Utama diantaranya adalah menu transaksi dan menu

master. Pada menu transaksi terdapat sub menu Pemasukan Barang,

Penjualan Barang, dan Retur Penjualan. Pada menu master terdapat sub

menu Staff PI, Konsumen, dan Barang. Sub Menu Pemasukan Barang

merupakan menu untuk mencatat transaksi pemasukan barang. Sub Menu

Penjualan Barang merupakan menu untuk mencatat transaksi penjualan

Page 98: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

83

barang. Sub Menu Retur Barang merupakan menu untuk mencatat

transaksi retur penjualan. Sub Menu Staff PI merupakan menu untuk

mencatat data Staff PI. Sub Menu Konsumen merupakan menu untuk

mencatat data Konsumen PT. Sanitas-Cirebon. Sub Menu Barang

merupakan menu untuk mencatat data Barang hasil produksi PT. Sanitas-

Cirebon. Menu Utama dapat dilihat pada gambar 4.2. Sub Menu

Pemasukan Barang, Penjualan Barang, dan Retur Penjualan pada menu

Transaksi dapat dilihat pada gambar 4.3. Sub Menu StaffPI, Konsumen,

dan Barang pada menu Master dapat dilihat pada gambar 4.4.

Gambar 4.2 Menu Utama

Page 99: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

84

Gambar 4.3 Sub Menu Transaksi

Page 100: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

85

Gambar 4.4 Sub Menu Master

c. Form Input Data Staff PI

Form input data Staff PI merupakan form untuk mencatat data dari Staff

PI PT. Sanitas-Cirebon. Form Input Data Staff PI dapat dilihat pada

gambar 4.5.

Page 101: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

86

Perintah yang akan dijalankan pada waktu Form StaffPI dijalankan:

Gambar 4.5 Form Input Data Staff PI

begin set_window_property('W_STAFFPI',title,'Input Data Staff Penjualan & Inventory '); READ_IMAGE_FILE('E:\TA\program\image\tool_new.bmp','ANY','db_tool.img_new'); READ_IMAGE_FILE('E:\TA\program\image\tool_delete.bmp','ANY','db_tool.img_delete'); READ_IMAGE_FILE('E:\TA\program\image\tool_save.bmp','ANY','db_tool.img_save'); READ_IMAGE_FILE('E:\TA\program\image\tool_close.bmp','ANY','db_tool.img_close'); READ_IMAGE_FILE('E:\TA\program\image\tool_first.bmp','ANY','db_tool.img_first'); READ_IMAGE_FILE('E:\TA\program\image\tool_next.bmp','ANY','db_tool.img_next'); READ_IMAGE_FILE('E:\TA\program\image\tool_prev.bmp','ANY','db_tool.img_prev'); READ_IMAGE_FILE('E:\TA\program\image\tool_last.bmp','ANY','db_tool.img_last'); GO_BLOCK('STAFFPI'); execute_query; last_record; GO_BLOCK('DB_STAFFPI'); execute_query; last_record; GO_BLOCK('DB_TOOL'); end;

Page 102: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

87

d. Form Input Data Konsumen

Form input data konsumen merupakan form untuk mencatat data dari

Konsumen PT. Sanitas-Cirebon. Form Input Data Konsumen dapat dilihat

pada gambar 4.6.

Perintah yang akan dijalankan pada waktu Form Input Data Konsumen

dijalankan:

begin set_window_property('W_KONSUMEN',title,'Input Data Konsumen '); READ_IMAGE_FILE('E:\TA\program\image\tool_new.bmp','ANY','db_tool.img_new'); READ_IMAGE_FILE('E:\TA\program\image\tool_delete.bmp','ANY','db_tool.img_delete'); READ_IMAGE_FILE('E:\TA\program\image\tool_save.bmp','ANY','db_tool.img_save'); READ_IMAGE_FILE('E:\TA\program\image\tool_close.bmp','ANY','db_tool.img_close'); READ_IMAGE_FILE('E:\TA\program\image\tool_first.bmp','ANY','db_tool.img_first'); READ_IMAGE_FILE('E:\TA\program\image\tool_next.bmp','ANY','db_tool.img_next'); READ_IMAGE_FILE('E:\TA\program\image\tool_prev.bmp','ANY','db_tool.img_prev'); READ_IMAGE_FILE('E:\TA\program\image\tool_last.bmp','ANY','db_tool.img_last'); GO_BLOCK('KONSUMEN'); execute_query; last_record; GO_BLOCK('DB_KONSUMEN'); execute_query; last_record; GO_BLOCK('DB_TOOL'); end;

Page 103: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

88

Gambar 4.6 Form Input Data Konsumen

e. Form Input Data Barang

Form input data barang merupakan form untuk mencatat data barang hasil

produksi PT. Sanitas-Cirebon berupa botol-botol plastik. Form Input Data

Barang dapat dilihat pada gambar 4.7.

Page 104: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

89

Perintah yang akan dijalankan pada waktu Form Input Data Barang

dijalankan:

Gambar 4.7 Form Input Data Barang

begin set_window_property('W_BARANG',title,'Input Data Barang '); READ_IMAGE_FILE('E:\TA\program\image\tool_new.bmp','ANY','db_tool.img_new'); READ_IMAGE_FILE('E:\TA\program\image\tool_delete.bmp','ANY','db_tool.img_delete'); READ_IMAGE_FILE('E:\TA\program\image\tool_save.bmp','ANY','db_tool.img_save'); READ_IMAGE_FILE('E:\TA\program\image\tool_close.bmp','ANY','db_tool.img_close'); READ_IMAGE_FILE('E:\TA\program\image\tool_first.bmp','ANY','db_tool.img_first'); READ_IMAGE_FILE('E:\TA\program\image\tool_next.bmp','ANY','db_tool.img_next'); READ_IMAGE_FILE('E:\TA\program\image\tool_prev.bmp','ANY','db_tool.img_prev'); READ_IMAGE_FILE('E:\TA\program\image\tool_last.bmp','ANY','db_tool.img_last'); GO_BLOCK('BARANG'); execute_query; last_record; GO_BLOCK('DB_BARANG'); execute_query; last_record; GO_BLOCK('DB_TOOL'); end;

Page 105: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

90

f. Form Transaksi Pemasukan Barang

Form Transaksi Pemasukan Barang merupakan form untuk mencatat

Transaksi Pemasukan Barang. Form Transaksi Pemasukan Barang dapat

dilihat pada gambar 4.8.

Untuk penambahan transaksi pemasukan barang, setelah user meng-klik

image New, maka field tanggalpemasukan akan langsung terisi tanggal

saat transaksi pemasukan barang diinputkan, dan field kodepemasukan

akan secara otomatis terisi. Nilai kodePemasukan yang baru adalah nilai

KodePemasukan yang lama ditambah dengan 1. Perintah yang digunakan

untuk men-generate TanggalPemasukan dan KodePemasukan secara

otomatis adalah:

Perintah tersebut terdapat pada trigger When-Mouse-Click pada image

New

Form Transaksi Pemasukan Barang merupakan form Master-Detail. Form

Master berdasar pada tabel Masuk. Form detail berdasar pada tabel

DetailMasuk. Field yang menghubungkan adalah field KodePemasukan

sebagai Primary Key pada tabel Masuk dan field KodePemasukan pada

tabel DetailMasuk sebagai Foreign Key dari tabel Masuk.

BEGIN GO_BLOCK('MASUK'); CREATE_RECORD; select sysdate into :masuk.tanggalpemasukan from dual; select kodemasuk_seq.nextval into :masuk.kodepemasukan from dual; END;

Page 106: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

91

Perintah Trigger On-Clear-Details:

KodeStaffPI merupakan List Of Values (LOVs), user memilih kode yang

dimilikinya. Field JumlahBarang merupakan masukan, sesuai dengan

jumlah hasil produksi.

Perintah yang akan dijalankan pada waktu Form Transaksi Pemasukan

Barang dijalankan:

-- trigger untuk menghapus detail bila master dihapus. BEGIN Clear_All_Master_Details; END;

begin set_window_property('W_Masuk',title,'Transaksi Pemasukan Barang'); READ_IMAGE_FILE('E:\TA\PROGRAM1\image\tool_new.bmp','ANY','db_tool.img_new'); READ_IMAGE_FILE('E:\TA\PROGRAM\image\tool_delete.bmp','ANY','db_tool.img_delete'); READ_IMAGE_FILE('E:\TA\PROGRAM\image\tool_save.bmp','ANY','db_tool.img_save'); READ_IMAGE_FILE('E:\TA\PROGRAM\image\tool_close.bmp','ANY','db_tool.img_close'); READ_IMAGE_FILE('E:\TA\PROGRAM\image\tool_first.bmp','ANY','db_tool.img_first'); READ_IMAGE_FILE('E:\TA\PROGRAM\image\tool_next.bmp','ANY','db_tool.img_next'); READ_IMAGE_FILE('E:\TA\PROGRAM\image\tool_prev.bmp','ANY','db_tool.img_prev'); READ_IMAGE_FILE('E:\TA\PROGRAM\image\tool_last.bmp','ANY','db_tool.img_last'); GO_BLOCK('MASUK'); execute_query; last_record; GO_BLOCK('DETAILMASUK'); execute_query; last_record; GO_BLOCK('DB_TOOL'); end;

Page 107: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

92

Gambar 4.8 Form Transaksi Pemasukan Barang

g. Form Transaksi Penjualan Barang

Form Transaksi Penjualan merupakan form untuk mencatat Transaksi

Penjualan Barang. Form Transaksi Penjualan Barang dapat dilihat pada

gambar 4.9.

Untuk penambahan transaksi penjualan barang, setelah user meng-klik

image New, maka field tanggalpenjualan akan langsung terisi tanggal saat

transaksi penjualan barang diinputkan, dan field kodepenjualan akan

secara otomatis terisi. Nilai KodePenjualan yang baru adalah nilai

KodePenjualan yang lama ditambah dengan 1.

Page 108: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

93

Perintah yang digunakan untuk men-generate TanggalPenjualan dan

KodePenjualan secara otomatis adalah:

Perintah tersebut terdapat pada trigger When-Mouse-Click pada image

New.

Form Transaksi Penjualan Barang merupakan form Master-Detail. Form

Master berdasar pada tabel Jual. Form detail berdasar pada tabel

DetailJual. Field yang menghubungkan adalah field KodePenjualan

sebagai Primary Key pada tabel Jual dan field KodePenjualan pada tabel

DetailJual sebagai Foreign Key dari tabel Jual.

Perintah Trigger On-Clear-Details:

KodeStaffPI dan Kode Konsumen, KodeBarang merupakan LOVs, user

diminta untuk memilih. Yang merupakan input bagi user hanyalah

JumlahBarang dan Discount. Untuk TotalHarga dan HargaSatuan secara

otomatis terisi bila user meng-klik image save.

BEGIN GO_BLOCK('JUAL'); CREATE_RECORD; select sysdate into :jual.tanggalpenjualan from dual; select kodejual_seq.nextval into :jual.kodepenjualan from dual; END;

-- trigger untuk menghapus detail bila master dihapus. BEGIN Clear_All_Master_Details; END;

Page 109: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

94

Perintah yang akan dijalankan pada waktu Form Transaksi Penjualan

Barang dijalankan:

Gambar 4.9 Form Transaksi Penjualan Barang

begin set_window_property('W_JUAL',title,'Transaksi Penjualan Barang'); READ_IMAGE_FILE('E:\TA\PROGRAM1\image\tool_new.bmp','ANY','db_tool.img_new'); READ_IMAGE_FILE('E:\TA\PROGRAM1\image\tool_delete.bmp','ANY','db_tool.img_delete'); READ_IMAGE_FILE('E:\TA\PROGRAM1\image\tool_save.bmp','ANY','db_tool.img_save'); READ_IMAGE_FILE('E:\TA\PROGRAM1\image\tool_close.bmp','ANY','db_tool.img_close'); READ_IMAGE_FILE('E:\TA\PROGRAM1\image\tool_first.bmp','ANY','db_tool.img_first'); READ_IMAGE_FILE('E:\TA\PROGRAM1\image\tool_next.bmp','ANY','db_tool.img_next'); READ_IMAGE_FILE('E:\TA\PROGRAM1\image\tool_prev.bmp','ANY','db_tool.img_prev'); READ_IMAGE_FILE('E:\TA\PROGRAM1\image\tool_last.bmp','ANY','db_tool.img_last'); GO_BLOCK('JUAL'); execute_query; last_record; GO_BLOCK('DETAILJUAL'); execute_query; last_record; GO_BLOCK('DB_TOOL'); end;

Page 110: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

95

h. Form Transaksi Retur Penjualan Barang

Form Transaksi Retur Penjualan Barang merupakan form untuk mencatat

Transaksi Retur Penjualan Barang. Form Transaksi Retur Penjualan

Barang dapat dilihat pada gambar 4.10.

Untuk penambahan transaksi penjualan barang, setelah user meng-klik

image New, maka field TanggalRetur akan langsung terisi tanggal saat

transaksi retur penjualan barang diinputkan. KodeRetur tidak secara

otomatis terisi karena 1 KodeRetur bukan merupakan Primary Key dan

bisa terdiri atas banyak jenis barang (terjadi redundansi).

Perintah yang digunakan untuk men-generate Tanggal Penjualan secara

otomatis adalah:

Perintah tersebut terdapat pada trigger When-Mouse-Click pada image

New.

KodeStaffPI, KodePenjualan, dan Kode Konsumen, KodeBarang

merupakan LOVs, user diminta untuk memilih. KodeKonsumen akan

langsung terisi bila user memilih KodePenjualan. Yang merupakan input

bagi user hanyalah JumlahBarang dan KodeRetur.

BEGIN GO_BLOCK('RETURJUAL'); CREATE_RECORD; select sysdate into :jual.tanggalretur from dual; END;

Page 111: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

96

Perintah yang akan dijalankan pada waktu Form Transaksi Retur

Penjualan Barang dijalankan:

Gambar 4.10 Form Transaksi Retur Penjualan Barang

begin set_window_property('W_RETUR',title,'Transaksi Retur Barang'); READ_IMAGE_FILE('E:\TA\PROGRAM1\image\tool_new.bmp','ANY','db_tool.img_new'); READ_IMAGE_FILE('E:\TA\PROGRAM1\image\tool_delete.bmp','ANY','db_tool.img_delete'); READ_IMAGE_FILE('E:\TA\PROGRAM1\image\tool_save.bmp','ANY','db_tool.img_save'); READ_IMAGE_FILE('E:\TA\PROGRAM1\image\tool_close.bmp','ANY','db_tool.img_close'); READ_IMAGE_FILE('E:\TA\PROGRAM1\image\tool_first.bmp','ANY','db_tool.img_first'); READ_IMAGE_FILE('E:\TA\PROGRAM1\image\tool_next.bmp','ANY','db_tool.img_next'); READ_IMAGE_FILE('E:\TA\PROGRAM1\image\tool_prev.bmp','ANY','db_tool.img_prev'); READ_IMAGE_FILE('E:\TA\PROGRAM1\image\tool_last.bmp','ANY','db_tool.img_last'); GO_BLOCK('RETURJUAL'); execute_query; last_record; GO_BLOCK('DB_RETURJUAL'); execute_query; last_record; GO_BLOCK('DB_TOOL'); end;

Page 112: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

97

i. Parameter Input Tanggal untuk Pembuatan Laporan

Desain parameter input tanggal untuk pembuatan laporan dapat dilihat

pada gambar 4.11.

Gambar 4.11 Parameter Input Tanggal untuk Pembuatan Laporan

j. Faktur Penjualan

Faktur penjualan merupakan bukti fisik dari transaksi penjualan. Faktur

penjualan dibuat rangkap 2. Lembar pertama akan diberikan pada

konsumen yang membeli barang secara tunai, lembar kedua akan

disimpan sebagai arsip. Contoh Faktur Penjualan dapat dilihat pada

gambar 4.12 Faktur Penjualan.

Page 113: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

98

Gambar 4.12 Faktur Penjualan

k. Laporan Penjualan

Format laporan penjualan dapat dilihat pada gambar 4.13

Page 114: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

99

Gambar 4.13 Laporan Penjualan

l. Laporan Persediaan Barang

Format laporan persediaan barang dapat dilihat pada gambar 4.14.

Page 115: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

100

Gambar 4.14 Laporan Persediaan Barang

m. Laporan Barang Terjual

Format laporan barang terjual dapat dilihat pada gambar 4.15.

Page 116: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

101

Gambar 4.15 Laporan Barang Terjual

n. Laporan Konsumen Yang Membeli Barang

Format laporan konsumen yang membeli barang dapat dilihat pada

gambar 4.16.

Page 117: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

102

Gambar 4.16 Laporan Konsumen yang Membeli Barang

o. Laporan Retur Penjualan

Format laporan retur penjualan dapat dilihat pada gambar 4.17.

Page 118: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

103

Gambar 4.17 Laporan Retur Penjualan

Page 119: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

BAB V ANALISIS HASIL

Secara umum, Sistem Informasi Penjualan dan Inventori berbasis Web dapat

berfungsi dengan baik sehingga tidak menutup kemungkinan dapat digunakan dalam

kondisi yang sesungguhnya. Adapun kelebihan dan kekurangan dari sistem adalah

sebagai berikut:

5.1 Kelebihan Sistem

Kelebihan dari sistem yang dibuat adalah sebagai berikut:

1. Adanya batasan hak akses user yang berfungsi membagi tugas dan

kewenangan dari user.

2. KodePenjualan dan KodePemasukan di-generate secara otomatis,

sehingga user tidak perlu mengingat KodePenjualan atau KodePemasukan

yang terakhir digunakan, serta mencegah adanya kesalahan dalam

penentuan KodePenjualan atau KodePemasukan

3. Perhitungan dan penyimpanan nilai total setelah dikurangi discount akan

mempermudah karena tidak perlu menghitung secara manual. Nilai total

tersebut tidak akan berubah bila ada perubahan harga jual barang karena

sudah disimpan dalam field tersendiri dan juga bila sewaktu-waktu

diperlukan, data tersebut dapat dipergunakan tanpa harus melakukan

perhitungan terlebih dahulu.

4. User tidak dapat memasukkan atau mengupdate jumlah barang pada

transaksi penjualan atau retur penjualan melebihi jumlah barang yang

tersedia.

Page 120: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

105

5. Sistem dibuat berbasis Web sehingga dapat diakses melalui jaringan

intranet maupun internet.

5.2 Kekurangan Sistem

Kekurangan dari sistem yang dibuat adalah sebagai berikut:

1. KodePenjualan dan KodePemasukan yang batal, menjadi tidak terpakai.

2. Belum adanya peringatan bila pada transaksi retur penjualan dimasukkan

data yang berbeda dari yang seharusnya (transaksi penjualan yang

bersangkutan dengan retur tersebut) karena pencatatan retur tidak

mempunyai primary key sehingga menyebabkan terjadinya redudansi. Oleh

karena itu tidak dapat direlasikan 1 kode retur hanya untuk 1 kode

penjualan.

3. Belum adanya peringatan bagi user bila user memasukkan atau

mengupdate jumlah barang pada transaksi penjualan atau retur penjualan

melebihi dari jumlah barang yang tersedia.

4. Laporan belum dapat diakses langsung dari sistem, tetapi melalui program

Reports Developernya karena waktu yang terbatas bagi penulis dalam

mengembangkan sistem.

Page 121: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

BAB VI KESIMPULAN DAN SARAN

6.1 Kesimpulan

Sistem yang sudah dibuat cukup dapat bekerja dengan baik, sehingga tidak

menutup kemungkinan dapat digunakan dalam kondisi yang sesungguhnya.

Namun masih ada beberapa kekurangan, diantaranya adalah belum dapatnya

laporan diakses secara langsung melalui sistem yang dibuat dan akan adanya

kode pemasukan dan kode penjualan yang tidak terpakai.

6.2 Saran

1. Laporan dapat diakses dari sistem secara langsung untuk memudahkan

user.

2. Sistem dikembangkan lagi agar dapat diakses melalui internet untuk

memperluas wilayah pemasaran dan juga bisa berlaku untuk bidang usaha

lain dari PT. Sanitas-Cirebon.

Page 122: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

DAFTAR PUSTAKA

Atzeni, Polo, Stefano, Ceri, Stefano, Paraboschi, and Riccardo, Torlone. (2000).

Database Systems Concepts, Languages and Architectures. England: The

McGraw-Hill Companies.

Febrian, Jack, Andayani, Farida. (2002). Kamus Komputer dan Istilah teknologi

Informasi. Bandung: CV. Informatika.

Hutabarat, Bernaridho I.. (2002). Pemrograman Oracle PL/SQL. Yogyakarta: Andi

Offset.

Pemrograman Menggunakan Oracle Developer Tingkat Lanjut. Yogyakarta: X-

Oerang Technology dan Penerbit Andi.

Whitten, Jeffery L., Bentley, Lonnie D., Dittman, Kevin C. (2004) System Analysis

& Design Methods. England: The McGraw-Hill Companies.

Page 123: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

108

LAMPIRAN

Page 124: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

109

LAMPIRAN A

Listing Perintah Pembuatan Tabel Pada Database

TABEL STAFFPI

CREATE TABLE "STAFFPI" (KODESTAFFPI VARCHAR2(5), NAMASTAFFPI VARCHAR2(50) NOT NULL, ALAMATSTAFFPI VARCHAR2(75), KOTASTAFFPI VARCHAR2(30), NOTELPSTAFFPI VARCHAR2(15), PASWORD VARCHAR2(10), CONSTRAINT STAFFPI_KODESTAFFPI_PK PRIMARY KEY (KODESTAFFPI)) )

TABEL BARANG

CREATE TABLE BARANG (KODEBARANG VARCHAR2(10), NAMABARANG VARCHAR2(30), SATUAN VARCHAR2(5), JUMLAHBARANG NUMBER(5,0), HARGAPRODUKSI NUMBER(5,), HARGAJUAL NUMBER(5,0), STOKMINIMUM NUMBER(5,0), STOKMAKSIMUM NUMBER(5,0), CONSTRAINT BARANG_KODEBARANG_PK PRIMARY KEY (KODEBARANG),

CONSTRAINT CK_JUMLAHBARANG CHECK (JumlahBarang >=0) )

TABEL KONSUMEN

CREATE TABLE "KONSUMEN" (KODEKONSUMEN VARCHAR2(10), NAMAKONSUMEN VARCHAR2(50), ALAMATKONSUMEN VARCHAR2(75), KOTAKONSUMEN VARCHAR2(50), NOTELPKONSUMEN VARCHAR2(15), CONSTRAINT KONSUMEN_KODEKONSUMEN_PK PRIMARY KEY (KODEKONSUMEN) )

TABEL MASUK

CREATE TABLE MASUK (TANGGALPEMASUKAN DATE, KODEPEMASUKAN NUMBER(10,0), KODESTAFFPI VARCHAR2(5), CONSTRAINT MASUK_KODEPEMASUKAN_PK PRIMARY KEY (KODEPEMASUKAN),

CONSTRAINT MASUK_KODESTAFFPI_FK FOREIGN KEY (KODESTAFFPI)

REFERENCES STAFFPI (KODESTAFFPI) )

TABEL DETAILMASUK CREATE TABLE DETAILMASUK (KODEPEMASUKAN NUMBER(10,0), KODEBARANG VARCHAR2(10), JUMLAHBARANG NUMBER(5,0), CONSTRAINT DETAILMASUK_KODEBARANG_FK FOREIGN KEY (KODEBARANG)

REFERENCES BARANG (KODEBARANG), CONSTRAINT DETAILMASUK_KODEPEMASUKAN_FK FOREIGN KEY (KODEPEMASUKAN)

REFERENCES MASUK (KODEPEMASUKAN) ON DELETE CASCADE )

TABEL JUAL

CREATE TABLE JUAL (TANGGALPENJUALAN DATE, KODEPENJUALAN NUMBER(10,0), KODESTAFFPI VARCHAR2(5), KODEKONSUMEN VARCHAR2(10), DISCOUNT NUMBER(3,0), TOTALHARGA NUMBER(10,0), CONSTRAINT JUAL_KODEPENJUALAN_PK PRIMARY KEY (KODEPENJUALAN),

CONSTRAINT JUAL_KODESTAFFPI_FK FOREIGN KEY (KODESTAFFPI

REFERENCES STAFFPI (KODESTAFFPI), CONSTRAINT JUAL_KODEKONSUMEN_FK FOREIGN KEY (KODEKONSUMEN)

REFERENCES KONSUMEN (KODEKONSUMEN) ) TABEL DETAILJUAL

CREATE TABLE DETAILJUAL (KODEPENJUALAN NUMBER(10,0), KODEBARANG VARCHAR2(10), JUMLAHBARANG NUMBER(5,0), HARGASATUAN NUMBER(5,0), CONSTRAINT DETAILJUAL_KODEBARANG_FK FOREIGN KEY (KODEBARANG)

REFERENCES "BARANG" (KODEBARANG), CONSTRAINT DETAILJUAL_KODEPENJUALAN_FK FOREIGN KEY (KODEPENJUALAN)

REFERENCES JUAL (KODEPENJUALAN) ON DELETE CASCADE)

Page 125: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

LAMPIRAN B

Perintah yang ada pada trigger di setiap form :

Trigger ON-ERROR

DECLARE lv_errcod NUMBER := ERROR_CODE; lv_errtyp VARCHAR2(3) := ERROR_TYPE; lv_errtxt VARCHAR2(80) := ERROR_TEXT; n_alert number; BEGIN IF (lv_errcod = 40508) THEN n_alert:=show_alert('A_DUPLICATE_PK'); --error gagal saving data karena adanya duplikasi primary key ELSE IF (lv_errcod = 40102) THEN n_alert:=show_alert('A_NEXT_REC'); --error karena record belum terisi tapi

sudah menekan tombol next record ELSE IF (lv_errcod = 40100) THEN

n_alert:=show_alert('A_PREV_REC'); --error karena sudah pada record

pertama tapi masih menekan tombol previous record

ELSE IF (lv_errcod = 50016) THEN n_alert:=show_alert('A_WRONG_DATA_TYPE'); --error karena tipe data masukan salah ELSE Message(lv_errtyp||'-'||to_char(lv_errcod)||': '||lv_errtxt); RAISE Form_Trigger_Failure; END IF; END IF; END IF; END IF; END;

Perintah yang ada pada trigger-trigger button dan image item pada datablok

DB_TOOL yang ada pada masing-masing form :

Trigger WHEN-IMAGE-CLICK

IMG_NEW – untuk menambahkan

record baru

BEGIN GO_BLOCK('BARANG'); create_record; END;

Trigger WHEN-IMAGE-CLICK

IMG_SAVE – untuk menyimpan

perubahan pada database

BEGIN commit_form; GO_BLOCK('BARANG'); execute_query; GO_BLOCK('DB_BARANG');

execute_query; GO_BLOCK('BARANG'); last_record; GO_BLOCK('DB_BARANG'); execute_query; GO_BLOCK('DB_TOOL'); END;

Page 126: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

111

Trigger WHEN-IMAGE-CLICK

IMG_DELETE – untuk menghapus

record

BEGIN GO_BLOCK('BARANG'); delete_record; commit_form; GO_BLOCK('DB_BARANG'); execute_query;

END;

Trigger WHEN-IMAGE-CLICK

IMG_CLOSE – untuk keluar dari

form

exit_form;

Trigger WHEN-IMAGE-CLICK

IMG_PREV – untuk menampilkan

record sebelumnya

BEGIN GO_BLOCK(BARANG); previous_record;

END;

Trigger WHEN-IMAGE-CLICK

IMG_NEXT – untuk menampilkan

record berikutnya

BEGIN GO_BLOCK(:Barang); next_record;

END; Trigger WHEN-IMAGE-CLICK

IMG_FIRST – untuk menampilkan

record pertama

BEGIN GO_BLOCK(:Barang); first_record;

END; Trigger WHEN-IMAGE-CLICK

IMG_LAST – untuk menampilkan

record terakhir

BEGIN GO_BLOCK(:Barang); last_record;

END;

Perintah-perintah pada trigger button Cancel Trigger When-Button-Pressed

PB_Cancel – Button untuk

membatalkan pemasukan record baru

BEGIN abort_query; GO_BLOCK('BARANG'); previous_record;

END;

Perintah pada trigger button

clear

Trigger When-Button-Pressed

PB_Clear – untuk mengosongkan

nilai dari tiap-tiap field

BEGIN

:BARANG.KODEBARANG := NULL;

:BARANG.NAMABARANG := NULL;

:BARANG.SATUAN := NULL;

:BARANG.JUMLAHBARANG := NULL;

:BARANG.HARGAPRODUKSI:= NULL;

:BARANG.HARGAJUAL := NULL;

:BARANG.STOKMINIMUM := NULL;

:BARANG.STOKMAKSIMUM := NULL;

END;

Page 127: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

Perintah trigger dalam form login (FRM_LOGON)

Trigger pada button connect :

Trigger WHEN-BUTTON-PRESSED

DECLARE pl_id Paramlist; pl_name VARCHAR2(10) := ‘tempdata'; n_alert number;

BEGIN select_user(:DB_LOGIN.TEXT_USER_NAME, :DB_LOGIN.TEXT_PASSWORD); :DB_LOGIN.TEXT_USER_NAME:=null; :DB_LOGIN.TEXT_PASSWORD:=null; if :parameter.USER_ID_ is not NULL then

pl_id := Get_Parameter_List(pl_name); if not Id_Null(pl_id) then

destroy_parameter_list (pl_id); end if; pl_id := Create_Parameter_List (pl_name); Add_Parameter(pl_id, ,User_ID_' , TEXT_PARAMETER, :PARAMETER.USER_ID_); if :parameter.USER_ID_ = 'HER' THEN

Open_Form('E:\TA\PROGRAM\FORM\FRM_MENU_M.fmx',no_activate, no_session,pl_id); Exit_form;

end if; Open_Form('E:\TA\PROGRAM\FORM\FRM_MENU.fmx',no_activate, no_session,pl_id); Exit_form; else

n_Alert:=show_Alert('a_fail_connect');

end if; END;

Trigger ON-ERROR

DECLARE errnum NUMBER := ERROR_CODE; n_alert number;

BEGIN if errnum = 40301 THEN

n_alert := show_Alert('a_fail_connect');

end if; END;

Trigger pada button Cancel :

Trigger When-Button-Pressed

BEGIN :DB_LOGIN.TEXT_USER_NAME := NULL; :DB_LOGIN.TEXT_PASSWORD := NULL; end;

Trigger pada button Exit :

Trigger When-Button-Pressed

exit_form;

Trigger When-New-Form-Instance

DECLARE vUser VARCHAR2(80); vPassword VARCHAR2(80); Connect VARCHAR2(80);

BEGIN logout; vUser := 'lia'; vPassword := 'lajamarta'; vConnect := 'XE'; if vConnect is not null then Logon(vUser,

VPassword||'@'||vConnect); else Logon(vUser,vPassword); end if; set_window_property('WINDOW1',title,'Aplikasi Penjualan & Inventory '); CENTER('window1');

END;

Trigger ON-LOGON

DECLARE vUser VARCHAR2(80); vPassword VARCHAR2(80); vConnect VARCHAR2(80);

BEGIN Logout; vUser := 'lia'; vPassword := 'lajamarta'; vConnect := 'XE'; if vConnect is not null then

Logon(vUser, VPassword||'@'||vConnect);

else Logon(vUser,vPassword); end if; END;

Page 128: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

Prosedur-prosedur yang ada pada form Login (FRM_LOGON)

Prosedur CENTER :

PROCEDURE CENTER ( WNAME IN VARCHAR2) IS W INTEGER; H INTEGER;

BEGIN H:=GET_APPLICATION_PROPERTY(DISPLAY_HEIGHT); W:=GET_APPLICATION_PROPERTY(DISPLAY_WIDTH); H := (H - GET_WINDOW_PROPERTY(WNAME, HEIGHT)) / 2; W := (W - GET_WINDOW_PROPERTY(WNAME, WIDTH)) / 2; SET_WINDOW_PROPERTY(WNAME,POSITION,W - 50, H - 80);

END;

Procedure SELECT_USER :

PROCEDURE SELECT_USER (USERNAME_ VARCHAR2, PASSWORD_ VARCHAR2) IS BEGIN

begin select KODESTAFFPI into :PARAMETER.USER_ID_ from STAFFPI where KODESTAFFPI = USERNAME_ and PASWORD = PASSWORD_;

exception when no_data_found then :PARAMETER.USER_ID_ := NULL;

end; NULL;

END;

Trigger dan Prosedur yang ada pada form Jual (FRM_JUAL)

Trigger ON-CLEAR-DETAILS

/* trigger pada form otomatis

terbentuk bila set relasi

master-detail*/

-- Begin default relation program section -- BEGIN Clear_All_Master_Details; END; -- End default relation program section --

Trigger POST-CHANGE

-- trigger pada item jumlahbarang -- pada datablok detailjual -- untuk menghitung totalharga -- setelah discount bila -- jumlahbarang diisikan DECLARE subtotal number(10); BEGIN select sum(jumlahbarang * hargasatuan) into subtotal from

detailjual where kodepenjualan = :jual.kodepenjualan; if :jual.discount is null then :jual.discount := 0; end if; :jual.totalharga := subtotal * (1 - :jual.discount / 100); END;

Prosedur CHECK_PACKAGE_FAILURE

/* prosedur yang otomatis

terbentuk bila set relasi master-

detail*/

Procedure Check_Package_Failure IS BEGIN IF NOT ( Form_Success ) THEN RAISE Form_Trigger_Failure; END IF; END;

Page 129: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

Prosedur Query_Master_Details

PROCEDURE Query_Master_Details(rel_id Relation,detail VARCHAR2) IS oldmsg VARCHAR2(2); -- Old Message Level Setting reldef VARCHAR2(5); -- Relation Deferred Setting BEGIN -- -- Initialize Local Variable(s) -- reldef := Get_Relation_Property(rel_id, DEFERRED_COORDINATION); oldmsg := :System.Message_Level; -- -- If NOT Deferred, Goto detail and execute the query. -- IF reldef = 'FALSE' THEN Go_Block(detail); Check_Package_Failure; :System.Message_Level := '10'; Execute_Query; :System.Message_Level := oldmsg; ELSE -- -- Relation is deferred, mark the detail block as un-coordinated -- Set_Block_Property(detail, COORDINATION_STATUS, NON_COORDINATED); END IF; EXCEPTION WHEN Form_Trigger_Failure THEN :System.Message_Level := oldmsg; RAISE; END Query_Master_Details;

Prosedur Clear_All_Master_Details

PROCEDURE Clear_All_Master_Details IS mastblk VARCHAR2(30); -- Initial Master Block Causing Coord coordop VARCHAR2(30); -- Operation Causing the Coord trigblk VARCHAR2(30); -- Cur Block On-Clear-Details Fires On startitm VARCHAR2(61); -- Item in which cursor started frmstat VARCHAR2(15); -- Form Status curblk VARCHAR2(30); -- Current Block currel VARCHAR2(30); -- Current Relation curdtl VARCHAR2(30); -- Current Detail Block

FUNCTION First_Changed_Block_Below(Master VARCHAR2) RETURN VARCHAR2 IS curblk VARCHAR2(30); -- Current Block currel VARCHAR2(30); -- Current Relation retblk VARCHAR2(30); -- Return Block BEGIN -- -- Initialize Local Vars -- curblk := Master; currel := Get_Block_Property(curblk, FIRST_MASTER_RELATION); -- -- While there exists another relation for this block -- WHILE currel IS NOT NULL LOOP --

Page 130: B)Ê»¸ Ç - repository.usd.ac.idrepository.usd.ac.id/32067/2/015314025_Full.pdf · Title: B)Ê»¸ Ç Author: U)Ê» Õ Created Date: D)Ê»È î2 «}êa_c¯Är£ÞÉzú ö"%úa

115

-- Get the name of the detail block -- curblk := Get_Relation_Property(currel, DETAIL_NAME); -- -- If this block has changes, return its name -- IF ( Get_Block_Property(curblk, STATUS) = 'CHANGED' ) THEN RETURN curblk; ELSE -- -- No changes, recursively look for changed blocks below -- retblk := First_Changed_Block_Below(curblk); -- -- If some block below is changed, return its name -- IF retblk IS NOT NULL THEN RETURN retblk; ELSE -- -- Consider the next relation -- currel := Get_Relation_Property(currel, NEXT_MASTER_RELATION); END IF; END IF; END LOOP; -- -- No changed blocks were found -- RETURN NULL; END First_Changed_Block_Below; BEGIN -- -- Init Local Vars -- mastblk := :System.Master_Block; coordop := :System.Coordination_Operation; trigblk := :System.Trigger_Block; startitm := :System.Cursor_Item; frmstat := :System.Form_Status; -- -- If the coordination operation is anything but CLEAR_RECORD or -- SYNCHRONIZE_BLOCKS, then continue checking. -- IF coordop NOT IN ('CLEAR_RECORD', 'SYNCHRONIZE_BLOCKS') THEN -- -- If we're processing the driving master block... -- IF mastblk = trigblk THEN -- -- If something in the form is changed, find the -- first changed block below the master

-- IF frmstat = 'CHANGED' THEN curblk := First_Changed_Block_Below(mastblk); -- -- If we find a changed block below, go there -- and Ask to commit the changes. -- IF curblk IS NOT NULL THEN Go_Block(curblk); Check_Package_Failure; Clear_Block(ASK_COMMIT); -- -- If user cancels commit dialog, raise error -- IF NOT ( :System.Form_Status = 'QUERY' OR :System.Block_Status = 'NEW' ) THEN RAISE Form_Trigger_Failure; END IF; END IF; END IF; END IF; END IF; -- -- Clear all the detail blocks for this master without -- any further asking to commit. -- currel := Get_Block_Property(trigblk, FIRST_MASTER_RELATION); WHILE currel IS NOT NULL LOOP curdtl := Get_Relation_Property(currel, DETAIL_NAME); IF Get_Block_Property(curdtl, STATUS) <> 'NEW' THEN Go_Block(curdtl); Check_Package_Failure; Clear_Block(NO_VALIDATE); IF :System.Block_Status <> 'NEW' THEN RAISE Form_Trigger_Failure; END IF; END IF; currel := Get_Relation_Property(currel, NEXT_MASTER_RELATION); END LOOP; -- -- Put cursor back where it started -- IF :System.Cursor_Item <> startitm THEN Go_Item(startitm); Check_Package_Failure; END IF; EXCEPTION WHEN Form_Trigger_Failure THEN IF :System.Cursor_Item <> startitm THEN Go_Item(startitm); END IF; RAISE; END Clear_All_Master_Details;