laporan project basis data lanjut

Upload: rhea-onward

Post on 16-Jul-2015

674 views

Category:

Documents


12 download

TRANSCRIPT

BAB I PENDAHULUAN

1.1

JUDUL PROYEK SISTEM INFORMASI COUNTER HP

1.2

LATAR BELAKANG Kemajuan teknologi informasi ini terlihat pada semakin pesatnya pengembangan software. Untuk memenangkan persaingan dalam bisnis, banyak perusahaan memanfaatkan software atau aplikasi sebagai strategi penjualan. Oleh karena itu, diperlukan sebuah sistem untuk mengolah data penjualan. Mobile Phone merupakan perusahaan yang bergerak dibidang

telekomunikasi, khusunya dibidang alat komunikasi, yaitu handphone. Handphone (HP) merupakan alat komunikasi yang paling umum digunakan, hampir semua orang memiliki alat komunikasi tersebut. Dalam penggunaan HP tidak akan terlepas dari counter HP, dari mulai pembelian sampai penjualan bisa dilakukan lewat counter HP. Handphone yang disediakan diperusahaan ini terdiri dari berbagai merk, seperti : Nokia, Sony Ericsson, Samsung, dan lain-lain. Salah satu masalah yang ada di Mobile Phone adalah mengenai pengaturan data penjualan dan pembelian Handphone yang masih melakukan pembukuan secara manual. Untuk itu diperlukan sebuah sistem yang terkomputerisasi untuk menyimpan data-data tersebut.

1.3

RUMUSAN MASALAH Berdasarkan latar belakang diatas, didapat rumusan masalah sebagai berikut: a. Bagaimana membuat sistem informasi counter HP? b. Bagaimana membuat sistem terkomputerisasi untuk menyimpan datadata penjualan dan data barang?

1

c. Bagaimana membuat laporan transaksi secara terkomputerisasi?

1.4

TUJUAN Tujuan pembuatan system informasi counter HP adalah : a. Membuat sistem informasi counter HP. b. Membuat sistem terkomputerisasi untuk menyimpan data-data penjualan. c. Membuat laporan transaksi secara terkomputerisasi.

1.5

BATASAN MASALAH Dalam sistem informasi Counter HP mencakup banyak hal, agar permasalahan tidak meluas, maka perlu adanya batasan masalah yang akan dibahas, antara lain : a. Sistem informasi yang akan dibuat hanya melayani penjualan HP. b. Sistem yang dibuat hanya memberikan informasi laporan penjualan. c. Tidak membahas tentang penjualan pulsa. d. Perangkat lunak yang akan digunakan yaitu PHP dan Oracle 10 g untuk databasenya.

1.6

MANFAAT Manfaat pembuatan sistem informasi counter HP adalah : a. Untuk memudahkan karyawan dalam mengolah data barang. b. Memudahkan pimpinan untuk memeriksa laporan penjualan.

1.7

METODOLOGI Dalam pembuatan Sistem Informasi Counter HP ini, metodologi yang digunakan adalah : a. Studi Literatur : Metodologi penyusunan dengan mempelajari dan mengumpulkan datadata yang berhubungan dengan counter HP.

2

b. Observasi : Pengumpulan data dengan cara melakukan observasi dengan sarana internet sesuai dengan topik permasalahan. c. Metodologi perancangan : Metodologi yang mempelajari tentang sistem informasi yang akan digunakan, yang nantinya akan dirancang suatu sistem informasi yang sesuai dengan kebutuhan. d. Implementasi : Pada rancangan sistem informasi counter HP, akan diimplementasikan kedalam program menggunakan bahasa pemrograman PHP sebagai aplikasinya dan Oracle untuk databasenya. e. Pengujian : Pengujian sistem informasi yang sudah dibuat, apakah sudah layak digunakan atau belum. f. Laporan : Laporan memuat tentang data penjualan yang akan nantinya akan dicek oleh pimpinan.

1.8

SISTEMATIKA PENULISAN Untuk memudahkan penyusunan proposal Sistem Informasi Counter HP, maka proposal ini terdiri dari beberapa bab, yaitu : BAB I. PENDAHULUAN Berisi latar belakang, rumusan masalah, tujuan, batasan masalah, manfaat, penulisan. BAB II LANDASAN TEORI Dalam bab ini menjelaskan tentang Oracle dan PHP BAB III ANALISA DAN PERENCANAAN SISTEM Berisi tentang uraian sistem yang akan dibuat, diagram konteks, DFD, CDM, PDM sebagai konsep pembuatan sistem informasi Counter HP. metodologi, dan sistematika

3

BAB II LANDASAN TEORI

2.1

Basis Data Data adalah fakta mengenai objek, orang, dan lain-lain. Sedangkan informasi adalah hasil analisis dan sintesis terhadap data. Basis data adalah kumpulan data yang dapat digambarkan sebagai aktifitas dari satu atau lebih organisasi yang berelasi. 2.1.1 Istilah dalam basis data Berikut ini merupakan istilah-istilah dalam database yang perlu diketahui sebagai dasar, antara lain: 1. Entity Entity adalah orang, tempat, kejadian atau konsep yang informasinya direkam. Pada administrasi kabupaten misalnya, maka entitinya kabupaten, kecamatan, penduduk. 2. Attribute Setiap entity mempunyai atribut atau sebutan untuk mewakili entity. Tabel penduduk dapat dilihat atributnya misalnya KTP, Nama, Alamat, Jenis Kelamin, Golongan Darah, dan lain-lain. Atribut juga disebut sebagai elemen, data field, data item. a. Atribut Kunci Dalam setiap file selalu terdapat kunci yang berupa satu field atau satu set field yang dapat diwakili record. Macam-macam kunci adalah sebagai berikut: Kunci Primer (Primary Key) Adalah atribut atau satu set minimal atribut yang tidak hanya mengidentifikasikan secara unik suatu kejadian spesifik, tetapi juga dapat mewakili setiap kejadian dari suatu entity. Setiap kandidat mempunyai peluang menjadi kunci primer.

4

Kunci Kandidat (Candidate Key) Adalah suatu atribut atau satu set minimal yang

mengidentifikasikan secara unik suatu kejadian spesifik dari entity. Satu minimal set atribut menyatakan secara tak langsung dimana beberapa atribut dalam satu set tidak dapat dibuang tanpa merusak kepemilikan yang unik. Jika suatu kandidat berisi lebih dari satu atribut, maka biasanya disebut kunci komposit (gabungan). Kunci Tamu (Foreign Key) Adalah satu atribut atau satu set minimal atribut yang melengkapi satu relationship yang menunjukkan ke induknya. Kunci tamu ditempatkan pada entity anak dan sama dengan kunci primer induk direlasikan. Hubungan antara entity anak dan entity induk adalah hubungan set lawan banyak (one to many relationship). Kunci Alternatif (Alternate Key) Adalah kunci kandidat yang tidak dipakai sebagai kunci primer. Kerap kali kunci alternatif dipakai sebagai kunci pengurutan dalam laporan. 3. Data Value Data Value adalah data aktual atau informasi yang disimpan pada tiap data elemen atau atribut. Atribut nama penduduk menunjukkan tempat informasi dimana nama penduduk itu disimpan, sedangkan data value misalnya: Ronie, Arif, Heru merupakan isi data mahasiswa itu. 4. Record / Tuple Kumpulan elemen-elemen yang saling berhubungan

menginformasikan tentang seseorang misalnya: nomor KTP, nama penduduk, alamat, nomor telepon. Satu record mewakili satu data atau informasi tentang seseorang.

5

5. Field Kumpulan records sejenis yang mempunyai panjang elemen yang sama, atribut yang sama, namun berbeda-beda nama value-nya. 6. Relasi Adalah hunbungan antar file yang direlasikan dengan kunci relasi (Relational Key), yang merupakan kunci utama dari masing-masing file.

2.1.2 Diagram Konteks Diagram konteks merupakan diagram paling atas, yang terdiri dari suatu proses yang mengambarkan ruang lingkup sistem. Hal-hal yang digambarkan dalam diagram kontek adalah : a. Hubungan terminator dengan sistem. b. Sistem dalam suatu proses. Hal-hal yang tidak digambarkan dalam diagram kontek adalah : a. Hubungan antar terminator. b. Data store, kecuali kalau data store bersifat global (dengan pengertian data Store itu dihasilkan oleh sistem yang sedang dianalisa tetapi digunakan oleh sistem lain, atau sistem lain yang menghasilkan data store itu tetapi sistem yang sedang dianalisa menggunakannya). 2.1.3 Diagram Zero/Diagram Berjenjang Diagram Zero ini merupakan diagram tingkat menengah yang terletak satu level dibawah diagram konteks, yang menggambarkan proses utama dari DFD. Penggambaran diagram berjenjang terdiri dari beberapa level. Untuk menandai bahwa suatu proses adalah tidak ada sub prosesnya lagi maka pada nomor proses diakhiri dengan huruf P yang berarti primitive. Notasi yang digunakan pada diagram berjenjang antara lain :

6

Gambar 2.1 : Diagram Berjenjang

2.1.4 Data Flow Diagram 2.1.4.1 Konsep Dasar Data Flow Diagram (DFD) merupakan suatu diagram yang

memungkinkan sistem analisa menggambarkan ssuatu sistem sebagai suatu jaringan kerja proses dan fungsi yang dihubungkan satu sama lain oleh penghubung yang disebut Data Flow (alur data). Gambaran ini tidak

tergantung pada perangkat keras, perangkat lunak, struktur data atau organisasi file. Keuntungan menggunakan Data Flow Diagram adalah

memudahkan pemakai atau user yang awam di bidang komputer untuk mengerti sistem yang akan dibuat. Data Flow Diagram (DFD) merupakan aliran informasi dan input ke

transformasi yang diaplikasikan sebagai perjalanan data dari

output. Sistem analisa melakukan identifikasi alur data yang khas dan proses yang tepat untuk mengubah alur data itu, sebelum ia membuat DFD. 2.1.4.2 Komponen DFD Dalam pembuatan DFD dibutuhkan 5 (lima) komponen. Komponenkomponen Data Flow Diagram yang digunakan oleh penulis dalam

pembuatan sistem dengan menggunakan tools PowerDesigner. Komponenkomponen Data Flow Diagram adalah sebagai berikut :

7

1.

Proses tanpa sub proses Proses mengambarkan bagian dari sistem yang

mentranformasikan input ke output, atau dapat dikatakan bahwa proses menggambarkan tranformasi input ke dalam output. Angka nol 1 menjelaskan tentang identifikasi dari proses, sedangkan PERPUSTAKAAN merupakan nama proses. Proses ini tidak mempunyai sub proses, karena tidak ada tanda + pada sudut kiri bawah proses. Berikut simbol proses tanpa sub proses :

Gambar 2.2 : symbol proses tanpa sub proses

2.1.5 Entity Relation Diagram Yang dimaksud dengan entity relation diagram (ERD) adalah penggambaran relasi antar entitas secara keseluruhan dengan menggunakan grafik atau gambar. Entity Reation Diagram dapat digambarkan dengan symbol-simbol yang digunakan oleh tools PowerDesigner. Berikut symbolsimbol yang digunkan, yaitu : 1. Entity Adalah suatu objek yang dapat diidentifikasikan dalam lingkungan pemakai, sesuatu yang penting bagi pemakai dalam konteks system yang akan dibuat.

Gambar 2.3 : symbol Entity

2. Atribut Entity mempunyai elemen yang disebut atribut, dan berfungsi mendeskripsikan karakter entity. Setiap ERD bisa terdapat lebih dari satu atribut.

8

Gambar 2.4 : symbol entity dengan atribut

3. Hubungan / Relasi Hubungan antara sejumlah entitas yang berasal dari himpunan entitas yang berbeda. Relasi yang terjadi diantara dua himpunan entitas (misalnya A dan B) dalam satu basis data, yaitu (Abdul Kadir, 2002: 48). Macam-macam relasi : a. Satu ke satu (One to one) Hubungan relasi satu ke satu yaitu setiap entitas pada himpunan entitas A berhubungan paling banyakk dengan satu entitas pada himpunan entitas B.

Gambar 2.5 : Simbol Relasi One to One b. Satu ke banyak (One to many) Setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B, tetapi setiap entitas pada entitas B dapat berhubungan dengan satu entitas pada himpunan entitas A.

Gambar 2.6 : Simbol Relasi One to Many

9

c. Banyak ke banyak (Many to Many) Setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B.

Gambar 2.7 : Simbol Relasi Many to Many

Berikut adalah symbol-simbol ER Diagram pada Power Designer : Simbol Keterangan Simbol entitas, Ent_1 merupakan nama dari entity. Atribut_1, Atribut_2 dan Atribut_3 merupakan atribut-atribut yang ada pada entity.

Symbol one to one relationship Symbol one to many Symbol many to many

Tabel 2.1 : Simbol ER Diagram (Power Designer)

2.2

Oracle Oracle merupakan RDBMS yang paling banyak digunakan oleh perusahaan perusahaan di dunia.Sejarah perkembangannya yang cukup panjang telah membawa Oracle menjadi database yang paling handal sehingga menjadikannya sebagai database yang paling banyak digunakan. Pada RDBMS, sebuah table merupakan struktur penyimpanan dasar. Satu table atau lebih membentuk sebuah relational database.Sejak Oracle 8,

10

Oracle merupakan database yang berkemampuan menangani obyek. Pengembangan ini di ilhami oleh pemrograman berorientasi obyek ( object oriented programming ). Oleh karena itulah Oracle menggunakan istilah ORDBMS ( Object Relational Database Management System ). Sebagai ORDBMS, Oracle mempunyai beberapa fitur, yaitu : Menyimpan user-defined data type sebagai object table Method yang dapat diasosiasikan kedalam definisi table Kolom dapat menggunakan tipe data yang didefinisikan oleh user Bagi seorang programmer yang mengenal istilah pemrograman berorientasi obyek, hal ini tentu menarik perhatian. Structured Query Language (SQL) adalah sekumpulan statemen yang digunakan oleh user untuk mengakses data di database Oracle. 2.2.1 Keunggulan database oracle 1. Scalability, kemampuan menangani banyak user yang melakukan koneksi secara simultan tanpa berkurangnya performa secara significan. Dalam dokumentasi oracle disebutkan bahwa oracle database sanggup melayani puluhan ribu user secara simultan. 2. Reliability yang bagus, kemampuan untuk melindungi data dari kerusakan jika terjadi kegagalan fungsi pada system. 3. Serviceability, kemampuan untuk mendeteksi masalah, kecepatan dalam mengoreksi kesalahan, dan kemampuan melakukan konfigurasi ulang struktur data. 4. Stability, kemampuan untuk tidak crash karena bebean kerja yang tinggi. 5. Availability, kemampuan dalam menangani crash atau failure agar service dapat tetap berjalan. 6. 7. Multiplatform, dapat digunakan pada banyak system operasi. Mendukung data yang cukup besar. Menurut dokumentasi, oracle dapat menampung sampai 512 petabyte ( 1 petabyte = 1.000.000 gigabytes ).

11

8. 9.

System security yang cukup handal. Mendukung database berorientasi object

10. Dapat menampung hampir semua tipe data seperti text, image, sound, video dan time series Keunggulan keunggulan diatas membuat Oracle banyak digunakan pada aplikasi internet maupun client server pada LAN. Spesifikasi komputer yang dibutuhkan Spesifikasi komputer yang diperlukan untuk menginstal Oracle Server adalah : Prosesor Pentium 266 atau lebih baik. Ram 256 MB Ruang Harddisk 1.4 GB Sistem Operasi Windows NT atau Windows 2000 Untuk Oracle Client : Prosesor Pentium 166 atau yang lebih baik RAM 64 MB Ruang Harddisk 220 MB Sistem Operasi Windows 95/98/NT/2000 2.2.2 SQL dan PL / SQL SQL*Plus merupakan tools standart oracle untuk mengakes data oracle secara interaktif. Bentuk SQL*Plus adalah command line yang dapat mengeksekusi perintah setiap kali anda memasukkan perintah.Ada beberapa cara login ke SQL*Plus. Cara pertama, ketika anda membuka SQL*Plus di windows, akan muncul kotak dialog yang meminta anda memasukkan username, password dan host string. Cara kedua, jika anda sudah masuk ke prompt SQL, anda dapat connect sebagai user yang anda inginkandengan menggunakan perintah CONN, seperti contoh berikut : SQL > CONN rhea@sdm Connected.

12

Cara lain adalah : SQL > CONN Enter user-name : rhea Enter password : ******** Connected. SQL>connect nama_user [/password] [@nama_database] Connected Setelah terkoneksi dengan Oracle Database, maka langkah selanjutnya adalah membuat tablespace. Tablecpace adalah unit-unit penyimpanan logika dimana segment, extend, dan block disimpan. Tujuan pembuatan tablespace adalah untuk mengalokasikan storage untuk schema user yang kita buat. Syntaxnya adalah: CREATE TABLESPACE NAMA_TABLESPACE DATAFILE PATHFILE SIZE INTEGER [K] ATAU [M] DEFAULT STORAGE INITIAL INTEGER [K] ATAU[M] NEXT INTEGER [K] ATAU[M] MINEXTENTS INTEGER MAXEXTENTS INTEGER PCTINCREASE INTEGER [PERMANENT ATAU TEMPORARY] [ONLINE ATAU OFFLINE] Tablespace created Setelah itu kita memulai membuat user dengan syntax: CREATE USER NAMA_USER IDENTIFIED (BY PASSWORD ! EXTERNALLY)] [DEFAULT TABLESPACE NAMA_TABLESPACE] [TEMPORARY TABLESPACE TEMP] [QUOTA (SIZE (M | UNLIMITED) NAMA_TABLESPACE]

13

User created Pemberian hak akses : GRAND NAMA_ROLE | PRIVILEGES TO NAMA_USER Grant succeeded Untuk membuat tabel karyawan ketikkan di SQL promp perintah berikut : SQL > CREATE TABLE karyawan 1 (id NUMBER (5), 2 namadepan VARCHAR2 (12), 3 namabelakang VARCHAR (12), 4 gaji NUMBER (9); Table created. Pada perintah diatas kita membuat tabel dengan nama karyawan yang memiliki empat kolom yaitu id, namadepan, namabelakang, dan gaji. Kolom tersebut memiliki jenis data NUMBER yang artinya dapat dimasukkan data berupa angka, dan VARCHAR2 yang artinya dapat dimasukkan data berupa karakter. Angka setelah pendefinisian jenis data adalah jumlah maksimal karakter yang dapat dimasukkan. 2.2.3 Arsitektur Database Oracle Arsitektur database Oracle melibatkan beberapa komponen.

Komponen ini berbentuk struktur memory dan prases. Struktur memori dan prases ini disebut instance. Berikut adalah penjelasan komponen-komponen tersebut : 1. System Global Area (SGH) SGH terdiri atas beberapa elemen memori yaitu buffer cache, redo log Buffer, dan shared pool. Buffer Log Buffer, berisi catatan semua perubahan dalam database. Nantinya redo log buffer akan disimpan didalam redo log file. Shared Pool, terdiri atas dua struktur. Yang pertama adalah dictionary cache berfungsi sebagai tempat penyimpanan data dictionary yang sering di query. Kedua adalah library cache yang

14

menyimpan perintah SQL dan rencana bagaimana perintah SQL ini dieksekusi. 2. Program Global Area (PGA) PGA membantu proses yang dilakukan user, memori dalam PGA tidak dapat dishare. PGA membantu user dengan cara menyimpan informasi seperti nilai variable, kolom yang diurutkan dan sebagainya. 3. Server Process Berfungsi mengambil data dari disk ke buffer cache atas permintaan user. Ada dua jenis server process yaitu, dedicated server dan shared server. Dedicated Server, jika server process disetup sebagai dedicated server, setiap user yang terkoneksi akan dilayani oleh satu server process. Shared Server, jika server process di-setup sebagai shared server, semua user yang terkoneksi hanya akan dilayani oleh satu server process. 4. Menyimpan Perubahan Data dari Memori ke Disk Untuk menyimpan perubahan data dari memori ke disk dilakukan oleh background process. Table adalah alat tempat penyimpanan bagi data di dalam database. Sedangkan Column merupakan bagian dari Table yang menjelaskan suatu atribut dari entities dan memiliki nama dan karakteristik tertentu. Karakterisk dari setiap kolom (column) dibagi atas dua bagian yaitu type data (datatype) dan panjangnya (Length). Dan setiap baris di tabel harus memenuhi kondisi tertentu di dalam ketentuan aturan (Constraint) yang di tempatkan di table. Constraint pada tabledapat berupa primary key, reference dan atau check constraint yang didefinisikan pada perintah Create Table. Suatu User Account bukan merupakan struktur fisik di database, tetapi memiliki hubungan dengan objek di dalam database. Setiap account dapat diatur untuk mengakses suatu objek di database. Dan kumpulan objek yang dimiliki sendiri oleh suatu user account disebut schema user.Indeks

15

merupakan suatu struktur database yang digunakan oleh server untuk menemukan dengan cepat suatu row di dalam tabel. Ada dua type indeks yaitu :cluster indeks dan table indeks. Cluster dibuat untuk menangani table yang sering diakses dan disimpan bersama. Yang termasuk dalam definisi view adalah query pada table, layout column dan pemberian hak (Privilege). View tidak dapat dgunakan untuk menyimpan data dan tidak dapat diindeks. Sequence digunakan untuk mempermudah usaha memprogram dalam nilai unik. Dimana nilainya dapat ditingkatkan dengan menetapkan increment hingga nilai maksimum dicapai atau diulang kembali. Sama seperti table atau view, yang mengidentifikasi database secara komplet dan dipergunakan untuk memberi pointer pada table, view, procedure, function, package dan sequence. User dari database merupakan jalur akses menuju informasi dalam database oracle. Maka dari itu, manajemen user dari database harus memiliki kemanan yang ketat. Tergantung dari besarnya sistem database dan jumlah pekerjaan mengatur user dari database, security administrator mungkin menjadi satu-satunya user yang memiliki privilege untuk melakukan perintah create, alter, atau drop user dari database. Namun ada juga administrator lain yang memiliki privilege untuk mengatur user dari database. Bagaimanapun juga, hanya individual yang bisa dipercaya yang memiliki powerful privilege untuk mengatur user dari database. User dari database dapat diautentikasi oleh Oracle menggunakan password database, system operasi, network service, atau dengan Secure Socket Layer (SSL). Tergantung bagaimana identitas user akan diautentikasi, ada beberapa cara untuk mengidentifikasi user sebelum mengakses suatu database: 1. Autentikasi database Pada autentikasi database, maka administrasi dari user account, password, dan autentikasi user akan dilakukan sepenuhnya oleh Oracle. Untuk melakukan ini, maka dibuat suatu password untuk setiap user pada saat melakukan perintah create user atau alter user. User dapat

16

mengganti passwordnya kapan saja. Password akan disimpan dalam format yang terenkripsi. Setiap password harus terdiri dari karakter single-byte, walaupun database tersebut menggunakan karakter set multi-byte. Untuk meningkatkan keamanan database saat melakukan

autentikasi, Oracle memiliki suatu manajemen password yang mencakup account locking, password aging and expiration, password history, dan password complexity verification. Keuntungan dari autentikasi database adalah: Account user dan semua autentikasi dikontrol oleh database, tidak tergantung apapun diluar database. Oracle menyediakan fitur manajemen password yang tangguh untuk meningkatkan keamanan saat melakukan autentikasi database. Lebih mudah untuk melakukan pengaturan user bila komunitas usernya sedikit. 2. Autentikasi eksternal Pada autentikasi eksternal, account user diatur oleh database Oracle, tapi administrasi password dan autentikasi user dilakukan oleh service eksternal, yaitu sistem operasi atau network service seperti Net8. Dengan demikian, database Oracle akan mempercayai sistem operasi atau network autentication service untuk melakukan

pengontrolan akses terhadap account database. Password database tidak lagi digunakan pada saat login database. Secara umum, autentikasi user via sistem operasi memiliki keuntungan user dapat melakukan koneksi ke Oracle lebih cepat tanpa melakukan login username dan password secara terpisah. Keuntungan dari autentikasi eksternal adalah: Lebih banyak mekanisme autentikasi dapat diterapkan, seperti smart card, sidik jari, Kerberos, atau sistem operasi itu sendiri.

17

Banyak service dari autentikasi jaringan, seperti Kerberos dan DCE yang mendukung single sign-on, dengan demikian user pserlu mengingat lebih sedikit password. Autentikasi global 2.2.4 Data Dictionary Data dictionary merupakan sekumpulan table dan view yang dibuat oleh Oracle untuk menyimpan semua informasi tentang sebuah database. Tabel-tabel data dictionary tidak dapat diakses secara langsung oleh user. Oracle menyediakan sejumlah view yang dapat digunakan untuk mendapatkan informasi yang tersimpan di dalam tabel-tabel data dictionary. Di dalam data dictionary terdiri dari beberapa bagian : a) Definisi mengenai semua schema objects di dalam database (tabel, view, indexes, cluster, synonyms, sequence, procedures, functions, package, trigger, dll) b) Berapa banyak ruangan / space yang harus disediakan untuk atau digunakan oleh schema objects secara bersama-sama. c) Nilai mutlak kolom d) Informasi yang saling ketergantungan e) Nama pengguna yang akan digunakan Oracle. Struktur dari Data Dictionary adalah tabel dan view, sama seperti data database yang lain. Adapun stuktur dari sebuah Data Dictionary database adalah: Base tables Isi dari tabel ini merupkan tempat penyimpanan

informasi / data mengenai database yang saling berelasi. Hanya Oracle saja yang boleh membaca data (read) dan menulis (write) semua data / informasi. User-accessible views Pada view hanya menjumlahkan dan menampilkan semua informasi yang tersimpan di base tables dari data dictionary

18

2.2.5 Data Dictionary Views Seorang user dapat melihat semua data dictionary views yang dapat diakses olehnya dengan memerlukan query dari sebuah view yang bernama DICTIONARY. View juga merupakan bagian dari data dictionary. Berikut ini sebuah query yang menghasilkan jumlah view yang dapat diakses oleh current user. Hasil query di atas menunjukkan bagian itu banyak view yang merupkan bagian dari data dictionary. Angka tersebut tidak selalu seperti itu, bergantung pada role yang diberikan ke user tersebut.Cobalah login dengan menggunakan user SYSTEM dan lakukan query seperti di atas.Jumlah data dictionary view untuk user SYSTEM lebih benyak dibandingkan untuk user sebelumnya. Berikut ini ditunjukkan sebuah query untuk mendapatkan nama-nama view yang termasuk di dalam data dictionary. User yang digunkan adalah SYSTEM. Seperti yang terlihat diatas ada banyak sekali view yang termasuk sebagai data dictionary views. Kebanyakan dari view tersebut memiliki nama yang diawali oleh ALL_,DBA_,USER_,GV$, dan V$. View dengan nama yang diawali oleh tiga prefiks yang disebutkan pertama digolongkan sebagai static data dictionary views. View yang namanya diawali olehV$ digolongkan sebagai dynamic perfomance views.Sedangkan yang diawali oleh GV$ adalah global. V$ view yang merupkan parallel server environment. View lainnya yang tidak diawali oleh salah satu dari lima prefiks tersebut tergolong ke dalam static data dictionary views dan merupakan salah satu dari yang berikut ini: View khusus. Synonym dari salah satu view pada static data dictionary. View yang dibuat pada versi-versi terdahulu dan disertakan hanya untuk kompatibilitas. Data dictionary views dapat digolongkan ke dalam dua bagian besar, yaitu static data dictionary views dan dynamic perfomance views.

19

Perbedaan dari keduanya adalah : Static data dictionary Hanya views berubah pada ketika saat sebuah perubahan

dilakukan

adanya

penambahan,

pembaharuan, atau penghapusan sebuah objek database. Dynamic views perfomance Secara kontinu berubah sejak database tersebut dijalankan atau dibuka dan selama database tersebut digunakan. Dan juga ditujukan untuk server maintenance dan hanya dapat diakses

oleh administrator database user SYS atau SYSTEM. 2.2.6 Manfaat Data Dictionary Bahwa sejumlah tabel dari data dictionary berguna untuk menyimpan semua informasi tentang objek-objek database. Kebanyakan dari tabel-tabel data dictionary tersebut berkoresponden terhadap salah satu view yang namanya diawali oleh ALL_,DBA_,atau USER_. Pemberian prefiks seperti itu terhadap nama sebuah static data dictionary views hanya ditujukan untuk menandakan hak akses user. View dengan nama yang mengandung masing-masing prefiks tersebut mempunyai pengertian seperti berikut ini : View dengan ALL_ dapat menunjukkan semua informasi yang hak aksesnya dimiliki oleh current user. Informasi tersebut adalah semua informasi objek pada schema dari user tersebut dan juga pada schema lainnya asalkan hak aksesnya dimiliki oleh user tersebut (termasuk PUBLIC object). View dengan prefiks DBA_ dapat menunjukkan semua informasi di database kepada seorang current user asalkan user tersebut mempunyai privilege SELECT_ANY_TABLE. Seorang user dengan role DBA otomatis mempunyai privilege tersebut karena privilege tersebut diberikan kepada role DBA pada saat system database diinstal.

20

View dengan prefiks USER_ dapat menunjukkan informasi objekobjek yang berada di dalam schema milik current user itu saja. Berikut ini diberikan tiga tabel yang menunjukkan static data

dictionary views static data dictionary views yang berhubungan dengan objek-objek database. Pada tabel 2.1 diperlihatkan daftar beberapa view berikut informasi yang dapat diberikan oleh tiap-tiap view tersebut. Nama view yang diawali oleh _ menandakan bahwa nama sebenarnya adalah diawali oleh ALL_,DBA_, atau USER_. Pada tabel 2.2 diperlihatkan sejumlah sinomim dari beberapastatic data dictionary views. Sinonim dari Data Dictionary Views Nama Sinonim CAT COLS DICT IND SEQ SYN TABS Sinonim dari USER_CATALOG USER_TAB_COLOMNS DICTIONARY USER_INDEXES USER_SEQUNCES USER_SYNONYMS USER_TABLES

Gunakan perintah DESC[RIBE] untuk mengetahui kolom-kolom apa saja yang disediakan oleh view-view diatas. Berikut ini sebuah contoh penggunan view USER_CONSTRAINTS untuk mengetahui constraint apa saja yang terdapat pada schema milik current user. Kolom-kolom yang ditampilkan adalah table_name,

constraint_type, constaint_name, dan status. Data dictionary juga digunakan untuk men-generate sebuah SQL statement, seperti yang ditunjukkan pada contoh berikut ini. Tujuan dari query tersebut adalah mendapatkan sekumpulan SQL statement yang dapat dipakai untuk menghapus semua view dan tabel pada schema milik current user. Hasil quer-nya dapat disimpan ke dalam sebuah file, tentunya setelah diedit seperlunya.

21

SQL> SELECT DROP TABLE || table_name || 2 3 4 5 CASCADE CONSTRAINT ; as drop_tables FROM CAT WHERE table_type IN ( TABLE , VIEW) ORDER BY table_type DESC ;

DROP_TABLES DROP TABLE PEMILIH CASCADE CONSTRAINT ; DROP TABLE ID_PEMILIH CASCADE CONSTRAINT ; DROP TABLE ID_PEMILIH CASCADE CONSTRAINT ; DROP TABLE ID_PEMILIH CASCADE CONSTRAINT ; DROP TABLE PETUGAS CASCADE CONSTRAINT ; DROP TABLE ID_TPS CASCADE CONSTRAINT ; DROP TABLE ID_PETUGAS CASCADE CONSTRAINT ; 8 rows selected Data dictionary views dan synonym-nya yang telah disebutkan di data. Pada tabel berikut ini diberikan daftar data dictionary views lainnya yang khusus menyimpan informasi mengenai role dan privilege. 2.2.7 Objek-Objek Database Objek-objek database oracle dapat dibagi atas dua kelompok, yakni schema object dan non-schema object.Apa yang dimaksud dengan schema? Sebuah schema adalah sekumpulan data yang kepemilikannya dipunyai oleh user database yang namanya sama dengan nama schema tersebut. Objek schema dapat dibuat dan dimodifikasi menggunakan DDL statement. Objek schema pada oracle diantaranya adalah: a. Index

b. Package c. Private Synonim

d. Sequence e. f. Stored procedure dan stored function Table

g. View

22

Objek non-schema juga dapat dibuat dan dimodifikasi menggunakan DDL statement, namun objek-objek tersebut tidak terdapat didalam suatu schema. Objek non-schema pada oracle diantaranya adalah: a. b. c. Public Synonim Tablespace User

2.2.8 Aturan Penamaan Objek Database Sebuah objek database dapat dibuat dan diberi nama oleh user yang berhak untuk melakukan hal tersebut. Pemberian nama terhadap objek tersebut mempunyai aturan-aturan khusus yang telah ditetapkan atau dibatasi oleh Oracle. Beberapa aturan-aturan tersebut dicantumkan dibawah ini. a. Nama objek tidak boleh lebih dari 30 byte dengan pengecualian nama database dan link database tidak melebihi 8 byte. b. Nama objek tidak boleh mengandung tanda petik tunggal (quotation mark). Penggunaan petik ganda diperbolehkan namun sangat tidak dianjurkan. c. Nama objek harus diawali dengan karakter alfabet.

d. Penamaan tidak membedakan huruf besar dengan huruf kecil (not casesensitive). e. Selain karakter pertama, nama objek boleh mengandung karakter alfanumerik, garis bawah atau underscores ( _ ), tanda dolar ($), dan tanda pound (#). Namun demikian, sangat dianjurkan untuk tidak menggunakan tanda dolar maupun tanda pound karena kedua karakter tersebut digunakan secara khusus oleh oracle untuk penamaan objek yang dibuat oleh sistem. f. Didalam satu schema, pada namespace yang sama tidak boleh ada nama objek yang sama. Pengelompokan namespace dapat dilihat pada gambar 3.1a. Setiap objek di dalam kotak yang sama berada dalam suatu namespace yang sama.

23

g. Di dalam satu database, tidak boleh ada nama objek non-schema yang sama pada namespace yang sama. Pengelompokan namespace dapat dilihat pada gambar 3.1b. h. Nama kolom di dalam satu tabel atau view tidak boleh ada yang sama. i. Procedure dan function didalam satu package boleh sama asalkan jumlah atau tipe data dari argumen-argumennya berbeda (disebut dengan istilah overloading). j. Hindari penggunaan kata yang diawali dengan SYS_ untuk nama sebuah objek schema. k. Nama objek tidak boleh sama dengan nama Oracle reserved words atau keywords. l. Jangan gunakan nama fungsi built-in atau tipe data built-in sebagai nama dari objek schema, bagian/anggota dari objek schema, function, atau procedure. m. Nama dari bagian/anggota sebuah abjek schema, misalnya nama kolom sebuah tabel boleh sama dengan beberapa Oracle keywords namun sangat tidak dianjurkan karena hal tersebut dapat menimbulkan kemungkinan tidak bekerjanya beberapa SQL statement terhadap objek tersebut.

Namespace schema Object

Namespace Non-Schema Object Namespace Objek Database

24

2.3

Stored Function Stored function tidak beda jauh dengan stored procedure, Perbedaan satu-satunya adalah stored function selalu mempunyai nilai balik. Untuk membedakan dengan function yang di dalam package, biasanya stored function disebut dengan istilah stand-alone stored function. 2.3.1 Membuat Function Pembuatan function sangat berguna dalam proses pengelolaan database anda.Dengan sekali membuat function anda dapat menggunakanya untuk keperluan yang sama pada blok-blok PL/SQL lainya, procedure atau dalam dalam function lainya statement yang digunakan dalam function mempunyai bentuk umum seperti berikut ini. CREATE [OR REPLACE] FUNCTION [schema.] function_name [({ argument [IN| OUT | IN OUT] datatype [DEFAULT value]}) RETURN datatype [AUTHID ] pl/sql_subprogram_body; Atau secara sederhana kerangka function adalah sebagai berikut: CREATE OR REPLACE FUNCTION nama_ function (parameter1,Parameter 2,..) Return tipe_data AS Variable1 type_data; Variable2 type_data; .. Begin Statement; . Return nilai_balik; End; Sepreti yang terlihat pada bentuk umum di atas, perbedaan CREATE FUNCTION dengan CREATE PROCEDURE hanya terletak pada kata kunci RETEUN saja.Kata kunci tersebut bertugas untuk menentukan tipe

25

data dari nilai balikan, dinyatakan oleh datatype setelah kata kunci RETURN.Perbedaan lainya adalah function dapat dipanggil dari SELECT dan DML statement. Statement RETURN type_data di atas menunjukkan bahwa function akan mengembalikan nilai dengan tipe data tertentu, sedangkan setatement RETURN nilai_balik berfungsi untuk mengembalikan nilai yang telah diproses dalam function Persyaratan bagi user untuk dapat membuat sebuah function sama dengan persyaratan yang berlaku untuk membuat procedure. Berikut ini contoh pembuatan sebuah function yang menerima nilai masukkan berupa sembarang angka dan memberikan nilai balikan berupa angka masukan yang digandakan SQL> CREATE OR REPLACE FUNCTION fnc_ganda (i_nbr_source NUMBER) RETURN NUMBER IS BEGIN RETURN(1*i_nbr_source); END;/ Berikut ini diberikan sebuah query yang mengeksekusi function FNC_GANDA SQL>SELECT fnc_ganda (125.75) FROM DUAL; 2.3.2 Function Tanpa Parameter Sama halnya dengan procedure tanpa parameter, function tanpa parameter akan memiliki sifat statis, karena nilai yang diproses di dalam function bersifat teteap. Contoh: CREATE OR REPLACE FUNCTION tulis RETURN Varchar2 AS BEGIN RETURN bahasa pemrograman: END: /

26

Eksekusi function di atas: Set serveroutput on; Declare X varchar2 (20); BEGIN x : = tulis; dbms_output.put_line (x); END 2.3.3 Function Dengan Parameter Pada function dengan parameter ini nilai yang dihasilkan memiliki sifat dinamis, karena pada saat pemanggilan function tersebut nilai parameternya dapat diubah-ubah sehingga hasil yang dihasilkan pun berubah. Contoh : Pembuatan function untuk menentukan sebuah bilangan bulat termasuk prima atau bukan. Create or replace function cek_prima (bil as integer) Return Boolean as Prima Boolean : = true; j := integer; begin If bil CREATE OR REPLACE FUNCTION fnc_pgw_get_name (i_no_peg VARCHAR2) RETURN VARCHAR2 IS Vc_nama VARCHAR2 (60); BEGIN SELECT INITCAP(SUBSTR(nama_dpn | | | | nama_blkg,1.60)) INTO vc_nama FROM PEGAWAI WHERE no_peg =i_no_peg; RETURN END; / Contoh penggunaan ditujukkan berikut. Agar hasil kerja function tersebut kelihatan, isilah tabel PEGAWAI terlebih dahulu. SQL>.SELECT no_peg, SUBSTR (fnc_pgw_get_name(no_peg),1,30) nama FROM PEGAWAI Perlu diinformasikan bahwa data dictionary views yang menyimpan informasi function.

31

b.

Mengcopile Ulang Dan Menghapus Function Cara untuk meng-Compile ulang dan menghapus function mirip sekali

dengan yang dipakai suatu procedure. Berikut ini bentuk umum statement untuk meng-Compile ulang sebuah function. ALTER FUNCTION[schema.] function COMPILE [DEBUG]; Persyaratan bagi user yang diperbolehkan melakukan kedua setatement di atas sama persyaratan yang berlaku buat procedure.

2.4

Procedure Procedure adalah sebuah blok PL/SQL yang dapat berdiri sendiri serta dikompilasi untuk selanjutnaya masuk ke dalam sekema databse. Nama procedure yang dibuat kemudian menjadi object dengan type procedure. Stored procedur adalah schema object yang berisi sekumpulan SQL statement dengan perintah-perintah PL/SQL yang disimpan dalam database dan bekerja sebagai sebuah unit yang dapat mengerjakan sekumpulan tugas. Stored procedure disebut dengan procedure saja. 2.4.1 MEMBUAT DAN MENJALANKAN PROCEDURE Untuk membuat sebuah procedure sebenarnya tidak berbeda dengan pembuatan blokPL/SQL biasa. Bentuk umum statement untuk membuat procedure adalah sebagai berikut : CRETAE [OR REPLACE] PROCEDURE [schema.] Procedure_nama [({argument [IN|OUT] Datatype [DEFAULT value ]})] [AUTOHID ] pl/sql_subprogram_body; Kata kunci OR REPLACE dapat digunakan untuk membuat ulang porocedure yang sudah ada sebelumnya.Dengan adanya kata kunci tersebut pemberian GRANT object privilege tidak perlu diulang lagi. Kata kunci ini biasanya digunakan untuk meng-Compile ulang procedure yang sudah ada karena terjadi perubahan definisi pada procedure tersebut.

32

Argumrn pada procedure bersifat pilihan. Apabila digunakan maka tipe data dari argument tersebut juga diberikan atribut IN, OUT atau IN OUT. Atribut IN berguna untuk menandakan bahwa argument tersebut adalah nilai masukkan sehinga ketika procedure tersebut dipanggil, argument yang diberikan harus berupa representasi dari sebuah nilai. OUT berfungsi untuk menandakan bahwa argument tersebut dapat diubah di dalam procedure. Sedangkan IN OUT adalah gabungan IN dan OUT. Jika IN, OUT dan IN OUT tidak disertakan, defaultnya adalah IN.jika yang digunakan adalah atribut IN, pada argument tersebut adalah diberikan kata kunci DEFAULT dan nilai defaultnya [AUTHID ] berfungsi untuk menetapkan dengan privilege apa dan di schema mana procedure tersebut dieksekusi. Jika mengunakan CURREN_USER, privilege dan schema yang digunakan selama perintah-perintah di dalam procedure tersebut dijalankan adalah privilege dan schema milik current user. Sedangkan DEFINE berarti user pemilik schema dimana procedure tersebut berada. Kata kunci IS atau AS digunakan untuk menandakan batas dimulainya isi dari PL/SQL subprogram. User dapat membuat procedure di schema miliknya jika user tersebut memiliki system privilege CREATE PROCEDURE. Seorang user dapat membuat procedure disembarang schema (menggunakan kata kunci OR REPLACE) apabila user tersebut memiliki privilege CREATE ANY PROCEDURE. Secara sederhana sybtax umum pembuatan procedure adalah: Create Or Replace procedure Nama_procedure (parameter1 type_data .) parameter1 type_data) AS

33

Variable_1 tipe_data; .. Variable_n tipe_data; Begin Statement_1; End; Adapun untuk mengeksekusi suatau procedure adalah yang tertera di bawah ini: EXECUTE NAMA_PROCEDURE (parameter1,);

Berikut ini sebuah contoh pembuatan procedure yang sederhana dan di namakan PRC_SEDERHANA. SQL> CREATE OR REPLACE PROCEDURE Prc_sederhana 15 BEGIN DBMS_OUTPUT.PUT_LINE(==========); DBMS_OUTPUT.PUT_LINE(procedure sederhana); DBMS_OUTPUT.PUT_LINE(==========); END: / Jika syntax yang dibuat tidak memiliki suatu kesalahan, maka akan tampil suatu pesan procedure createdyang menandakan bahwa procedure berhasil dibuat. Procedure dieksekusi pada SQL*Plus Worksheet menggunakan perintah execute seperti yang ditunjukkan berikut ini: SQL> serveroutput ON; SQL> execute prc_sederhana; Maka akan menghasilkan output: =================

34

Procedure sederhana ================= Perintah SET SERVEROUTPUT ON adalah perintah yang bertujuan untuk mengaktifkan parameter environment SERVEROUTPUT sehingga teks di dalam perintah DBMS_OUTPUT.PUT_LINE akan ditampilkan. a. Procedure Tanpa Parameter Pembuatan procedure yang tidak menggunakan parameter ini bersifat statis (teteap), artinya hasil yang diberikan bernilai sama. Contoh procedure untuk menghitung luas segitiga b. Procedura Dengan Parameter Tidak seperti procedure tanpa parameter, procedure dengan parameter ini dapat dikatakan mempunyai sifat dinamis,karena pada asaat pemanggilan procedure tersebut nilai parameter nya dapat diubah-ubah sehingga hasil yang diberikan pu berubah-ubah. Istilah parameter ini dibedakan menjadi parameter formal dan actual, yang dimaksud parameter formal adalah parameter yang di deklarasikan pada saat pembuatan procedure, sedang actual adalah parameter yang terdapat pada saat pemanggilan procedure. c. Penggunaan Procedure Untuk Data Base Procedure dalam oracle dapat digunakan untuk keperluan database. d. Compile Ulang Definisi Procedure Sama persis view, procedure kadang kala perlu di-compile ulang karena adanyaPerubahan yang telah dilakukan terhadap definisi object-object databaswe yang menjadi acuan procedure tersebut. Recompile tidak berarti mengubah isi dari procedure tersebut, tapi dimaksudkan untuk memastikan apakah procedure tersebutmasih valid atau tidak. Statement yang digunakan untuk mengcompile ulang tersebutt memiliki ketentuan umum seprrti berikut ini: ALTER [DEBUG]; PROCEDURE [SCHEMA.]procedure COMPILE

35

Pilihan debug dapat diberikan untuk meminta PL/SQL sompiler menggenerate dan menyimpan hasil compile. Stataement diatas hanya dapat dilakukan oleh pemilik chema tempat procedure tersebut berada atau user lainnya yang memiliki system privilege ALTER ANYPROCEDURE. Apabila hasil recompile tersebut menyatakan procedure yang decompile sudah tidakvalid procedure tersebut harus didefinisikan ulang kemudian menjalankan CREATE OR REPLACE statement e. Menghapus Procedure Menghapus procedure bias digunakan dengan menggunakan perintahDROP PROCEDURE dengan bentuk umum seperti di bawah ini : DROP PROCEDURE [SCHEMA.] procedure; Statement diatas hanya dapta dijalankan oleh pemilik schema atau user lainnya PROCEDURE. Berikut ini contoh untuk menghapus procedure yang memiliki system privilege DROP ANY

PRC_UPD_POSDESK; SQL> DROP PROCEDURE PRC_UPD_POSDESK;

Jika anda pergi ke bank untuk memindahkan uang dari nomor rekening 1 ke nomor rekening 2, maka unag tersebut akan di ambil dari nommor rekening 1 kemudian dimasukkan ke dalam nomor rekening 2. Pemasukan uang ke nomor rekening 2 harus terjadi serempak secara otomatis pada saat uang diambil dari nomor rekening 1. proses ini dinamakan transaksi, taitu suatu unit logika dimana satu seri perubahan database terjadi secara serempak untuk mengikuti suatu peraturan yang telah didefinisikan sebelumnya

36

2.5

Package 2.5.1 Package specification: Sering disebut package header atau kepala package, dimana didalamnya terdapat pendeklarasian variable-variable, procedure-procedure, atau fungsi-fungsi yang akan dibuat. Spesifikasi package dibuat dengan statement: CREATE OR REPLACE PACKAGE nama_package AS Nama_variable; Nama_variable; PROCEDURE nama_procedure; .. FUNCTION nama_fungsi RETURN tipe_data; END nama_package; 2.5.2 Package body Tempat dimana untuk mengimplementasikan atau mendeskripsikan procedur atau function yang telah dideklarasikan pada package specification Tubuh package dibuat dengan statement: CREATE OR REPLACE PACKAGE BODY nama_package AS PROCEDURE nama_procedure (parameter,) AS Begin Statement; End; FUNCTION nama_fungsi (parameter,) RETURN tipe_data AS Begin Statement; End; End nama_package;

37

2.5.3 Package DBMS_JOB Menangani job untuk penjadwalan proses yang akan dikerjakan server sesuai jadwal atau dijalankan sesuai kebutuhan. Contoh prosedur backup tabel: SQL>CREATE OR REPLACE PROCEDURE

boy.backup_mast_tabel IS BEGIN EXECUTE IMMEDIATE DROP TABLE stock2; EXECUTE IMMEDIATE ALTER TABLE stock1 RENAME TO stock2; EXECUTE IMMEDIATE CREATE TABLE stock1 AS SELECT * FROM stock; END;

2.6

Trigger 2.6.1 Data Base Trigger Trigger adalah sebuah stored procedure yang dieksekuasi pada saat terjadi modifikasi data pada table-table dalam database. Data pada sebuah table dikatakan telah dimodifikasi jika pada table tersebut dilakukan pemasukan data (INSERT), pengubahan data (UPDATE) atau penghapusan data (DELETE). Trigger diaktivasi berdasarkan event yang terjadi sehingga trigger berguna sekali dalam menjaga integritas dan konsistensi data. Trigger merupakan sebuah program unit yang disimpan di database dan hanya dapat dieksekusi (fired) secara implicit oleh Oracle server menurut event yang terjadi pada obyek acuan trigger tersebut. Trigger dapat berisi SQL, PL/SQL dan java statement. Selain itu juga dapat memanggil method yang ditulis dengan bahasa C. Trigger mempunyai banyak kegunaan, beberapa diantaranya ditulis sebagai berikut: Menetukan nilai kolom-kolom tertentu secara otomatis.

38

Menghindari transaksi yang tidak valid. Membuat autorisasi security yang kompleks. Membuat business role yang kompleks. Trigger hanya dapat mengeksekusi secara implicit oleh Oracle server. Eksekusi trigger sendiri dapat dipicu (triggered) oleh salah satu event berikut: DML event, yaitu INSERT, UPDATE atau DELETE statement DDL event, yaitu CREATE, ALTER atau DROP statement Database event, seperti database startup atau shutdown, munculnya error message tertentu, atau user event (saat user logon atau logoff) Di bawah ini ada 4 tipe trigger yang mengikuti event pada table: Before, pada tipe ini trigger akan diaktifkan sekali sebelum suatu perintah dilaksanakan. Before...for each row, pada tipe ini trigger akan diaktifkan sebelum setiap baris mendapat perubahan. Alter... for each row, pada tipe ini trigger akan diaktifkan setelah setiap mendapat perubahan. After, pada tipe ini trigger akan diaktifkan sekelai setelah perintah dilaknakan. Walaupun trigger memiliki banyak kegunaan, namun berhati-hatilah membuat trigger pada database. Semakin banyak trigger semakin sulit mengaturnya sebab pengeksekusian trigger biasanya mengacu pada event pemicu muncul. Pengaturan trigger-trigger dengan cara yang jelek dapat mengakibatkan suatu proses beruntun sehingga seluruh proses keseluruhan manjadi lambat atau bahkan looping terus tidak akan berhenti. Misalnya sebuah insert statement pada table T1 memicu bekerja trigger TRG1. Proses yang dilakukan trigger TRG1 adalah meng-update table T2. Pada table T2 terdapat trigger TRG2 yang pemicunya adalah UPDATE statement dengan demikian, trigger TRG2 juga akan bekerja. Demikian seterusnya.

39

2.6.2 CREATE TRIGGER STATEMENT Oracle telah menyediakan statement CREATE TRIGGER untu membuat sebuag trigger yang kemudian akan dieksekusi berdasarkan event before atau after proses modifikasi data. Sintax umum untuk pembuatan Trigger adalah sebagai berikut: CREATE OR REPLACE TRIGGER nama_trigger (BEFORE|AFTER) (INSERT|UPDATE|DELETE nama_table FOR EACH ROW WHEN {kondisi} DECLARE Variable_1; ................. BEGIN Statement_1; ................. END; OF nama_kolom|DELETE) ON

Secara umum kemungkinan event trigger yang terdapat dalam sebuah database adalah seperti yang ditunjukan oleh table berikut: NAMA BEFORE INSERT KETERANGAN Diaktivasi sekali sebelum

statement insert BEFORE EACH ROW AFTER INSERT INSERT FOR Diaktivasi sekali sebelum setiap baris di-insert Diaktivasi sekali setelah statement insert BEFORE UPDATE BEFORE UPDATE FOR Diaktivasi sekali sebelum update Diaktivasi sekali sebelum setiap

40

EACH ROW AFTER UPDATE

baris di-update Diaktivasi sekali setelah statement update

BEFORE DELETE

Diaktivasi

sekali

sebelum

statement delete AFTER DELETE Diaktivasi sekali setelah statement delete AFTER DELETE FOR EACH ROW AFTER UPDATE FOR EACH ROW AFTER INSERT FOR EACH ROW Diaktivasi sekali setelah setiap baris terbuat Diaktivasi sekali setelah setiap baris diubah Diaktivasi sekali setelah setiap baris di-insert

Sebelum membuat trigger, terlebih dahulu sebuah table STOCK yang terdiri dari 3 field yaitu kode, nama_barang dan jumlah_stock dengan sintax SQL berikut: CREATE TABLE STOK { KODE CHAR (4) NOT NULL PRIMARY KEY, NAMA_BARANG VARCHAR (25), JUMLAH_STOK NUMBER (10), }; Kemudian masukkan data-data dummy dengan menggunakan sintax SQL di bawah ini: INSERT INTO STOK VALUES (0001,TELEVISI,25); INSERT INTO STOK VALUES (0002,RADIO TRANSISTOR,50); INSERT INTO STOK VALUES (0003,KIPAS ANGIN,30); INSERT INTO STOK VALUES (0004,TAPE,35); INSERT INTO STOK VALUES (0005,AC,15);

41

Jika telah selesai membuat table dan mengisikan data-data dummy a. Mengecek Pengaruh Triger Trigger yang telah dibuat tadi diatas telah tersimpan dalam schema database dan akan dipanggil atau dieksekusi sesuai dengan event yang tejadi. Sebagai bukti pernayataan tersebut di bawah ini disajikan dengan mengunakan contoh untuk pengecekan trigger yang telah didefinisikan sebelumnya. Contoh 1 : Mengecek jalanya trigger TGR1 dengan cara memasukkan sebuah data baru pada tble stok dengan menggunakan sintaks SQL seperti dibawah ini: SQL > INSERT INTO STOK VALUES (0006,KOMPUTER,10) Perlu diperhatikan bahwa teks trigger before insert dilaksanakan yang muncul pada saat melakukan proses insert adalah hasil pengeksekusian trigger TGR1 yang telah dibuat sebelumnya. Pada trigger TGR1 telah sebelumnya. Pada trigger TGR1 telah mendefinisikan event BEFORE INSERT ON STOK artnya statement-statement yang terdapat pada badan trigger tersebut akan dieksekusi sesaat sebelum sebuah baris baru dimasukkan kedalam table STOK. Hasil yang akan tampak pada layar adalah akan dilakukan penambahan data pada table STOK. b. Mendapatkan nilai kolom dengan menggunakan alias Mempelajari trigger tidak mungkin terlepas dari kehadiran alias atau referensi, yaitu alat yang digunakan untuk mendapatkan nilai-nilai kolom yang terdapat pada table. Oracle menyediahkan dua buah alias yaitu: new dan: old. Alias: new digunakan untuk mengambil nilai kolom dari baris yang dimasukkan kedalam sebuah table. Sedangkan Alias dimasukkan kedalam sebuah table. Sedangkan alias :old digunakan untuk mengambil nilai kolm dari baris yang tersimpan didalam sebuah table.

42

c. Membatasi Sebuah Baris Trigger Kita dapat membatasi suatu trigger hanya boleh dijalankan sesuai dengan kondisi tertentu, salah satu caranya yaitu menggunakan WHEN. Contoh : BEFORE INSERT OR UPDATE OF salary ON employes FOR EACH ROW WHEN (NEW.job_id = SA_REP) BEGIN IF INSERTING THEN :NEW.commission_pct := 0; ELSEIF :OOLD.commission_pct IS NULL THEN :NEW.commission_PCT :=0; ELSE :NEW.commission_pct :=0 :OLD.commission_pct+0.05; END IF; END;

d. Enable dan Disable Trigger Trigger yang sudah dibuat dapat dienable atau di disable sesuai dengan kebutuhan kita. Syntax untuk enable atau disable sebuah trigger adalah ALTER TRIGGER trigger_name DISABLE; ALTER TRIGGER trigger_name ENABLE; e. Menghapus Trigger Untuk menghapus trigger dari database, gunakan pernyataan DROP TRIGGER. Berikut adalah syntax untuk menghapus trigger dari database: DROP TRIGGER trigger_name;

43

2.7

Pemrograman PHP

2.7.1 Pengertian PHP PHP (akronim dari PHP Hypertext Preprocessor) yang merupakan bahasa pemrogramman berbasis web yang memiliki kemampuan untuk memproses data dinamis. PHP dikatakan sebagai sebuah server-side embedded script language artinya sintaks-sintaks dan perintah yang kita berikan akan sepenuhnya dijalankan oleh server tetapi disertakan pada halaman HTML biasa. Aplikasi-aplikasi yang dibangun oleh PHP pada umumnya akan memberikan hasil pada web browser, tetapi prosesnya secara keseluruhan dijalankan di server. Pada prinsipnya server akan bekerja apabila ada permintaan dari client. Dalam hal ini client menggunakan kode-kode PHP untuk mengirimkan permintaan ke server. Ketika menggunakan PHP sebagai server-side embedded script language maka server akan melakukan hal-hal sebagai berikut : 1. Membaca permintaan dari client/browser 2. Mencari halaman/page di server 3. Melakukan instruksi yang diberikan oleh PHP untuk melakukan modifikasi pada halaman/page. 4. Mengirim kembali halaman tersebut kepada client melalui internet atau intranet. Mengapa PHP ? 1. PHP dapat dijalankan pada platform yang berbeda-beda (Windows, Linux, Unix, etc.) 2. PHP merupakan web scripting open source 3. PHP mudah dipelajari Syntax PHP Kode PHP disimpan sebagai plain text dalam format ASCII, sehingga

44

kode PHP dapat ditulis hampir di semua editor text seperti windows notepad, windows wordpad, dll. Kode PHP adalah kode yang disertakan di sebuah halaman HTML dan kode tersebut dijalankan oleh server sebelum dikirim ke browser. Contoh file PHP (contoh.php): . Blok scripting PHP dapat ditempatkan dimana saja di dalam dokumen. Pada beberapa server yang mendukung, blok scripting PHP dapat diawali dengan .

Namun, untuk kompatibilitas maksimum, sebaiknya menggunakan bentuk yang standar (). Setiap baris kode PHP harus diakhiri dengan semikolon (;). Semikolon ini merupakan separator yang digunakan untuk

membedakan satu instruksi dengan instruksi lainnya. PHP menggunakan // untuk membuat komentar baris tunggal atau /* dan */ untuk membuat suatu blok komentar.

45

2.7.2 Variable Dalam PHP setiap nama variable diawali tanda dollar ($). Misalnya nama variable a dalam PHP ditulis dengan $a. Jenis suatu variable ditentukan

pada saat jalannya program dan tergantung pada konteks yang digunakan. File contoh2.php:File contoh2.php: File contoh3.php:

2.7.3 Struktur Kontrol Konstruksi IF digunakan untuk melakukan eksekusi suatu statement secara bersyarat. Contoh nya adalah sebagai berikut:

46

2.7.4 WHILE Bentuk dasar dari statement While adalah sebagai berikut:while (syarat) { statement }

Arti dari statemant While adalah memberikan perintah untuk menjalankan statement dibawahnya secara berulang-ulang, selama syaratnya terpenuhi. Contoh :

2.7.5 FOR Cara penulisan statement FOR adalah sebagai berikut:for (ekspresi1; ekspresi2 ; ekspresi3) statement

ekspresi1 menunjukkan nilai awal untuk suatu variable. ekspresi2 menunjukkan syarat yang harus terpenuhi untuk menjalankan statement. ekspresi3 menunjukkan pertambahan nilai untuk suatu variable. Contoh :

2.7.6 SWITCH Statement SWITCH digunakan untuk membandingkan suatu variable dengan beberapa nilai serta menjalankan statement tertentu jika nilai variable sama dengan nilai yang dibandingkan. Struktur Switch adalah sebagai berikut:switch (variable) case nilai: statement case nilai: statemant case nilai: statement . . .

Contoh penggunaan swich :

2.7.7 REQUIRE Statement Require digunakan untuk membaca nilai variable dan fungsifungsi dari sebuah file lain. Cara penulisan statement Require adalah:require(namafile);

Statement Require ini tidak dapat dimasukkan diadalam suatu struktur looping misalnya while atau for. Karena hanya memperbolehkan pemangggilan file yang sama tersebut hanya sekali saja. File contoh1.php:

File contoh2.php:

2.7.8 INCLUDE Statement Include akan menyertakan isi suatu file tertentu. Include dapat diletakkan didalam suatu looping misalkan dalam statement for atau while. File contoh.php:

File contoh1.php:

50

BAB III ANALISA DAN PERENCANAAN SYSTEM

3.1

URAIAN SYSTEM User terdiri dari tiga bagian, yaitu admin, pimpinan, dan karyawan. Masing-masing user diharuskan login terlebih dahulu untuk bisa mengakses data. Admin bertugas untuk mengelola data-data karyawan. Karyawan bertugas untuk mengelola data-data barang dan data penjualan, sedangkan pimpinan bertugas untuk memeriksa laporan penjualan.

3.2

DIAGRAM KONTEKSInfo Data Karyawan Hak Ak ses Data Karyawan Login Admin

Pimpinan

0

Login Data Customer

Login Laporan Penjualan Hak Ak ses Info Laporan Penjualan Sistem Informasi Counter HP

Data Barang Data Tipe Barang Data Stok Barang Data Supplier Data Pengembalian

+

Data Penjualan

Info Data Customer Info Data Barang Info Data Tipe Barang Karyawan Info Data Stok Barang Info Data Supplier Info Data Pengembalian

Info Data Penjualan

Gambar 3.1 : Diagram Konteks Sistem Informasi Counter Hp

51

3.3

DIAGRAM BERJENJANG0

Sistem Informasi Counter HP

TOP LEVEL Level 0

1P

2 Maintenance

3P Penjualan Level 1

Login

2.1 Data Karyawan

2.2 Data Customer

2.3 Data Barang

2.4 Data Tipe Barang

2.5 Data Stok Barang

2.6 Data Supplier

2.7 Data Pengembalian

Level 2 2.1.1P Insert 2.1.2P Update 2.1.3P Delete 2.2.1P Insert 2.2.2P Update 2.2.3P Delete 2.3.1P Insert 2.3.2P Update 2.3.3P Delete 2.4.1P Insert 2.4.2P Update 2.4.3P Delete 2.5.1P Insert 2.5.2P Update 2.5.3P Delete 2.6.1P Insert 2.6.2P Update 2.6.3P Delete 2.7.1P Insert 2.7.2P Update 2.7.3P Delete Level 3

Gambar 3.2 : Diagram Berjenjang Sistem Informasi Counter Hp

52

3.4

DFD (Data Flow Diagram) 3.4.1 DFD Level 1 Proses Login, Proses Maintenance, dan Proses Penjualan

Gambar 3.3 : Diagram DFD Level 1 Sistem Informasi Counter Hp

53

3.4.2 DFD Level 2 subproses maintenance

Gambar 3.4 : Diagram DFD Level 2 subproses maintenance

3.4.3 DFD Level 3 subproses Insert, Update, Delete 3.4.3.1 Data Karyawaninsert data karyawan Status insert data karyawan 3.2.1.1P insert insert data karyawan Status insert data karyawan

update data karyawan Admin Status update data karyawan

3.2.1.2P update

update data karyawan update data data karyawan 1 Data karyawan

delete data karyawan Status delete data karyawan

3.2.1.3P delete

delete data karyawan Status delete data karyawan

Gambar 3.3 : Diagram DFD Level 3 subproses insert, update, delete

54

3.4.3.2 Data Customerinsert data customer Status insert data customer 3.2.2.1P insert insert data customer Status insert data customer

update data customer pegawai Status update data customer

3.2.2.2P update

update data customer update data data customer 2 Data customer

delete data customer Status delete data customer

3.2.2.3P delete

delete data customer Status delete data customer

Gambar 3.4 : Diagram DFD Level 2 subproses insert, update, delete data customer

3.4.3.3

Data Barang3.2.3.1P insert insert data barang Status insert data barang Status insert data barang

insert data barang

update data barang pegawai Status update data barang

3.2.3.2P update

update data barang update data data barang 3 Data barang

delete data barang Status delete data barang

3.2.3.3P delete

delete data barang Status delete data barang

Gambar 3.4 : Diagram DFD Level 2 subproses insert, update, delete data barang

3.4.3.4

Data Tipe Barang3.2.4.1P insert insert data tipe barang Status insert data tipe barang

insert data tipe barang Status insert data tipe barang

update data tipe barang karyawan Status update data tipe barang

3.2.4.2P update

update data tipe barang update data data tipe barang 4 Data tipe barang

delete data tipe barang Status delete data tipe barang

3.2.4.3P delete

delete data tipe barang Status delete data tipe barang

Gambar 3.4 : Diagram DFD Level 2 subproses insert, update, delete data tipe barang

55

3.4.3.5 Data Stok Baranginsert data stok barang Status insert data stok barang 3.2.5.1P insert insert data stok barang Status insert data stok barang

update data stok barang kryawan Status update data stok barang

3.2.5.2P update

update data stok barang update data data stok barang 5 Data stok barang

delete data stok barang Status delete data stok barang

3.2.5.3P delete

delete data stok barang Status delete data stok barang

Gambar 3.4 : Diagram DFD Level 2 subproses insert, update, delete data stok barang

3.4.3.6 Data Supplierinsert data supplier Status insert data supplier 3.2.6.1P insert insert data supplier Status insert data supplier

update data supplier karyawan Status update data supplier

3.2.6.2P update

update data supplier update data data supplier 6 Data supplier

delete data supplier Status delete data supplier

3.2.6.3P delete

delete data supplier Status delete data supplier

Gambar 3.4 : Diagram DFD Level 2 subproses insert, update, delete data stok supplier

3.4.3.7 Data Pengembalianinsert data pangembalian Status insert data pangembalian 3.2.7.1P insert insert data pangembalian Status insert data pangembalian

update data pangembalian karyawan Status update data pangembalian

3.2.7.2P update

update data pangembalian update data data pangembalian 7 Data pangembalian

delete data pangembalian Status delete data pangembalian

3.2.7.3P delete

delete data pangembalian Status delete data pangembalian

Gambar 3.4 : Diagram DFD Level 2 subproses insert, update, delete data stok pengembalian 56

3.5

customer Variable characters (8) id_customer Variable characters (20) nama_customer Variable characters (30) alamat_customer Variable characters (13) notelp_customer Identifier_1

melakukan

karyawan penjualan melayani Variable characters (8) id_penjualan Date tanggal_penjualan Integer jumlah_penjualan Integer harga_penjualan Identifier_1 memiliki2 barang

Variable characters (8) id_karyawan Variable characters (20) nama_karyawan Variable characters (30) alamat_karyawan Variable characters (13) notelp_karyawan

Conceptual Data Model (CDM)

Identifier_1

melakukan1

pengembalian memiliki5

tipe_barang memiliki4 Variable characters (8) id_tipe_barang Variable characters (15) nama_tpe_barangl Identifier_1

Variable characters (8) id_pengembalian Date tanggal_pengembalian Integer jumlah_sisa Identifier_1

Variable characters (8) id_barang Variable characters (15) nama_barang Integer harga_barang Integer jml_barang

Identifier_1

melayani1

memiliki3

supplier login username Variable characters (30) Variable characters (30) name Variable characters (15) password Identifier_1

stok_barang Variable characters (8) id_stok_barang Integer jumlah_stok_barang Identifier_1

Variable characters (8) id_supplier Variable characters (20) nama_supplier Variable characters (30) alamat_supplier Variable characters (13) notelp

Identifier_1

57

3.6

customer id_customer nama_customer alamat_customer notelp_customer varchar(8) varchar(20) varchar(30) varchar(13)

FK_TBL_PENJ_MELAKUKAN_TBL_CUST

penjualan

karyawan FK_TBL_PENJ_MELAYANI_TBL_KARY id_penjualan id_barang id_karyawan id_customer tanggal_penjualan jumlah_penjualan harga_penjualan FK_TBL_PENJ_MEMILIKI2_TBL_BARA barang FK_TBL_PENG_MEMILIKI5_TBL_BARA id_barang nama_barang harga_barang jml_barang varchar(8) varchar(15) integer integer FK_TBL_TIPE_MEMILIKI4_TBL_BARA varchar(8) varchar(8) varchar(8) varchar(8) date integer integer

Physical Data Model (PDM)

id_karyawan nama_karyawan alamat_karyawan notelp_karyawan

varchar(8) varchar(20) varchar(30) varchar(13)

FK_TBL_PENG_MELAKUKAN_TBL_KARY

pengembalian tipe_barang varchar(8) id_tipe_barang varchar(8) id_barang nama_tpe_barangl varchar(15)

id_pengembalian id_karyawan id_barang id_supplier tanggal_pengembalian jumlah_sisa

varchar(8) varchar(8) varchar(8) varchar(8) date integer

FK_TBL_STOK_MEMILIKI3_TBL_TIPE

FK_TBL_PENG_MELAYANI1_TBL_SUPP stok_barang

supplier login username varchar(30) varchar(30) name password varchar(15)

id_supplier nama_supplier alamat_supplier notelp

varchar(8) varchar(20) varchar(30) varchar(13)

varchar(8) id_stok_barang varchar(8) id_tipe_barang jumlah_stok_barang integer

58

3.7

DESAIN SYSTEM DATABASE 3.7.1 SKEMA DATABASE

3.7.2 STORED FUNCTION a. Tabel Karyawan

b. Tabel Customer

59

c. Tabel Barang

3.7.3 STORED PROCEDURE a. Tabel Karyawan

60

b. Tabel Customer

c. Tabel Barang

d. Tabel Tipe Barang

e. Tabel Stok Barang

61

f. Tabel Supplier

3.7.4 TRIGGER Trigger untuk mengurangi jumlah barang pada tabel setelah ada proses insert pada tabel penjualan :

62

BAB IV IMPLEMENTASI

Pada sistem informasi counter hp, untuk mengakses suatu database diperlukan suatu program aplikasi yang dapat melakukan hal tersebut. Program aplikasi untuk pengaksesan database tersebut dibuat dengan menggunakan bahasa pemrograman PHP. Program aplikasi tersebut terdiri dari beberapa window, dimana masing-masing window memiliki fungsi dan hak akses yang berbedabeda. Berikut adalah macam-macam window yang ada di Sistem Informasi Counter HP Mobile Phone : 4.1 Halaman utama

Halaman utama ditampilkan saat pertama kali mengakses Sistem Informasi Counter HP Mobile Phone. Pada halaman utama ini terdapat menu login yang terdiri dari tiga user, yaitu admin, karyawan, dan pimpinan.

Gambar 4.1: halaman utama Login Admin Ketika memilih login sebagai admin, maka akan ditampilkan form login untuk admin. Berikut tampilan dari form login admin :

63

Gambar 4.2 : From Login Admin Login Karyawan Begitu juga dengan login karyawan, ketika memilih login sebagai karyawan, maka akan ditampilkan form login karyawan sebagai berikut :

Gambar 4.3 : From Login Karyawan Login Pimpinan Ketika memilih login sebagai pimpinan, maka akan ditampilkan form login pimpinan sebagai berikut :

Gambar 4.4 : From Login Pimpinan

64

4.2

Menu Admin

Home Pada halaman admin terdapat dua menu, yaitu home dan Data Karyawan. Menu home berisi ucapan selamat datang kepada admin.

Gambar 4.5 : Menu Admin Data Karyawan Pada data karyawan, admin dapat melakukan operasi Data Manipulation Language(DML) untuk mengelola data karyawan.

Gambar 4.6 : Data Karyawan

65

Insert Data Karyawan Insert data karyawan dapat dilakukan dengan klik icon Add New item, kemuadian akan muncul form input data karyawan.

Gambar 4.7 : Insert Data Karyawan Edit Data Karyawan Untuk melakukan editing data yang telah diinputkan, klik icon pensil yang berada dalam kolom pada masing-masing baris data. Untuk menyimpan data yang telah di edit klik button save.

Gambar 4.8 : Edit Data Karyawan Delete Data Karyawan Untuk melakukan penghapusan data, klik icon trace yang berada dalam kolom pada masing-masing baris data. 66

Gambar 4.9 : Delete Data Karyawan

Setelah melakukan menejemen data karyawan, jika admin logout maka akan kembali ke halaman utama.

4.3

Tampilan Menu Karyawan

Home Pada tampilan Home karyawan terdapat menu Data Customer, Menejmen Barang (Data Barang, Data Tipe Barang, Data Stok Barang), Data Supplier, Data Penjualan, dan Data Pengembalian.

Gambar 4.9 : Home Karyawan 67

Data Customer Data customer berisi tentang data identitas customer yang pernah melakukan pembelian barang di Counter HP Mobile Phone. Data customer dapat dimanipulasi (insert, update, delete) oleh karyawan dengan menggunakan icon yang telah disediakan sesuai dengan kebutuhan manipulasi data.

Gambar 4.10 : Data Customer Insert Data Customer Insert data customer dapat dilakukan dengan klik icon Add New item, kemuadian akan muncul form input data customer.

Gambar 4.10 :Input Data Customer 68

Edit Data Customer Untuk melakukan editing data yang telah diinputkan, klik icon pensil yang berada dalam kolom pada masing-masing baris data. Untuk menyimpan data yang telah di edit klik button save.

Gambar 4.11 : Edit Data Customer Delete Data Customer Untuk melakukan penghapusan data, klik icon trace yang berada dalam kolom pada masing-masing baris data.

Gambar 4.12 : Delete Data Customer

69

Menejemen Barang Data Barang Data Barang berisi data-data barang yang dijual di Counter HP Mobile Phone. Data Barang dapat dimanipulasi (insert, update, delete) oleh karyawan dengan menggunakan icon yang telah disediakan sesuai dengan kebutuhan manipulasi data.

Gambar 4.13 : Data Barang

Untuk melakukan manipulasi data pada tabel barang, dapat dilakukan dengan klik icon sesuai dengan kebutuhan manipulasi data pada data barang. Langkah-langkahnya sama dengan manipulasi data pada data customer. Kolom jumlah barang pada tabel barang terdapat action trigger pengurangan barang jika terjadi transaksi penjualan. Jadi, jika ada penginputan data pada tabel penjualan dengan menginputkan jumlah penjualan pada tabel penjualan, maka jumlah barang pada tabel barang akan berkurang.

70

Data Tipe Barang Data tipe barang berisi data-data tipe barang yang dijual di Counter HP Mobile Phone. Data tipe barang dapat dimanipulasi (insert, update, delete) oleh karyawan dengan menggunakan icon yang telah disediakan sesuai dengan kebutuhan manipulasi data. Langkah-langkah yang dilakukan untuk manipulasi data tipe barang sama dengan langkah-langkah manipulasi data pada data customer.

Gambar 4.14 : Data Tipe Barang Data Stok Barang Data stok barang berisi data-data stok barang yang dijual di Counter HP Mobile Phone. Data stok barang juga dapat dimanipulasi (insert, update, delete) oleh karyawan dengan menggunakan icon yang telah disediakan sesuai dengan kebutuhan manipulasi data. Langkah-langkah yang dilakukan untuk manipulasi data tipe barang sama dengan langkah-langkah manipulasi data pada data customer.

71

Gambar 4.15 : Data Stok Barang Data Supplier Data supplier berisi data-data identitas yang menyuplai barang di counter hp Mobile Phone. Untuk melakukan dimanipulasi data (insert, update, delete) pada data supplier dapat dilakukan dengan menggunakan icon yang telah disediakan sesuai dengan kebutuhan manipulasi data. Langkahlangkah yang dilakukan untuk manipulasi data tipe barang sama dengan langkah-langkah manipulasi data pada data customer.

Gambar 4.16 : Data Supplier

72

Data penjualan Data penjualan berisi data-data identitas penjualan barang di counter hp Mobile Phone. Untuk melakukan dimanipulasi data (insert, update, delete) pada data penjualan dapat dilakukan dengan menggunakan icon yang telah disediakan sesuai dengan kebutuhan manipulasi data. Langkah-langkah yang dilakukan untuk manipulasi data tipe barang sama dengan langkahlangkah manipulasi data pada data customer.

Gambar 4.16 : Data Penjualan

Pada kolom jumlah penjualan terdapat action trigger pengurangan barang. Ketika ada penginputan data pada tabel penjualan dan mengisikan jumlah penjualan, maka data jumlah barang pada kolom jumlah barang pada tabel barang akan berkurang. Data pengembalian Data pengembalian berisi data-data pengembalian barang yang tidak laku kepada supplier. Untuk melakukan dimanipulasi data (insert, update, delete) pada data penjualan dapat dilakukan dengan menggunakan icon yang telah disediakan sesuai dengan kebutuhan manipulasi data. Langkah-langkah

73

yang dilakukan untuk manipulasi data tipe barang sama dengan langkahlangkah manipulasi data pada data customer.

Gambar 4.17 : Data Pengembalian

4.4

Tampilan Menu Pimpinan

Home Home merupakan tampilan awal pimpinan ketika pimpinan sudah melakukan login. Pimpinan merupakan salah satu user pada Sistem Informasi Counter hp Mobile Phone. Pimpinan hanya mempunyai hak akses untuk melihat data transaksi penjualan. Berikut adalah tampilan home untuk pimpinan :

Gambar 4.18 : Tampilan Menu Pimpinan 74

Laporan Penjualan Pada menu laporan penjualan, pimpinan dapat mengecek data penjualan di Counter Hp Mobile Phone. Laporan penjualan disusun berdasarkan data penjualan. Data yang ditampilkan adalah hasil join dari tabel customer, karyawan, dan tabel barang.

Gambar 4.19 : Tampilan Menu Pimpinan

Untuk semua user, jika sudah logout dari Sistem Informasi Counter Hp Mobile Phone, maka akan kembali ke tampilan awal sistem. Untuk dapat melakukan manipulasi data-data pada setiap user, maka diharuskan login terlebih dahulu.

75

BAB V PENUTUP

5.1

Kesimpulan Berdasarkan permasalahan yang dibahas, yaitu tentang rancang bangun sistem informasi counter hp, maka didapat bebrapa kesimpulan sebagai berikut : 1. Sistem ini dibuat untuk membantu karyawan dalam melakukan menejemen data-data penjualan berbasis komputerisasi. 2. Sistem yang telah dibuat dapat memudahkan pimpinan untuk memeriksa laporan penjualan. 3. Sistem informasi yang telah dibuat disesuaikan dengan kebutuhan instansi yang dibutuhkan.

5.2

Saran Untuk mempermudah semua transaksi dan lancarnya penggunaan aplikasi ini, maka diharapkan agar : 1. Perlu pengembangan lebih lanjut untuk tingkat keamanan dari aplikasi ini. Karena aplikasi ini masih mempunyai sistem keamanan yang rendah.

76

DAFTAR PUSTAKA

Fathansyah, Buku Teks Komputer Basis Data, Informatika, Bandung, 1999 Fathansyah, Buku Teks Komputer Basis Data Lanjutan, Informatika, Bandung, 1999

Heryanto Imam, Raharjo Budi, Menguasai Oracle SQL dan PL/SQL, Informatika, Bandung, 2006

M David, Kroenke, Database Processing Jilid 1, Erlangga, 2006

Kadir Abdul, Dasar Perancangan dan Implementasi Database Relational, Andoffset, 2005

77

LAMPIRAN LISTING PROGRAM

Lampiran 1. listing program koneksi PHP KE Oracle

78

Lampiran 2. listing program form login admin Login Admin Username: Password:

79

Lampiran 3. Listing program proses login admin

80

Lampiran 4.listing program login karyawan Login Karyawan Username: Password:

81

Lampiran 5. Proses login karyawan

82

Lampiran 6. Listing program pimpinan Login Pimpinan Username: Password:

83

Lampiran 7. Proses login pimpinan

84

Lampiran 8. Listing Program Data KaryawanData Karyawan id_karyawan nama_karyawan alamat_karyawan notelp_karyawan Edit Delete

85