BAB 2 LANDASAN TEORI
2.1
Pendekatan Basis Data 2.1.1
Basis Data
2.1.1.1 Definisi Basis Data Pengertian basis data menurut Whitten, Bentley, dan Dittman (2004, p548), basis data adalah sekumpulan file yang saling berhubungan. Pengertian basis data menurut David M. Kroenke (2002, p258), basis data adalah sekumpulan record – record yang terintegrasi yang dapat menjelaskan dirinya sendiri. Basis data menggambarkan dirinya sendiri karena berisi sebuah deskripsi tentang dari dirinya sendiri dalam sebuah kamus data. Basis data adalah sekumpulan record–record yang terintegrasi karena adanya hubungan antara record – record yang disimpan di dalam database. Pengertian basis data menurut Connolly dan Begg (2002, p14), basis data adalah penggunaan bersama dari data yang terhubung secara logic dan deskripsi dari data, yang dirancang untuk keperluan informasi dari suatu perusahaan. Dalam praktek, penggunaan istilah basis data menurut Elmasri (2000, p4) lebih dibatasi pada arti implisit yang khusus yaitu : 1. Basis data merupakan penyajian suatu aspek dari dunia nyata (“real world” atau “miniworld”). 7
8 2. Basis data merupakan kumpulan data dari berbagai sumber yang secara logika mempunyai arti implisit. Sehingga data yang terkumpul secara acak dan tanpa mempunyai arti, tidak dapat disebut basis data. 3. Basis data perlu dirancang, dibangun, dan data dikumpulkan untuk suatu tujuan. Basis data dapat digunakan oleh beberapa pemakai dan beberapa aplikasi yang sesuai dengan kepentingan pemakai. Dari batasan tersebut dapat dikatakan bahwa basis data mempunyai berbagai sumber data dalam pengumpulan data bervariasi derajat interaksi kejadian dari dunia nyata, dirancang dan dibangun agar dapat digunakan oleh beberapa pemakai untuk berbagai kepentingan. Jadi dapat disimpulkan, basis data adalah sekumpulan file yang saling berhubungan / terintegrasi yang dapat menggambarkan dirinya sendiri yang diatur dan dirancang sedemikian rupa untuk keperluan informasi dari suatu perusahaan atau organisasi.
2.1.1.2 Konsep Basis Data Menurut McLeod (2001, p259), dua tujuan konsep basis data adalah meminimumkan pengulangan data (data redundancy) dan mencapai independensi data. Pengulangan data (data redundancy) adalah duplikasi data, artinya data yang sama disimpan dalam beberapa file. Independensi data adalah kemampuan untuk membuat
9 perubahan dalam struktur data tanpa membuat perubahan pada program yang memproses data. Independensi data dicapai dengan menempatkan spesifikasi data dalam tabel dan kamus yang terpisah secara fisik dari program. Perubahan pada struktur data hanya dilakukan sekali, yaitu dalam tabel.
2.1.1.3 Komponen Basis Data Menurut Kroenke (2002, pp25 – 29), basis data berisi empat elemen utama, yaitu: 1. User data Sebagian besar basis data menggambarkan user data sebagai relasi dan dipertimbangkan untuk menjadi sebuah tabel dari data. Kolom – kolom dari tabel berisi field atau attribute – attribute dan baris dari tabel berisi record untuk entitas tertentu dalam lingkungan bisnis. Tidak semua relasi sesuai dengan yang diinginkan. Beberapa relasi lebih terstruktur dibanding yang lain. 2. Meta data Sebuah basis data menggambarkan dirinya sendiri, artinya basis data mengandung sebuah dekripsi dari struktur basis data sebagai bagian dari basis data sendiri. Deskripsi dari struktur tersebut dinamakan meta data. Sejak DBMS dirancang untuk menyimpan
dan
memanipulasi
tabel,
kebanyakan
DBMS
menyimpan meta data dalam bentuk tabel, kadang – kadang disebut system table.
10 3. Indexes Merupakan elemen ketiga dari basis data, yang berguna untuk meningkatkan kemampuan untuk mengakses basis data. Data tersebut, yang kadang disebut overhead data, secara prinsip mengandung indexes, walaupun beberapa tipe dari struktur data, seperti linked list, kadang digunakan. Indexes digunakan tidak hanya untuk sorting tetapi juga untuk mempercepat akses ke data. 4. Apllication meta data Kamus data, data yang berfokus pada struktur dan berisi aplikasi menu, form, dan report. Menurut Subekti (2004, p4) terdapat empat komponen penting dalam sistem basis data yaitu data, hardware (piranti keras), software (piranti lunak), pengguna. 1. Data Data dalam basis data harus terintegrasi dan dapat dipakai bersama. Pengertian terintegrasi di sini adalah suatu basis data dapat dipandang sebagai suatu kumpulan file-file yang terkait satu sama lain dengan menghilangkan redudansi yang ada. Pengertian dipakai bersama (share) adalah setiap bagian data yang terdapat dalam basis data dapat digunakan oleh lebih dari satu pengguna dengan fungsi yang sama atau berbeda satu sama lain.
11 2. Hardware Untuk manajemen basis data hanya dibutuhkan mesin standard, namun yang harus diperhatikan adalah kapasitas penyimpanan karena pada basis data akan membutuhkan kapasitas yang besar. 3. Software Piranti lunak untuk sistem basis data disebut dengan DBMS (Database
Management
System).
DBMS
memungkinkan
pengguna untuk membentuk file (create), penambahan data (insert), penghapusan (delete), dan lain-lain. 4. Pengguna (user) Pengguna basis data dibagi menjadi tiga kelompok, yaitu : a. Administrator Basis Data ( DBA ) Seorang atau grup personil pengolahan data yang bertanggung jawab terhadap kontrol keseluruhan basis data. Tugas-tugas dari DBA adalah : •
Menentukan isi informasi basis data.
•
Menentukan struktur penyimpanan dan strategi akses.
•
Penghubung antar pengguna.
•
Menentukan prosedur cek otorisasi dan validasi.
•
Menentukan strategi back up dan recovery.
•
Memonitor penampilan dan memberikan respond terhadap permintaan dan perubahan oleh pengguna.
12 b. Programmer Programmer adalah seseorang atau sekelompok orang yang menjadi tenaga ahli komputer yang berfungsi untuk mengembangkan program-program aplikasi yang diperlukan dalam manajemen basis data. c. Pengguna Akhir Yang termasuk dalam kategori pengguna akhir adalah pemilik sistem, para manager, operator, dan sebagainya yang terlibat langsung dalam penggunaan basis data.
2.1.2
Database Management System (DBMS)
2.1.2.1 Definisi DBMS Menurut Connolly dan Begg (2002, p16), DBMS adalah sebuah sistem piranti lunak (software) yang memungkinkan para perngguna untuk mendefinisikan, menciptakan, memelihara, dan mengontrol akses ke basis data. Menurut Whitten, Bentley, dan Dittman (2004, p 554), DBMS adalah perangkat lunak tertentu yang digunakan untuk menciptakan, mengakses, mengontrol, dan mengatur basis data.
2.1.2.2 Fungsi-Fungsi DBMS Menurut Petroutsos (2000, p5), DBMS menyediakan fungsifungsi sebagai berikut :
13 1. DBMS mengijinkan aplikasi mendefinisikan struktur dari basis data
dengan
pernyataan
SQL.
Pernyataan
SQL
yang
mendefinisikan atau mengedit struktur ini disebut dengan Data Definition Language (DDL). 2. DBMS mengijinkan aplikasi memanipulasi informasi yang disimpan didalam basis data dengan pernyataan SQL. Pernyataan SQL yang memanipulasi informasi ini disebut dengan Data Manipulation Language (DML). 3. DBMS melindungi integritas basis data dengan menerapkan beberapa aturan, yang dimasukkan kedalam perancangan basis data tersebut.
2.1.2.3 Komponen-Komponen DBMS Menurut Connolly dan Begg (2002, pp18-20), Database Management System (DBMS) memiliki lima komponen penting, antara lain : 1. Hardware (perangkat keras) Dalam menjalankan aplikasi dan DBMS diperlukan perangkat keras. Perangkat keras dapat berupa a single personal computer single mainframe, komputer jaringan berupa server. 2. Software (perangkat lunak) Komponen perangkat lunak meliputi DBMS software dan program aplikasi beserta Sistem Operasi (OS), termasuk
14 perangkat lunak tentang jaringan bila DBMS digunakan dalam jaringan seperti LAN. 3. Data Data mungkin merupakan komponen terpenting dari DBMS khususnya sudut pandang dari end user mengenai data. 4. Prosedur Prosedur berupa panduan dan instruksi dalam membuat desain dan menggunakan basis data. Pengguna dari sistem dan staf dalam mengelola basis data membutuhkan prosedur dalam menjalankan sistem dan mengelola basis data itu sendiri. Demikian prosedur di dalam basis data dapat berupa : login di dalam basis data, penggunaan sebagian fasilitas DBMS, cara menjalankan dan memberhentikan DBMS, membuat salinan backup database, memeriksa hardware dan sofware yang sedang berjalan, mengubah struktur basis data, meningkatkan kinerja atau membuat arsip data pada secondary storage. 5. Manusia Komponen terakhir yaitu manusia sendiri yang terlibat dalam sistem tersebut.
2.1.3
Entity - Relationship Modelling Meurut Jeffrey A. Hoffer, Mary R. Prescott dan Fred R. Mcfadden (2002, p82), entity-relationship modelling adalah perwakilan detil dan logikal dari data untuk sebuah organisasi atau area bisnis.
15 Menurut Connolly dan Begg (2002, p330), Entity Relationship Modelling adalah pendekatan top-down untuk perancangan basis data yang dimulai dengan mengidentifikasi data yang penting, yang disebut entities dan relationships antara data uang harus direpresentasikan di dalam suatu model.
2.1.3.1 Entity Type Menurut Connolly dan Begg (2002, p331), Entity type adalah sekumpulan
objek
dengan
properties
yang
sama
yang
diidentifikasikan oleh perusahaan sebagai sesuatu yang memiliki keberadaan yang bebas. Menurut Jeffrey A. Hoffer, Mary R. Prescott dan Fred R. Mcfadden (2002, p86), entity type adalah kumpulan entitas yang memiliki properti atau karakteristik yang sama.
2.1.3.2 Attributes Menurut Connolly dan Begg (2002, pp338-342),
atribut
adalah sifat dari sebuah entitas atau tipe relationship. Atribut menyimpan nilai dari setiap entity occurrence dan disimpan didalam basis data. Menurut Gerald U. Post (2002, p34), atribut adalah fitur atau karakteristik dari sebuah entitas. Sebuah atribut akan menjadi kolom
16 dalam data table. Employee atribut mencakup name, address, data hired, dan phone. Menurut David M. Kroenke (2002, p52), atributte adalah properti yang menggambarkan karakteristik dari entity. Attribute domain adalah sejumlah nilai yang diperkenankan untuk satu atau lebih atribut. Setiap atribut yang dihubungkan dengan sejumlah nilai disebut domain. Domain menetapkan nilai potensial yang sebuah atribut bisa simpan atau sama dengan konsep domain pada model relasional. Simple attribute adalah sebuah susunan atribut dari komponen tunggal
(single
component)
dengan
keberadaan
yang
bebas
(independent existence). Simple attribute tidak bisa dibagi lagi ke dalam komponen yang lebih kecil. Contohnya, posisi dan gaji dari entitas pegawai, sedangkan Composed attribute adalah sebuah susunan atribut dari banyak komponen dengan sebuah keberadaan yang bebas dari masing-masingnya. Dalam hal ini beberapa atribut dapat dipisahkan menjadi komponen yang lebih kecil lagi dengan keberadaan yang bebas dari masing-masingnya. Contohnya atribut alamat dari entitas kantor cabang yang mengandung nilai (jalan, kota, kode pos) bisa dipecahkan menjadi simple attribute jalan, kota, dan kode pos. Single value attribute adalah atribut yang hanya menyimpan nilai tunggal untuk suatu sifat dari entitas. Sedangkan Multi-valued attribute adalah atribut yang bisa menyimpan nilai lebih dari satu
17 untuk suatu sifat dari entitas. Contohnya atribut telepon pada entitas kantor cabang yang bisa memiliki lebih dari satu nomor telepon. Derived
attribute
(atribut
turunan)
adalah
atribut
menunjukkan nilai yang diperoleh dari atribut yang berhubungan atau kumpulan atribut yang berhubungan, tidak terlalu dibutuhkan dalam tipe entitas yang sama. Atribut turunan (derived attribute) mungkin juga menyangkut hubungan dari atribut pada tipe entitas yang berbeda.
2.1.3.3 Relationship Type Pengertian Relationship Type menurut Connolly dan Begg (2002, p334), adalah sekumpulan hubungan antara satu atau lebih tipe-tipe entitas. Menurut Jeffrey A. Hoffer, Mary R. Prescott dan Fred R. Mcfadden (2002, p86), relationship type adalah hubungan yang memiliki arti diantara entity type. Derajat dari relationship
adalah jumlah dari partisipasi
(participating) tipe entitas dalam sebuah tipe relationship tertentu. Entitas yang berkaitan dalam sebuah tipe relationship dikenal sebagai participant dalam relationship dan jumlah participant dalam relationship disebut sebagai derajat (degree) dari relationship. Sebuah relationship berderajat dua disebut binary, relationship berderajat tiga disebut sebagai ternary, dan relationship berderajat empat disebut sebagai quartenary.
18 2.1.3.4 Kunci (Key) Menurut David M. Kroenke (2002, p12), key ialah sebuah field yang digunakan untuk mengidentifikasi sebuah record. Customer number, vendor name, part number adalah merupakan contoh keys. Untuk proses basis data, keys dapat unique atau nonunique. Jika unique, nilai dari key diidentifikasi hanya satu record. Social security number ialah unique key. Nomor 500-00-001 diidentifikasi satu dan hanya satu. Menurut Connolly dan Begg (2002, pp340-341), key terdiri atas Candidate key, Primary key, Alternate key dan Composite key. Candidate key : sebuah atribut atau lebih yang secara unik mengidentifikasi sebuah baris. Atribut ini mempunyai nilai yang unik pada hampir tiap barisnya. Fungsi dari Candidate key ialah sebagai calon primary key. Primary key : candidate key yang telah dipilih untuk mengidentifikasi tiap baris secara unik. Primary key harus merupakan field yang benar-benar unik dan tidak boleh ada nilai NULL. Alternate key : candidate key yang tidak dipilih sebagai primary key. Composite key : pada kondisi tertentu, suatu atribut tidak dapat digunakan untuk mengidentifikasi baris secara unik dan membutuhkan kolom yang lain untuk digunakan sebagai primary key.
19 Foreign key : jika sebuah primary key terhubung ke tabel lain. Fungsinya sebagai penghubung antar tabel.
2.1.4
Data Definition Language (DDL) Menurut Jeffrey A. Hoffer, Mary R. Prescott dan Fred R. Mcfadden (2002, p86), DDL adalah perintah yang digunakan untuk create, alter, dan drop tabel. Menurut Connolly dan Begg (2002, p40), DDL adalah suatu bahasa yang memungkinkan DBA atau user untuk mendeskripsikan atau memberi nama suatu entities, attributes, dan relationship yang dibutuhkan untuk aplikasi, bersamaan dengan integrity apapun yang terasosiasi, dan security constraints. DDL digunakan untuk mendefinisikan basis data, tabel, dan view. 1. Create Table Pernyataan create table digunakan untuk membuat tabel dengan mengidentifikasikan tipe data untuk tiap kolom. Bentuk umum : CREATE TABLE Table_name ( Column_name DataType [NULL | NOT NULL] [ , Column_name DataType [NULL | NOT NULL] ] ... ) 2. Alter Table Pernyataan alter table dapat dipakai untuk menambah atau membuang kolom dan konstrain. Bentuk umum : ALTER TABLE Table_name [ADD Column_name DataType [NULL | NOT NULL] ]
20 [DROP Column_name DataType [RESTRICT | CASCADE] ] [ADD Constrain_name] [DROP Constrain_name [RESTRICT | CASCADE] ] 3. Drop Table Pernyataan drop table digunakan untuk membuang atau menghapus tabel beserta semua data yang terkait didalamnya. Bentuk umum : DROP TABLE Table_name; 4. Create Index Pernyataan create index digunakan untuk membuat index pada suatu tabel. Bentuk umum : CREATE [UNIQUE] INDEX index_name ON Table_name ( Column_name [ , Column_name ] ... ) 5. Drop Index Pernyataan drop index digunakan untuk membuang atau menghapus index yang telah dibuat sebelumnya. Bentuk umum : DROP INDEX Index_name
2.1.5
Data Manipulation Language (DML) Menurut Jeffrey A. Hoffer, Mary R. Prescott dan Fred R. Mcfadden (2002, p86), DML adalah perintah utama dari sql, digunakan untuk updating, inserting, modifying, dan querying data dalam basis data.
21 Menurut Connolly dan Begg (2002, p41), DML adalah suatu bahasa yang menyediakan sekumpulan operasi untuk mendukung operasi manipulasi data yang dasar pada suatu data yang ada di dalam database. 1. Select Pernyataan select digunakan untuk menampilkan sebagian atau seluruh isi dari suatu table dan menampilkan kombinasi isi dari beberapa tabel. Bentuk umum : SELECT Fields FROM Table_name WHERE Condition 2. Update Pernyataan update digunakan untuk menambah satu atau beberapa baris nilai baru ke dalam suatu tabel. Bentuk umum : UPDATE Table_name SET column1 = value1, column2 = value2, ... WHERE Condition 3. Insert Pernyataan insert digunakan untuk menambah satu atau beberapa baris nilai baru ke dalam suatu tabel. Bentuk umum : INSERT Table_name ( Column list ) VALUES ( value list ) 4. Delete Pernyataan delete digunakan untuk menghapus sebagian atau seluruh isi dari suatu tabel. Bentuk umum :
22 DELETE FROM Table_name WHERE Condition
2.1.6
Normalisasi Pengertian normalisasi Connolly dan Begg (2002, p376), normalisasi adalah suatu teknik untuk menghasilkan relasi dengan properti-properti yang diinginkan, memberikan kebutuhan data dari sebuah perusahaan. Menurut Petroutsos (2000, p71), ada beberapa aturan dalam perancangan basis data, yang disebut dengan aturan normalisasi. Aturanaturan ini akan merancang basis data yang normal, atau setidaknya memverifikasi rancangan. Menurut Gerlad U. Post (2002, p66), normalisasi adalah proses menentukan tabel yang cocok untuk basis data. Menurut David M. Kroenke (2002, p121), normalisasi adalah proses untuk merubah sebuah relasi yang memiliki masalah tertentu menjadi dua atau lebih relasi yang tidak memiliki masalah tersebut. Basis data dianggap normal jika basis data tersebut tidak mengulangi data (data redundancy) atau tidak menimbulkan keanehan pada proses update, delete, atau insert. Proses pembentukkan tabel normal (normalisasi) bertujuan untuk : 1. Membuat sekecil mungkin terjadinya data rangkap.
23 2. Menghindarkan adanya data yang tidak konsisten terutama bila dilakukan penghapusan atau penambahan data sebagai akibat adanya data rangkap. 3. Menjamin bahwa identitas tabel secara tunggal sebagai determinan semua atribut. Proses normalisasi tabel secara detil dibagi menjadi lima tahap sehingga dikenal bentuk–bentuk tabel normal sesuai dengan tahapan normalisasi yang telah dilakukan bentuk normal pertama, kedua, ketiga, boyce-codd, keempat dan kelima. 1. Bentuk Normal Pertama (First Normal Form / 1 NF) Aturan bentuk normal pertama(1NF) menurut Connolly dan Begg (2002, p388), adalah sebuah relasi dimana tiap baris dan kolom berisi hanya berisi satu nilai. Bentuk normal pertama dicapai bila tiap nilai atribut adalah tunggal. Kondisi ini dapat diperoleh dengan melakukan eliminasi terjadinya data ganda (repeating groups). Pada kondisi normal pertama ini kemungkinan masih terjadi adanya data rangkap. 2. Bentuk Normal Kedua (Second Normal Form / 2NF) Aturan bentuk normal kedua (2NF) menurut Connolly dan Begg (2002, p392), adalah sebuah relasi dalam bentuk normal pertama dan setiap atribut bukan primary key yang bergantung secara fungsional kepada primary key. Bentuk normal kedua adalah berdasarkan konsep ketergantungan fungsional penuh (full functional dependency).
Full functional
24 dependency dinyatakan dengan jika A dan B adalah atribut dari suatu relasi (relation), B adalah fungsional ketergantungan penuh (fully functional dependency) pada A jika B adalah secara fungsional bergantung pada A, tetapi bukan merupakan himpunan bagian dari A. Bentuk normal kedua menciptakan sebuah relasi pada bentuk normal pertama dan semua atribut yang bukan primary key adalah fungsional tergantung penuh pada primary key. 3. Bentuk Normal Ketiga (Third Normal Form / 3NF) Aturan bentuk normal ketiga (3NF) menurut Connolly dan Begg (2002, p394), adalah sebuah relasi dalam bentuk normal pertama dan kedua dan setiap atribut bukan primary key yang bergantung secara transitif kepada primary key. Bentuk normal ketiga adalah berdasarkan pada konsep peralihan ketergantungan (transitive dependency).
Transitive dependency
adalah sebuah kondisi dimana A,B dan C adalah atribut dari sebuah relasi bahwa jika A Î B dan B Î C, maka C adalah transitive dependent pada A melewati B (menyatakan bahwa A bukan functional dependent pada B atau C). Pada bentuk normal ketiga, sebuah relasi pada bentuk normal pertama dan kedua dan dimana tidak ada atribut non-primary key secara transitif bergantung (transitively dependent) pada primary key. 4. Bentuk Normal Boyce-Codd (Boyce-Codd Normal Form / BCNF)
25 Aturan bentuk normal Boyce-Codd (BCNF) menurut Connolly dan Begg (2002, p398), adalah sebuah relasi disebut BCNF, jika dan hanya jika setiap determinannya adalah sebuah candidate key. Untuk menguji apakah suatu relasi sudah dalam BCNF, dilakukan identifikasi semua determinan dan memastikan bahwa determinan tersebut adalah candidate key. Determinan adalah sebuah atribut, atau kumpulan atribut, dimana beberapa atribut yang lain masih bergantung secara fungsional penuh (fully functionally dependent). Perbedaan antara 3NF dan BCNF dalam hal functional dependency. A Î B, 3NF mengijinkan ketergantungan ini dalam sebuah relasi jika B adalah atribut primary key dan A bukan candidate key. Sedangkan dalam BCNF ketergantungan ini tetap ada di dalam sebuah relasi, dimana A harus sebuah candidate key. 5. Bentuk Normal Keempat (Fourth Normal Form / 4 NF) Aturan bentuk normal keempat (4NF) menurut Connolly dan Begg (2002, pp407-408), adalah sebuah relasi dalam Boyce-Codd normal form (BCNF) dan tidak mengandung ketergantungan multivalued nontrivial (nontrivial multi-valued dependencies). Bentuk normal keempat (4NF) merupakan bentuk yang lebih kuat dari BCNF dimana 4NF mencegah relasi dari nontrivial multi-valued dependency dan data redundancy. Normalisasi dari BCNF ke 4NF meliputi pemindahan multi-valued dependency dari relasi dengan menempatkan atribut dalam sebuah relasi baru bersama dengan determinan.
26 Multi-Valued
dependency
(MVD)
menggambarkan
ketergantungan antara atribut-atribut dalam suatu relasi. 6. Bentuk Normal Kelima (Fifth Normal Form / 5NF) Aturan bentuk normal kelima (5NF) menurut Connolly dan Begg (2002, p410), adalah sebuah relasi yang tidak mempunyai ketergantungan gabungan (join dependency). Join dependency menggambarkan sebuah tipe ketergantungan. Sebagai contoh, untuk sebuah relasi R dengan subset-subset atribut dari R yang dimisalkan dengan A,B,…,Z , sebuah relasi R menunjukkan join dependency, jika dan hanya jika, setiap nilai dari R sama dengan gabungan dari proyeksi-proyeksinya pada A,B,…,Z.
2.1.7
Fourth Generation Languages (4GLs) Menurut Connolly dan Begg (2002, p42), 4GL adalah bahasa pemrograman yang lebih sederhana daripada 3GL. 3GL bersifat prosedural, sedangkan 4GLs bersifat non-prosedural. Pada 4GL, pengguna menentukan apa yang akan dilakukan, bukan menentukan bagaimana harus dilakukan. 4GL meliputi : a. presentation languages, seperti query languages dan report generators. b. Speciality languages, seperti spreadsheets dan databaselanguages.
27 c. Application generators yang mendefinisikan, insert, update, dan retrieve data dari basis data ke aplikasi yang dibangun. d. Very high-level languages yang digunakan untuk menghasilkan kode aplikasi.
2.1.8
Database Application Lifecycle Adapun dalam perancangan basis data itu sendiri, perlu diperhatikan tentang siklus hidup dari aplikasi basis data itu sendiri. Suatu sistem basis data seperti didefinisikan oleh Connoly (2002, p217), disebutkan bahwa merupakan suatu dasar bagi komponen dari organisasi dengan sistem informasi yang besar. Itu sangatlah penting untuk deperhatikan bahwa struktur dari siklus hidup aplikasi basis data tidaklah harus benar-benar sekuensial, tetapi terlibat dalam suatu perulangan bagan-bagan dari yang sebelumnya melalui umpan balik. Sebagai contoh, masalah yang dihadapi selama perancangan basis data untuk masih diperhatikannya analisis dan pengumpulan data tambahan. Untuk aplikasi basis data kecil dengan jumlah pengguna yang sedikit, siklus hidup tidaklah sangat kompleks. Bagaimanapun juga, ketika perancangan sedang dilakukan pada suatu aplikasi basis data ukuran sedang dengan jumlah pengguna antara sepuluh sampai dengan ribuan user, dengan menggunakan ratusan queries dan program aplikasi,
28 siklus hidup akan menjadi kompleks. Berikut adalah gambar dari siklus hidup aplikasi basis data :
Gambar 2.1 Tingkatan dari Database Application Lifecycle (Connolly dan Begg, 2002, p272)
29 2.1.8.1 Perencanaan Basis Data (Database Planning) Menurut Connolly dan Begg (2002, pp273-274), perencanaan basis data (database planning) merupakan aktivitas manajemen yang mengijinkan tingkatan dari aplikasi basis data untuk direalisasikan seefisien
dan
se-efektif
mungkin.
Database
Planning
harus
diintegrasikan dengan keseluruhan strategi sistem informasi dari perusahaan. Ada 3 hal penting dalam menyusun sebuah strategi sistem informasi, yaitu : 1. Identifikasi dari tujuan dan rencana perusahaan dengan penentuan kebutuhan sistem informasi berikutnya. 2. Evaluasi dari sistem informasi saat ini untuk menentukan kelebihan dan kelemahan yang ada saat ini. 3. Penilaiaan dari kesempatan–kesempatan TI yang mungkin menghasilkan keuntungan kompetitif. Langkah penting dari tahap ini adalah mendefinisikan secara jelas tentang pernyataan misi untuk proyek basis data. Pernyataan tersebut mendefinisikan tujuan utama dari aplikasi basis data. Bila pernyataan tersebut selesai maka langkah selanjutnya adalah mengidentifikasikan sasarannya. Pernyataan dan sasaran ini perlu didukung oleh informasi-informasi tambahan yang menentukan pekerjaan apa saya yang harus diselesaikan, sumber–sumber yang mendukungnya, dan biaya yang harus dikeluarkan.
30 2.1.8.2 Pendefinisian Sistem (System Definition) Menurut Connolly dan Begg (2002, p274) definisi sistem (System definition) adalah memaparkan jangkauan dan batasan dari aplikasi basis data dan pandangan–pandangan utama para pemakai. Sebelum mendesain suatu aplikasi basis data penting untuk terlebih dahulu mengidentifikasikan batasan-batasan dari sistem yang sedang diteliti dan bagaimana kaitannya dengan bagian lain sistem informasi perusahaan. Perlu dipikirkan untuk kebutuhan yang akan datang selain dari keadaan saat ini. Dan tak lupa untuk mengidentifikasi pandangan
pemakai
pengembangan
yang
aplikasi
basis
merupakan data
aspek
karena
penting
membantu
dari untuk
memastikan bahwa tidak ada pemakai utama basis data yang terlupa ketika pengembangan aplikasi baru tersebut.
2.1.8.3 Analisa dan Pengumpulan Kebutuhan (Requirement Collection and Analysis) Menurut Connolly dan Begg (2002,p276), analisis dan pengumpulan kebutuhan (requirement collection and analysis) adalah proses pengumpulan dan analisis informasi tentang bagian dari perusahaan yang akan didukung oleh aplikasi basis data, dan menggunakan informasi ini untuk mengidentifikasikan kebutuhan pemakai terhadap sistem baru. Informasi yang dikumpulkan termasuk :
31 1. Penjabaran dari data yang digunakan. 2. Detail mengenai bagaimana data digunakan. 3. Kebutuahan tambahan apapun untuk aplikasi basis data yang baru. Informasi ini kemudian dianalisis untuk mengidentifikasikan kebutuhan yang dimasukkan untuk aplikasi basis data yang baru tersebut. Ada 3 macam pendekatan untuk mengatur kebutuhan dari sebuah aplikasi basis data dengan berbagai pandangan pemakai, antara lain : 1. Pendekatan Centralized Kebutuhan untuk tiap pandangan pemakai disatukan menjadi satu set kebutuhan untuk aplikasi basis data. Umumnya pendekatan ini dipakai jika basis datanya tidak terlalu kompleks. 2. Pendekatan View Integration Kebutuhan untuk tiap pandangan pemakai digunakan untuk membangun
sebuah
model
data
yang
terpisah
yang
merepresentasikan tiap pandangan pemakai tersebut. Hasil dari data-data model tersebut kemudian disatukan di bagian desain basis data. 3. Kombinasi keduanya.
2.1.8.4 Desain Basis Data (Database Design) Menurut Connolly dan Begg (2002,p279), perancangan basis data (database design) merupakan proses pembuatan suatu desain
32 untuk sebuah basis data yang akan mendukung operasional dan sasaran suatu perusahaan. Ada 2 pendekatan untuk mendesain sebuah basis data, yaitu : 1. Pendektan Bottom-Up Yang dimulai pada tingkat awal dari atribut (yaitu, properti dari entiti dan relationship), yang mana melalui analisis dari asosiasi antar atribut, dikelompokkan menjadi hubungan yang merepresentasikan jenis-jenis entitas dan hubungan antar entitas. Pendekatan ini cocok untuk medesain basis data yang simple dengan jumlah atribut yang tidak banyak. 2. Pendekatan Top-Down Digunakan pada basis data yang lebih kompleks, yang dimulai dengan pengembangan dari model data yang mengandung beberapa entitas dan hubungan tingkat tinggi dan kemudian memakai
perbaikan
top-down
berturut-turut
untuk
mengidentifikasi entitas, hubungan dan atribut berkaitan tingkat rendah. Pendekatan ini biasanya digambarkan melalui ER (Entity Relationship). Pada tahap ini ada bagian yang disebut data modeling yang digunakan untuk membantu pemahaman dari data dan untuk memudahkan komunikasi tentang kebutuhan informasi. Dengan dibuatnya model data dapat membantu memahami: 1. Pandangan tiap pemakai mengenai data 2. Kealamian data itu sendiri, kebebasan representasi fisiknya 3. Kegunaan dari data berdasarkan pandangan pemakai
33 Kriteria untuk model data, yaitu: 1. Structural validity Konsistensi dengan cara yang didefinisikan perusahaan dan menyusun informasi. 2. Simpicity Kemudahan untuk pemahaman baik bagi yang profesional di bidang sistem informasi maupun pemakai yang non teknis. 3. Expressibility Kemampuan untuk membedakan antara data yang berbeda, dan hubungannya antar data. 4. Nonredundancy Pembuangan informasi yang tak ada hubungannya; khusunya, representasi dari tiap potongan informasi tepatnya hanya sekali. 5. Shareability Tidak spesifik untuk aplikasi dan teknologi khusus apapun dan dengan demikian dapat digunakan oleh banyak orang. 6. Extensibility Kemampuan
mengembangkan
untuk
mendukung
kebutuhan baru dengan efek yang minimal bagi pemakai yang ada.
34 7. Integrity Konsistensi terhadap cara yang digunakan perusahaan dan mengatur informasi. 8. Diagramatic Representation Kemampuan untuk merepresentasikan sebuah model menggunakan notasi diagram yang dapat dipahami dengan mudah. Menurut Connoly dan Begg (2002, pp419-437) Database Design dibagi dalam tiga tahapan, yaitu : •
Conceptual Database Design, merupakan suatu proses pembuatan model dengan menggunakan informasi yang diperoleh dari perusahaan, bebas dari semua physical consideration.
•
Logical Database Design, merupakan suatu proses pembuatan model dengan menggunakan informasi yang diperoleh dari perusahaan serta berdasarkan pada model data spesifik, tetapi bebas dari particular DBMS dan physical consideration lainnya.
•
Physical Database Design, merupakan proses pembuatan deskripsi dari suatu implementasi basis data pada secondary storage, hal ini mendeskripsikan base relation, organisasi file, dan indeks yang digunakan untuk mencapai efisiensi akses ke dalam data, dan associated integrity constraints yang lainnya dan security measure.
35 2.1.8.5 Seleksi DBMS (DBMS Selection) Menurut Connoly dan begg (2002, p284), pemilihan DBMS yang sesuai untuk mendukung aplikasi basis data. Yang mencakup: 1. Mendefinisikan syarat-syarat referensi studi Menentukan sasaran, batasan masalah, dan tugas yang harus dilakukan 2. Mendaftar 2 atau 3 jenis barang Membuat daftar barang-barang, misalkan dari mana barang ini didapat,
berapa
biayanya,
serta
bagaimana
bila
ingin
mendapatkannya. 3. Mengevaluasi barang Barang-barang yang ada dalam daftar diteliti lebih lanjut untuk mengetahui kelebihan dan kekurangan barang tersebut. 4. Merekomendasikan pilihan dan membuat laporan Merupakan langkah terakhir dari seleksi DBMS yaitu mendokumentasikan proses dan untuk menyediakan pernyataan mengenai kesimpulan dan rekomendasi terhadap salah satu produk DBMS.
2.1.8.6 Desain Aplikasi (Application design) Menurut Connoly dan Begg (2002, pp287-288), perancangan aplikasi (application design) adalah merancang antarmuka pemakai (user interface) dan program aplikasi, yang akan memproses basis
36 data. Ditinjau dari gambar 2.1 bahwa, perancangan basis data dan perancangan aplikasi adalah aktivitas bersamaan pada database application lifecycle. Dalam kasus ini sebenarnya, adalah tidak mungkin untuk menyelesaikan perancangan aplikasi sebelum perancangan basis data selesai. Dalam perancangan aplikasi harus memastikan semua pernyataan fungsional dari spesifikasi kebutuhan pemakai (user requirement spesification) yang menyangkut perancangan aplikasi program yang mengakses basis data dan merancang transaksi yaitu cara akses ke basis data dan perubahan terhadap isi basis data (retrieve, update dan kegiatan keduanya). Artinya bagaimana fungsi yang dibutuhkan bisa terpenuhi dan merancang antarmuka pemakai (user interface) yang tepat. Antarmuka yang dirancang harus memberikan
informasi
yang
dibutuhkan
dengan
cara
untuk
menciptakan ‘user-friendly’. Kebanyakan antarmuka pemakai yang diabaikan akan niscaya membuat masalah. Bagaimanapun, antarmuka harus diakui sebagai komponen dari sistem yang penting, dimana agar mudah dipelajari dan mudah digunakan, sehingga pemakai akan cenderung untuk memberdayagunakan informasi yang disajikan.
2.1.8.7 Prototyping Pada kondisi tertentu kita dapat memilih apakah akan membuat prototyping atau langsung mengimplementasikan aplikasi basis data. Suatu prototype adalah suatu model aplikasi basis data
37 yang mempunyai semua corak yang diperlukan dan menyediakan semua
kemampuan
sistem.
Tujuan
utama
prototype
adalah
mengijinkan para pemakai untuk menggunakan prototype itu untuk mengetes apakah fitur-fitur pada sistem telah bekerja sesuai dengan spesifikasi pengguna. Dengan cara ini, kita dapat memperjelas kebutuhan pemakai dan pengembang sistem dan mengevaluasi kelayakan desain sistem tertentu. Ada dua cara strategi membuat prototype, yaitu requirements prototyping dan evolutionary prototyping (Connoly, 2002, p291). Untuk
requirements
prototyping
digunakan
prototype
untuk
menentukan kebutuhan suatu aplikasi basis data yang diusulkan dan ketika kebutuhan dirasakan sudah lengkap maka prototype tersebut tidak digunakan lagi. Prototype evolusioner digunakan untuk tujuan yang sama, perbedaannya adalah bahwa prototype tidaklah dibuang tetapi dikembangkan lebih lanjut sehingga aplikasi basis data tersebut dapat bekerja.
2.1.8.8 Implementasi (Implementation) Menurut Connoly dan Begg (2002, p292), Implementasi adalah realisasi fisik dari desain basis data dan desain aplikasi. Dalam penyelesaian tahap desain (yang mungkin melibatkan prototyping), kita sekarang berada di posisi untuk menerapkan basis data dan program aplikasi. Penerapan basis data dicapai dengan menggunakan
38 Data Definition Language (DDL) dari DBMS yang dipilih atau Graphical User Interface (GUI), yang menyediakan fungsi yang sama ketika
menyembunyikan
pernyataan
DDL
tingkat
rendah.
Pernyataan DDL digunakan untuk menciptakan struktur basis data dan untuk mengosongkan file basis data. Setiap tampilan user yang ditetapkan juga diimplementasikan pada tahapan ini. Pandangan pemakai (user view) lainnya juga diimplementasikan dengan menggunakan Data Manipulation Language (DML) dari sasaran DBMS.
2.1.8.9 Data Conversion and Loading Menurut Connoly dan Begg (2002, pp292-293), data conversion and loading adalah mencakup pengambil data dari sistem yang lama untuk dipindahkan kedalam sistem yang baru. Tahapan ini dibutuhkan ketika sistem basis data baru menggantikan sistem yang lama Pada masa sekarang, umumnya DBMS memiliki kegunaan (utility) untuk memasukan file kedalam basis data yang baru. Biasanya membutuhkan spesifikasi dari sumber file dan sasaran basis data-nya. Kegunaan ini memungkinkan pengembang (developer) untuk mengkonversi dan menggunakan aplikasi program lama untuk digunakan oleh sistem baru. Ketika conversion and loading dibutuhkan, prosesnya harus direncanakan untuk memastikan kelancaran transaksi untuk keseluruhan operasi.
39 2.1.8.10 Testing Menurut Connoly dan Begg (2002, p293), testing adalah proses menjalankan program aplikasi untuk menemukan kesalahankesalahan. Sebelum digunakan, aplikasi basis data yang baru dikembangkan harus diuji secara menyeluruh. Untuk mencapainya harus hati-hati dalam menggunakan perencanaan strategi uji dan menggunakan data asli untuk semua proses pengujian. Di dalam definisi testing ini tidak menggunakan pandangan yang biasa, testing adalah proses demonstrasi tanpa kesalahan. Jika testing menunjukkan keberhasilan, maka pengujian akan menemukan kesalahan pada program aplikasi dan mungkin basis data strukturnya. Didalam merancang basis data, users dari sistem baru seharusnya terlibat di dalam proses testing. Situasi yang ideal untuk melakukan uji sistem adalah menguji basis data pada perangkat keras yang berbeda, tetapi hal ini sering tidak dilakukan. Jika data asli yang digunakan, perlu backup untuk mengantisipasi kesalahan atau error. Setelah testing selesai, sistem aplikasi siap digunakan dan diserahkan ke users.
2.1.8.11 Operational Maintenance Menurut Connoly dan Begg (2002, pp293-294) operational maintenace adalah proses memonitor dan memelihara instalasi sistem. Tahapan pemeliharaan melibatkan aktifitas-aktifitas sebagai berikut :
40 •
Memonitor performance dari system
•
Pemeliharaan dan peningkatan level aplikasi basis data (ketika diperlukan). Proses monitoring berlanjut ke dalam keseluruhan hidup
aplikasi basis data dan pada waktunya mungkin menuju reorganisasi basis data untuk memuaskan kebutuhan yang berubah. Ketika aplikasi basis data baru dijalankan online, user harus menjalankannya secara parallel dengan sistem yang lama untuk jangka waktu tertentu. Operasi pengamanan ini dilakukan untuk menanggulangi masalah yang tidak diantisipasi oleh sistem baru.
2.1.9
Desain Konseptual, Logikal, dan Fisikal Basis Data
2.1.9.1 Desain Konseptual Basis Data Merupakan
suatu
proses
pembuatan
model
dengan
menggunakan informasi yang diperoleh dari perusahaan, bebas dari semua
physical
consideration.
Conceptual
database
design
seluruhnya independent dari implementasi seperti target DBMS software, program aplikasi, bahasa pemrograman, atau physical consideration lainnya. Jelasnya conceptual database design merupakan tahapan pertama dari tahapan perancangan basis data dan menciptakan model data konseptual (conseptual data model) dari bagian perusahaan yang akan dibuat basis datanya. Model data (data model) dibuat dengan
41 menggunakan
suatu
dokumentasi
informasi
yaitu
spesifikasi
kebutuhan yang dimiliki oleh user. Membangun model data local konseptual, tujuannya untuk membangun suatu model data konseptual local dari suatu perusahaan atau institusi lain. Langkah-langkah untuk membuat model data konseptual dapat digambarkan sebagai berikut: 1. Identify entity types Untuk menentukan entitas utama yang dibutuhkan, dengan kata lain membuat kelas-kelas dari objek-objek yang ada berikut penjelasannya. Misalkan: Staff, yang menggambarkan seluruh tingkatan staff yang ada. PropertyForRent,
menggambarkan
semua
property
yang
disewakan. 2. Identify relationship types Untuk menentukan hubungan-hubungan penting yang ada antara jenis-jenis entitas yang telah didefinisikan. Misalkan: •
Staff Manages PropertyForRent, yaitu staff mengatur entitas property
•
PrivateOwner PropertyOwner
Owns
PropertyForRent,
memiliki
yang
yaitu
entitas
ada
pada
entitas
Lease,
yaitu
entitas
PropertyForRent •
PropertyForRent
AssociatedWith
ProperyForRent saling bekerja sama dengan entitas Lease.
42 Biasanya dilanjutkan dengan membuat diagram hubungan tersebut yang disebut ER diagram serta menentukan hubungan kemajemukannya. 3. Identify and associate attributes with entity or relationship types Untuk menentukan atribut yang berkaitan dengan entitas yang telah ditentukan. Misalkan untuk entitas staff ditentukan atribut seperti staffNo(yang mengandung nomor-nomor kode setiap staf), name, position,sex. Begitu pun untuk setiap entitas lainnya. 4. Determine attribute domains Untuk menentukan atribut yang berkaitan dengan entitas yang telah ditentukan. Misalkan untuk entitas staff ditentukan atribut seperti staffNo(yang mengandung nomor-nomor kode setiap staf), name, position,sex. Begitu pun untuk setiap entitas lainnya. 5. Determine candidate and primary key attributes Untuk mengidentifikasi candidate key dan primary key dari kumpulan atribut pada tiap-tiap entitas. Primary key merupakan satu atribut yang dipakai sebagai ciri khas dari suatu entitas. Misalkan pada entitas Staff primary key-nya adalah staffno yang mewakili atribut lainnya, sehingga pada saat kita mengakses suatu basis data hanya dengan memasukan nilai staffno kita dapat mengetahui nilai-nilai atribut lainnya yang ada dalam entitas Staff. 6. Consider use of enhanced modeling concepts (optional) Memikirkan kegunaan dari model konsep yang telah dikembangkan. Tahap ini tidak perlu pembahasan lebih lanjut
43 dikarenakan hanya merupakan langkah tambahan saja, boleh dilakukan boleh juga tidak. 7. Check model for redudancy Untuk memeriksa kelebihan entitas maupun atribut yang ada pada model tersebut. Pertama yang dilakukan adalah memeriksa kembali hubungan yang ada apabila terdapat suatu hubungan yang mirip misalnya entitas klien dengan entitas penyewa yang memiliki hubungan dengan ke satu entitas tapi dengan jenis hubungan yang sama yaitu menyewa. Langkah kedua yaitu menggabungkan kedua entitas yang dianggap memiliki kesamaan dan bisa digabung. 8. Validate local conceptual model against user transactions Untuk memastikan bahwa model konsep tersebut mendukung proses transaksi yang dibutuhkan. Misalkan menggambarkan transaksi dengan memeriksa semua informasi yang ada. Contohnya
dengan
adanya
hubungan
Staff
manages
PropertForRent kita dapat mengetahui detil dari property dan staf yang menangani property tersebut. 9. Review local conceptual data model with user Untuk mengkaji ulang model konsep yang telah kita buat dengan pemakai sehingga para pemakainya dapat memahami maksud basis data yang telah dibuat.
44 2.1.9.2 Desain Logikal Basis Data Merupakan
suatu
proses
pembuatan
model
dengan
menggunakan informasi yang diperoleh dari perusahaan serta berdasarkan pada model data spesifik, tetapi bebas dari particular DBMS dan physical consideration lainnya. Model data konseptual yang dibangun pada fase sebelumnya diperhalus dan dipetakan pada model data logical. Model data logical didasarkan pada target model data untuk basis data (sebagai contoh : model data relasional). Model data logical merupakan sumber informasi untuk fase selanjutnya, yang dinamakan physical database design. Aktivitas pada logical database design adalah terdiri dari dua langkah besar, dimana langkah pertama adalah membangun sebuah model data logical local dari model data konseptual local yang menggambarkan pandangan (view) tertentu dari perusahaan dan kemudian mengesahkan model ini untuk memastikan strukturnya telah benar atau menggunakan teknik normalisasi. Sedangkan langkah kedua atau langkah selanjutnya adalah untuk mengkombinasikan model data logical local individual ke dalam sebuah model data logical global tunggal yang menggambarkan perusahaan. Hasil akhir dari tahapan ini berupa kamus data yang berisi semua atribut beserta key-nya (primary key, alternate key dan foreign key) dan ERD keseluruhan (relasi global) dengan semua atribut keynya.
45 2.1.9.3 Desain Fisikal Basis Data Merupakan implementasi
proses
basis
data
pembuatan pada
deskripsi
secondary
dari
storage.
suatu
Hal
ini
mendeskripsikan base relation, organisasi file, dan indeks yang digunakan untuk mencapai efisiensi akses kedalam data, dan associated integrity constrains yang lainnya dan security measures. Physical database design merupakan fase ketiga dan terakhir dari proses desain basis data. Dimana desainer memutuskan bagaimna basis data tersebut diimplementasikan. Secara garis besar, tujuan utama dari physical database design adalah untuk mendeskripsikan bagaimana desainer bermaksud untuk mengimplementasikan secara fisik dari logical database design. Tujuan utama dari physical database design adalah untuk mendeskripsikan
bagaimana
perancang
bermaksud
untuk
mengimplementasikan secara fisik dari logical database design. Untuk model relational, meliputi: 1. membuat sejumlah atau kumpulan table relasional dan constraints pada table tersebut dari informasi yang didapatkan dalam model data logical(logical data model). 2. Mengidentifikasi struktur penyimpanan tertentu dan metode akses terhadap data untuk mencapai performa optimal dari sistem basis data. 3. Merancang proteksi keamanan untuk sistem.
46 2.1.10 Database Security Pertimbangan penerapan keamanan tidak hanya pada data dalam suatu basis data : pelanggaran atas keamanan mungkin akan mempengaruhi bagian lain dari sistem, yang mana mungkin akan memepengaruhi basis data itu. Keamanan basis data meliputi perangkat keras, perangkat lunak, data dan orang. Secara efektif menerapkan keamanan basis data memerlukan kontrol yang tepat. Kebutuhan ini sering dilalaikan atau dilewatkan di masa lalu, kini sistem keamanan semakin dikenali oleh organisasi. Alasan untuk perubahan ini adalah terus meningkatnya sejumlah data penting yang disimpan pada komputer dan membahayakan perusahaan bila tidak disediakan sistem keamanan untuk data penting ini. Suatu basis data mempresentasikan sumber daya penting yang harus
dipastikan
keamanan
untuk
kontrol
yang
mempertimbangkan keamanan untuk data penting ini : 1. Pencurian data 2. Hilangnya kerahasiaan 3. Hilangnya privasi 4. Hilangnya integritas
tepat.
Kita
47 2.1.11 DFD (Data Flow Diagram) Pengertian DFD menurut Whitten, Bentley, dan Dittman (2004, p548) adalah sebuah alat yang dapat digunakan untuk menggambarkan aliran data yang melalui sebuah sistem dan kerja atau proses yang dilakukan oleh sistem tersebut. Di dalam DFD terdapat hanya tiga simbol dan satu koneksi yaitu : 1. Rounded rectangles menggambarkan proses–proses atau pekerjaan yang akan dilakukan. 2. Square menggambarkan external agents atau batasan dari sistem. 3. Open-ended boxes menggambarkan data stores, kadangkadang disebut file-file atau database. 4. Arrow menggambarkan aliran data, atau input-input atau output-output ke dan dari proses.
2.2
Teori-teori Pembelian dan Persediaan 2.2.1
Pembelian
2.2.1.1 Definisi Pembelian Pembelian dilakukan untuk memenuhi kebutuhan. Pemenuhan kebutuhan tersebut ada dua macam : 1. Dikonsumsikan, umumnya oleh perusahaan industri dan rumah tangga.
48 2. Dijual kembali, meskipun tujuannya berbeda, bagaimanapun sifatnya adalah membali barang dan jasa sesuai dengan kebutuhan. Menurut Mulyadi (2001, p299), pembelian adalah suatu usaha yang digunakan dalam perusahaan untuk pengadaan barang yang diperlukan oleh perusahaan.
2.2.1.2 Jenis-Jenis Pembelian Berdasarkan jenis transaksinya, pembelian dibedakan menjadi dua, yaitu: 1. Pembelian tunai, yaitu jenis transaksi dimana pembayaran langsung dilakukan pada saat penerimaan barang. 2. Pembelian kredit, yaitu jenis transaksi dimana pembayaran tidak dilakukan pada saat penyerahan barang, tetapi dilakukan selang beberapa waktu sesuai perjanjian dengan pihak pemasok. Sedangkan berdasarkan jenis pemasok, pembelian dapat dibedakan menjadi dua, yaitu: 1. Pembelian lokal, yaitu pembelian yang dilakukan dari pemasok dalam negeri. 2. Pembelian impor, yaitu pembelian yang dilakukan dari pemasok luar negeri.
49 2.2.1.3 Fungsi Yang Terkait Dalam Pembelian Menurut Mulyadi (2001, p300) fungsi yang terkait dalam sistem pembelian adalah : 1. Fungsi gudang, bertanggung jawab untuk mengajukan permintaan pembelian sesuai dengan posisi persediaan yang ada di gudang dan untuk menyimpan barang yang telah diterima oleh fungsi penerimaan. 2. Fungsi pembelian, bertanggung jawab untuk memperoleh informasi mengenai harga barang, menentukan pemasok yang dipilih dalam pengadaan barang, dan mengeluarkan purchase order kepada pemasok yang dipilih. 3. Fungsi penerimaan, bertanggung jawab untuk melakukan pemeriksaan terhadap jenis, mutu, kuantitas bahan yang diterima dari pemasok guna menentukan dapat tidaknya barang tersebut diterima oleh perusahaan. 4. Fungsi akuntansi yang berkaitan dengan transaksi pembelian adalah fungsi pencatatan hutang yang bertanggung jawab untuk mencatat transaksi pembelian ke register bukti kas keluar untuk menyelenggarakan arsip dokumen sumber bukti kas keluar yang berfungsi sebagai catatan hutang atau menyelenggarakan kartu hutang sebagai buku pembantu hutang.
50 2.2.1.4 Jaringan Prosedur Yang Membentuk Sistem Pembelian Menurut Mulyadi (2001, pp301-303), jaringan prosedur yang membentuk sistem pembelian adalah : 1. Prosedur permintaan pembelian dalam form surat permintaan pembelian kepada fungsi pembelian. 2. Prosedur permintaan penawaran harga dan pemilihan pemasok, fungsi pembelian mengirim surat permintaan penawaran harga kepada pemasok untuk memperoleh informasi mengenai harga barang dan berbagai syarat pembelian yang lain untuk memungkinkan pemilihan pemasok yang akan ditunjuk sebagai pemasok barang yang diperlukan oleh perusahaan. 3. Prosedur order pembelian, fungsi pembelian mengirim surat order pembelian kepada pemasok yang dipilih dan memberitahukan kepada unit-unit organisasi lain dalam perusahaan mengenai order pembelian yang telah dikeluarkan oleh perusahaan. 4. Prosedur penerimaan barang, dalam prosedur ini fungsi penerimaan barang melakukan pemeriksaan mengenai jenis, kuantitas, dan mutu bahan yang diterima dari pemasok dan kemudian
membuat
laporan
penerimaan
barang
untuk
menyatakan penerimaan barang dari pemasok tersebut. 5. Prosedur pencatatan utang, dalam prosedur ini, fungsi akuntansi memeriksa
dokumen-dokumen
yang
berhubungan
dengan
pembelian (surat order pembelian, laporan penerimaan barang,
51 faktur dari pemasok) dan menyelenggarakan pencatatan ulang atau pengarsipan dokumen sumber sebagai catatan hutang. 6. Prosedur distribusi pembelian, prosedur ini meliputi distribusi rekening yang didebet dari transaksi pembelian untuk kepentingan pembuatan laporan manajemen.
2.2.1.5 Dokumen Yang Digunakan Dalam Kegiatan Pembelian Menurut Mulyadi (2001, pp303 – 308) dokumen yang digunakan dalam kegiatan pembelian adalah : 1. Surat permintaan pembelian, formulir ini diisi oleh fungsi gudang atau fungsi pemakai barang untuk meminta fungsi pembelian melakukan pembelian barang untuk meminta fungsi pembelian melakukan pembelian barang dengan jenis, jumlah dan mutu seperti yang disebutkan dalam surat tersebut, dan biasanya terdiri dari 2 lembar untuk setiap permintaan, satu lembar untuk fungsi pembelian dan tembusannya untuk arsip fungsi yang meminta barang. 2. Surat permintaan penawaran harga, digunakan untuk meminta penawaran harga bagi barang yang pengadaannya tidak bersifat berulang kali terjadi, yang menyangkut jumlah rupiah pembelian yang besar. 3. Surat order pembelian, digunakan untuk memesan barang kepada pemasok yang telah dipilih.
52 4. Laporan penerimaan barang, dokumen ini dibuat oleh fungsi penerimaan untuk menunjukkan bahwa barang yang diterima dari pemasok telah memenuhi jenis, spesifikasi, dan kuantitas seperti yang tercantum dalam surat order pembelian. 5. Surat perubahan order pembelian, digunakan untuk bila terjadi perubahan terhadap isi surat order pembelian yang sebelumnya telah diterbitkan. 6. Bukti kas keluar, dokumen ini dibuat oleh fungsi akuntansi untuk dasar pencatatan transaksi pembelian dan juga berfungsi sebagai perintah pengeluaran kas untuk pembayaran hutang kepada pemasok dan sekaligus berfungsi sebagai surat pemberitahuaan kepada kreditur mengenai maksud pembayaran.
2.2.2
Persediaan
2.2.2.1 Definisi Persediaan Menurut Ronald G.A dan Jeffrey B.G (2003, p28), persediaan adalah kumpulan barang-barang fisik yang akan digunakan untuk produksi. Persediaan dimulai dari pengiriman bahan mentah dan bagian-bagiannya dari supplier dan berakhir dengan pengiriman barang jadi ke pelanggan. Menurut Mulyadi (2001, p553), sistem akuntansi persediaan bertujuan untuk mencatat mutasi tiap jenis persediaan yang disimpan di gudang. Persediaan dalam perusahaan manufaktur, persediaan terdiri dari : persediaan produk jadi, persediaan produk dalam proses,
53 persediaan bahan baku, persediaan bahan penolong, persediaan bahan habis pakai pabrik, persediaan suku cadang. Persediaan dalam perusahaan dagang, persediaan hanya terdiri dari satu golongan, yaitu : persediaan barang dagangan, yang merupakan barang yang dibeli untuk tujuan dijual kembali. Dengan demikian dapat disimpulkan bahwa persediaan adalah barang-barang yang dibeli untuk diproduksi, serta dijual kembali dan habis dipakai oleh perusahaan.
2.2.2.2 Metode Pencatatan Persediaan Menurut Mulyadi (2001, p556), ada dua macam metode pencatatan persediaan : 1. Metode Mutasi Persediaan (perpetual inventory method) Dalam metode mutasi persediaan, setiap mutasi persediaan dicatat dalam kartu persediaan. 2. Metode Persediaan Fisik (physical inventory method) Dalam metode persediaan fisik, hanya tambahan persediaan dari pembelian saja yang dicatat, sedangkan mutasi berkurangnya persediaan
karena
pemakaian
tidak
dicatat
dalam
kartu
persediaan.
2.2.2.3 Fungsi Yang Terkait Menurut Mulyadi (2001, pp579-580), fungsi yang terkait dalam perhitungan fisik persediaan adalah :
54 1. Panitia Perhitungan Fisik Persediaan Panitia ini berfungsi untuk melaksanakan perhitungan fisik persediaan dan menyerahkan hasil perhitungan tersebut kepada bagian
kartu
persediaan
untuk
digunakan
sebagai
dasar
adjustment terhadap catatan persediaan dalam kartu persediaan. 2. Fungsi Akuntansi Dalam sistem penghitungan fisik persediaan, fungsi ini bertanggung jawab untuk : a. Mencantumkan harga pokok satuan persediaan yang dihitung ke dalam daftar hasil penghitungan fisik b. Mengalikan kuantitas dan harga pokok per satuan yang tercantum dalam daftar hasil penghitungan fisik c. Mencantumkan harga pokok total dalam daftar hasil penghitungan fisik d. Melakukan
adjustment
terhadap
kartu
persediaan
berdasarkan data hasil penghitungan fisik persediaan e. Membuat bukti memorial untuk mencatat adjustment data persediaan
dalam
jurnal
umum
berdasarkan
hasil
penghitungan fisik persediaan 3. Fungsi Gudang Dalam sistem penghitungan fisik persediaan, fungsi gudang bertanggung jawab untuk melakukan adjustment data kuantitas persediaan yang dicatat dalam kartu gudang berdasarkan hasil penghitungan fisik persediaan.
55 2.2.2.4 Sistem Dan Prosedur Yang Bersangkutan Dengan Sistem Akuntansi Persediaan Sistem dan prosedur yang bersangkutan dengan sistem akuntansi persediaan adalah : 1. Prosedur Pencatatan Produk Jadi Dalam prosedur ini dicatat harga pokok produk jadi yang didebitkan kedalam rekening persediaan produk jadi dan dikreditkan kedalam rekening barang dalam proses. 2. Prosedur Pencatatan Harga Pokok Produk Jadi Yang Dijual Prosedur ini merupakan salah satu prosedur dalam sistem penjualan disamping prosedur lainnya, seperti : prosedur order penjualan, prosedur persetujuan kredit, prosedur pengiriman barang, prosedur penagihan, prosedur pencatatan piutang. 3. Prosedur Pencatatan Harga Pokok Produk jadi Yang Diterima Kembali Dari Pembeli Jika produk jadi yang telah dijual dikembalikan oleh pembeli, maka transaksi retur penjualan ini akan mempengaruhi persediaan produk jadi, yaitu menambah kuantitas produk jadi dalam kartu gudang yang diselengarakan oleh bagian gudang dan menambah kuantitas dan harga pokok produk jadi yang dicatat oleh bagian kartu persediaan dalam kartu persediaan produk jadi. Prosedur ini merupakan salah satu prosedur yang membentuk sistem retur penjualan.
56 4. Prosedur Pencatatan Harga Pokok Persediaan Produk Dalam Proses Pencatatan persediaan produk dalam proses umumnya dilakukan oleh perusahaan pada akhir periode, pada saat dibuat laporan keuangan bulanan dan laporan keuangan tahunan. 5. Prosedur Pencatatan Harga Pokok Persediaan Yang Dibeli Prosedur ini merupakan salah satu prosedur yang membentuk sistem pembelian. Dalam prosedur ini dicatat harga pokok persediaan yang dibeli. 6. Prosedur Pencatatan Harga Pokok Persediaan Yang Dikembalikan Kepada Pemasok Jika persediaan yang telah dibeli dikembalikan kepada pemasok, maka transaksi retur pembelian ini akan mempengaruhi persediaan yang bersangkutan, yaitu : mengurangi kuantitas persediaan dalam suatu gudang yang diselengarakan oleh gudang dan mengurangi kuantitas dan harga pokok persediaan, yang dicatat oleh bagian kartu persediaan dalam kartu persediaan yang bersangkutan. Prosedur ini merupakan salah satu prosedur yang membentuk sistem retur pembelian. 7. Prosedur Permintaan Dan Pengeluaran Barang Gudang Prosedur ini merupakan salah satu prosedur yang membentuk sistem akuntansi biaya produksi. Dalam prosedur ini dicatat harga pokok persediaan bahan baku, bahan penolong, bahan habis pakai
57 pabrik, dan suku cadang yang dipakai dalam kegiatan produksi dan kegiatan non produksi. 8. Prosedur Pengembalian Barang Gudang Transaksi pengembalian barang gudang mengurangi biaya dan menambah persediaan barang di gudang. 9. Sistem Perhitungan Fisik Persediaan Sistem penghitungan fisik persediaan umumnya digunakan oleh perusahaan untuk menghitung secara fisik persediaan yang disimpan di gudang, yang hasilnya digunakan untuk meminta pertanggungjawaban bagian gudang mengenai pelakasanaan fungsi penyimpanan, dan pertanggungjawaban bagian kartu persediaan
mengenai
keandalan
catatan
persediaan
yang
diselengarakannya, serta untuk melakukan penyesuaian atau adjustment
terhadap
catatan
persediaan
di
bagian
kartu
persediaan. Dalam bagian ini diuraikan sistem penghitungan fisik persediaan yang merupakan salah satu unsur pengendalian interen melekat terhadap persediaan
2.2.2.5 Tipe-Tipe Persediaan Menurut Ronald G.A dan Jeffrey B.G (2003, pp29-30), tipetipe persediaan antara lain : 1. Persediaan Bahan mentah Disimpan untuk memastikan ketersediaannya untuk produksi. Bahan mentah yang tidak mahal, yang sangat penting dalam
58 proses produksi sering disimpan dalam kuantitas yang besar pada batasannya. 2. Persediaan Barang Jadi Merupakan produk yang sudah jadi yang menunggu untuk dikirim kepada pelanggan. Ini termasuk barang dalam gudang, dan juga dalam retail outlet, dan bahkan yang berada dalam peti kemas yang siap untuk dikirim. 3. Persediaan Work-In-Process (WIP) Terdiri dari kumpulan produk yang setengah jadi dalam produksi. Ini termasuk kumpulan material dan bagian purchase part dari waktu mereka dilepas di toko sampai dengan mereka selesai disahkan sebagai good status. persediaanWIP menunggu urutannya untuk digunakan dalam mesin atau dipindahkan diantara pabrik. 4. Persediaan Pipeline Terdiri dari barang-barang yang berada dalam pengiriman menuju pelanggan atau gudang. Dalam hal ini, termasuk bahan mentah yang sedang dikirim dengan pesawat, dan barang jadi yang berada di kapal untuk dikirim ke gudang atau pelanggan.
2.2.2.6 Dokumen Yang Digunakan Dalam Kegiatan Persediaan Dokumen–dokumen
yang
digunakan
persediaan antara lain adalah sebagai berikut :
dalam
kegiatan
59 1. Laporan produk selesai. 2. Bukti memorial. 3. Surat order pengiriman. 4. Faktur penjualan. 5. Laporan penerimaan barang. 6. Laporan pengiriman barang. 7. Bukti kas keluar. 8. Memo kredit. 9. Memo debit. 10. Bukti permintaan dan pengeluaran barang gudang. 11. Bukti pengembalian barang gudang. 12. Kartu perhitungan fisik 13. Daftar hasil perhitungan fisik.