BAB 2 LANDASAN TEORI
2.1
Teori-Teori Dasar / Umum 2.1.1
Pendekatan basis data a. Data Pengertian data menurut Turban, Rainer, Potter (2003, p15) adalah fakta-fakta yang belum diolah atau gambaran lebih lanjut dari benda-benda, kejadian-kejadian, kegiatan-kegiatan, dan transaksi yang ditangkap, direkam, disimpan, dan diklasifikasikan tetapi tidak disusun untuk menyampaikan arti khusus lainnya. Pengertian data menurut O’Brien (2003, p13), data adalah fakta mentah atau observasi, umumnya tentang fenomena fisik atau transaksi bisnis. Secara lebih spesifik, data adalah ukuran objektif dari atribut (karakteristik) dari entitas (seperti orang, tempat, dan benda). Berdasarkan
pengertian-pengertian
di
atas,
maka
dapat
disimpulkan bahwa data adalah fakta yang belum diolah yang terjadi dan diterima apa adanya. b. Informasi Menurut Mcleod dan Schell (2004, p15), informasi adalah data yang telah diproses atau data yang memiliki arti. Menurut O’Brien (2003, p13), informasi adalah sekumpulan data yang telah diubah dalam konteks yang lebih bermakna dan berguna bagi pengguna akhir tertentu. 7
8
Menurut Turban, Rainer, Potter (2003, p15), informasi adalah kumpulan dari fakta-fakta (data) yang disusun dalam beberapa cara. Berdasarkan
pengertian-pengertian
di
atas,
maka
dapat
disimpulkan bahwa informasi adalah kumpulan data yang telah disusun dan diolah yang berguna bagi pemakai akhir. c. Basis data Menurut Thomas Connolly dan Carolyn Begg (2002, p14), basis data adalah kumpulan data yang berelasi secara logikal dan sebuah deskripsi dari data ini didesain untuk memenuhi informasi dari sebuah organisasi. Jadi, dapat disimpulkan bahwa basis data adalah kumpulan data yang saling berhubungan dan telah diolah serta disusun dalam komputer sehingga memiliki arti yang berguna bagi pemakainya (perusahaan). 2.1.2
Database Management System (DBMS) Database Management System (DBMS) menurut Thomas Connolly dan Carolyn Begg (2002, p16) adalah sebuah sistem peranti lunak yang memungkinkan user untuk mendefinisikan, membuat, memelihara, dan mengontrol akses ke basis data. a. Fasilitas DBMS DBMS menyediakan beberapa fasilitas sebagai berikut: -
Data Definition Language (DDL) yang memperbolehkan user untuk mendefinisikan basis data, menspesifikasikan tipe data,
9
struktur, dan constraint pada data yang akan disimpan dalam basis data. -
Data Manipulation Language (DML) yang memperbolehkan user untuk insert, update, delete, dan retrieve data dari basis data. Terdapat suatu fasilitas yang melayani pengaksesan data yaitu Structured Query Language (SQL). SQL merupakan bahasa query yang menjadi standar untuk DBMS.
-
Menyediakan akses kendali pada basis data seperti: •
Sistem keamanan yang mencegah pengguna tak berwewenang mengakses basis data.
•
Sistem integritas yang memelihara konsistensi data dari data yang disimpan.
•
Sistem kendali konkurensi yang memungkinkan pembagian akses terhadap basis data.
•
Sistem kendali recovery yang mengembalikan basis data kembali kepada keadaan konsisten sebelumnya.
•
Katalog yang dapat diakses oleh user yang berisi deskripsi data dalam basis data.
-
View yang berguna untuk menampilkan data yang diinginkan oleh user.
10
b. Komponen DBMS DBMS
memiliki
komponen-komponen
utama
dalam
lingkungannya. Menurut Thomas Connolly dan Carolyn Begg (2002, p18-20), terdapat lima komponen DBMS yaitu: -
Hardware DBMS dan aplikasi membutuhkan hardware agar dapat dijalankan. Hardware dapat berkisar dari sebuah PC, sebuah mainframe, dan jaringan dari komputer-komputer. Hardware tertentu bergantung pada kebutuhan perusahaan dan DBMS yang digunakan. Beberapa DBMS hanya dapat bekerja pada hardware atau sistem operasi tertentu. DBMS membutuhkan jumlah minimum dari main memory dan space disk untuk bekerja.
-
Software Komponen software terdiri dari software DBMS itu sendiri dan program aplikasi, bersama dengan sistem operasi, termasuk network software jika DBMS digunakan pada jaringan. Pada umumnya, program aplikasi ditulis dalam bahasa pemrograman generasi ketiga (3GL), seperti C, C++, C#, Java, Visual Basic, COBOL, dan sebagainya, atau menggunakan bahasa pemrograman generasi keempat (4GL) seperti SQL yang diembed dalam bahasa generasi ketiga. DBMS mungkin memiliki 4th generation tools sendiri yang memungkinkan aplikasi dikembangkan secara cepat. Kegunaan
dari
4th
generation
tools
dapat
meningkatkan
11
produktivitas secara signifikan dan menghasilkan program yang lebih mudah dipelihara. -
Data Komponen terpenting dari DBMS, terutama dari sudut pandang end user, adalah data. Data bertindak sebagai jembatan antara komponen mesin dan komponen manusia. Basis data memiliki baik data operasional dan meta data. Struktur dari basis data disebut skema.
-
Prosedur Prosedur merujuk pada instruksi dan aturan yang mengatur desain dan penggunan dari basis data. Pengguna sistem dan staf yang mengatur basis data membutuhkan dokumentasi prosedur pada bagaimana menggunakan atau menjalankan sistem. Hal ini terdiri dari instruksi-instruksi dalam bagaimana: •
Log on pada DBMS.
•
Menggunakan fasilitas DBMS tertentu atau aplikasi program.
•
Memulai dan menghentikan DBMS.
•
Membuat salinan backup dari basis data.
•
Mengatasi kegagalan hardware atau software. Ini termasuk prosedur bagaimana mengidentifikasikan komponen yang gagal, bagaimana
memperbaiki
komponen
yang
mengembalikan basis data ke keadaan semula.
gagal,
dan
12
•
Mengubah struktur dari table, mengatur ulang basis data melalui multiple disks, meningkatkan performa, atau menyimpan data pada secondary storage.
-
Manusia Komponen manusia terdiri dari: •
Data administrator adalah orang yang berwenang untuk mengatur sumber data termasuk merencanakan basis data, mengembangkan dan memelihara, kebijakan dan prosedur, dan desain konseptual atau logikal basis data.
•
Database administrator adalah orang yang bertanggung jawab untuk realisasi fisikal dari basis data, termasuk desain fisikal basis data dan implementasi, kontrol keamanan dan integritas, memelihara sistem operasional, dan memastikan kepuasan performa aplikasi untuk user.
•
Database designer terbagi menjadi dua yaitu logical database designer dan physical database designer. o Logical
database
designer
adalah
orang
yang
mengidentifikasi data (entitas dan atribut), hubungan antardata, dan constraint data yang disimpan dalam basis data. Logical database designer harus memiliki secara menyeluruh dan mengerti sepenuhnya dari data perusahaan dan
peraturan
bisnis.
Peraturan
bisnis
menjelaskan
karakterisitik utama dari data yang dilihat oleh perusahaan.
13
o Physical database designer adalah orang yang memutuskan bagaimana desain logikal basis data direalisasikan. Hal ini termasuk mapping desain logikal basis data ke dalam table dan
constraint
yang
terintegritas,
memilih
strutktur
penyimpanan spesifik dan metode akses untuk data disimpan dalam performa yang baik, dan mendesain ukuran sekuritas yang dibutuhkan data. •
Application developers adalah orang yang bertanggung jawab mengimplemetasikan program aplikasi yang menyediakan fungsionalitas yang dibutuhkan untuk end user setelah basis data diimplementasikan..
•
End users terdiri dari dua macam yaitu naïve users dan sophisticated users. o Naïve users yaitu orang yang secara umum tidak mengetahui mengenai DBMS. Mereka mengakses basis data melalui program aplikasi yang secara khusus ditulis. o Sophisticated users yaitu orang yang familiar dengan struktur basis data dan fasilitas yang disediakan DBMS sehingga mereka mungkin menulis program aplikasi untuk mereka gunakan sendiri.
14
c. Keuntungan dan kerugian DBMS Menurut Thomas Connolly dan Carolyn Begg (2002, p25-29), berikut ini adalah keuntungan dan kerugian dari DBMS: -
Keuntungan DBMS •
Kontrol terhadap pengulangan data (data redudancy) Basis data berusaha untuk menghilangkan pengulangan dengan mengintegrasikan file sehingga berbagai salinan dari data yang sama tidak tersimpan. Bagaimana pun juga pendekatan ini tidak menghilangkan pengulangan secara menyeluruh, tetapi mengendalikan jumlah pengulangan dalam basis data.
•
Data yang konsisten Dengan menghilangkan atau mengendalikan pengulangan, resiko ketidakkonsistenan yang terjadi telah dikurangi. Jika item data disimpan hanya sekali di dalam basis data, maka berbagai update bagi nilai data tersebut harus dibuat hanya sekali dan nilai baru tersebut harus tersedia dengan segera kepada semua pengguna. Jika item data disimpan lebih dari sekali, sistem dapat memastikan bahwa semua salinan dari item tersebut tetap konsisten
•
Semakin banyak informasi yang didapat dari data yang sama
15
Dengan data operasional yang terintegrasi, hal ini memungkinkan bagi organisasi untuk mendapatkan informasi tambahan dari data yang sama. •
Pembagian data (sharing of data) Basis data termasuk bagian dari keseluruhan organisasi dan dapat dibagikan oleh semua pengguna yang berotoritas. Dalam hal ini, banyak pengguna membagikan lebih banyak data.
•
Meningkatkan integritas data Integritas basis data mengacu pada validitas dan konsistensi
data
yang
disimpan.
Integritas
biasanya
diekspresikan dalam istilah batasan yang berupa aturan konsisten yang tidak boleh dilanggar oleh basis data. Integrasi memungkinkan DBA untuk menjelaskan, dan memungkinkan DBMS untuk membuat batasan integritas. •
Meningkatkan keamanan data Keamanan basis data yaitu melindungi basis data dari pengguna yang tak berotoritas. Hal ini dapat dilakukan dengan menggunakan
sistem
user
name
dan
password
untuk
mengidentifikasi orang yang berotoritas untuk menggunakan basis data. Akses pengguna yang berotoritas pada basis data mungkin dibatasi oleh jenis operasi seperti pengambilan, memasukkan, mengubah, dan penghapusan data.
16
•
Penetapan standarisasi Integrasi memungkinkan DBA untuk mendefinisikan dan membuat standar yang diperlukan. Standar ini termasuk standar departemen, organisasi, nasional, atau internasional dalam hal format data, untuk memfasilitasi pertukaran data antara sistem, ketetapan penamaan, standard dokumentasi, prosedur update, dan aturan akses.
•
Pengurangan biaya Dengan menyatukan semua data operasional organisasi ke dalam satu basis data dan pembuatan sekelompok aplikasi yang bekerja pada satu sumber data dapat menghasilkan pengurangan biaya. Penyatuan biaya pengembangan dan pemeliharaan sistem pada setiap departemen akan menghasilkan total biaya yang lebih rendah. Sehingga biaya lainnya dapat digunakan untuk membeli konfigurasi sistem yang sesuai bagi kebutuhan organisasi.
•
Menyeimbangkan konflik kebutuhan Setiap pengguna mempunyai kebutuhan yang mungkin bertentangan dengan kebutuhan pengguna lain. Sejak basis data dikendalikan oleh DBA, DBA dapat membuat keputusan berkaitan dengan perancangan dan penggunaan operasional basis data yang menyediakan penggunaan terbaik dari sumber daya bagi keseluruhan organisasi.
17
•
Meningkatkan kemampuan akses dan respon pada data Dengan pengintegrasian data yang melintasi batasan departemen dapat secara langsung diakses pada pengguna akhir. Hal ini dapat menyediakan sebuah sistem dengan lebih banyak fungsi seperti fungsi untuk menyediakan layanan yang lebih baik pada pengguna akhir atau klien organisasi. Banyak DBMS menyediakan query language yang memungkinkan pengguna untuk menanyakan pertanyaan ad hoc dan memperoleh informasi yang diperlukan dengan segera pada terminal mereka, tanpa memerlukan programmer menulis beberapa software untuk mengubah informasi ini dari basis data.
-
Kerugian DBMS •
Kompleksitas Ketentuan dari fungsi yang kita harapkan dari DBMS yang baik membuat DBMS menjadi sebuah software yang sangat kompleks. Perancang dan pengembang basis data, DA (Data Administrator) dan DBA (Database Administrator), serta pengguna akhir harus memahami fungsi tersebut untuk mendapatkan banyak keuntungan dari DBMS ini.
•
Ukuran Fungsi yang kompleks dan luas membuat DBMS menjadi software yang sangat besar, memerlukan banyak ruang hardisk dan jumlah memory yang besar untuk berjalan dengan efisien.
18
•
Biaya dari suatu DBMS Biaya DBMS bervariasi, tergantung pada lingkungan dan fungsi
yang
disediakan.
Di
situ
juga
terdapat
biaya
pemeliharaan tahunan yang juga dimasukkan dalam daftar harga DBMS. •
Biaya penambahan perangkat keras Kebutuhan tempat penyimpanan bagi DBMS dan basis data
amat
memerlukan
pembelian
tempat
penyimpanan
tambahan. Lebih lanjut, untuk mencapai performa yang diperlukan, mungkin diperlukan untuk membeli mesin yang lebih besar dan sebagainya. Hal ini tentu memerlukan tambahan biaya yang tidak sedikit tergantung pada spesifikasi perangkat keras yang diperlukan 2.1.3
Model relasional a. Terminologi -
Struktur data relasional Terdapat beberapa istilah dalam struktur data relasional seperti (Connolly, 2002, p72-p74): •
Relasi Relasi digunakan untuk memegang informasi mengenai objek yang akan direpresentasikan dalam basis data. Sebuah relasi digambarkan dengan tabel dua dimensi yang memliki
19
baris yang merepresentasikan sebuah record dan nama kolom yang merepresentasikan atribut. Relasi memiliki sifat-sifat sebagai berikut (Connolly, 2002, p77): o Nama relasi berbeda satu sama lain dalam skema relasional. o Setiap sel dari relasi berisi satu nilai atomik. o Setiap atribut memiliki nama yang berbeda. o Nilai satu atribut berasal dari domain yang sama. o Setiap tuple berbeda, dan tidak ada duplikasi tuple. •
Atribut Seperti yang telah dijelaskan sebelumnya, atribut adalah nama kolom dari sebuah relasi. Atribut dapat muncul dalam urutan apapun dan relasinya akan tetap relasi yang sama, dan oleh sebab itu memiliki arti yang sama (Connolly, 2002, p72).
•
Domain Domain adalah kumpulan dari nilai yang diizinkan untuk satu atau lebih atribut. Konsep domain penting karena domain memperbolehkan user untuk mendefinisikan arti dan sumber nilai yang dapat atribut gunakan (Connolly, 2002, p72).
•
Tuple Tuple adalah elemen dari relasi. Tuple dapat muncul dalam urutan apapun dan relasinya akan tetap relasi yang sama, dan oleh sebab itu memiliki arti yang sama (Connolly, 2002, p73).
20
•
Degree Degree pada suatu relasi adalah jumlah atribut yang terdapat pada relasi tersebut. Sebuah relasi yang terdiri dari satu atribut disebut unary relation atau one tuple. Relasi dengan dua atribut disebut binary, tiga atribut disebut ternary, dan lebih dari tiga disebut n-ary (Connolly, 2002, p74).
•
Cardinality Cardinality adalah jumlah dari tuple yang terdapat pada relasi. Cardinality berubah-ubah bergantung pada tuples yang ditambah atau dihapus (Connolly, 2002, p74).
•
Basis data relasional Basis data relasional adalah sekumpulan relasi yang telah dinormalisasi dengan nama relasi yang berbeda (Connolly, 2002, p74).
-
Basis data relasi Dari beberapa pengertian di atas, maka skema relasi dapat didefinisikan yaitu sebuah nama relasi yang mendefiniskan sekumpulan pasangan atribut dan domain. Skema basis data relasi adalah kumpulan dari skema relasi yang berbeda nama (Connolly, 2002, p76).
-
Relational Keys Seperti yang telah disebutkan di atas bahwa tidak ada tuples yang sama dalam sebuah relasi. Oleh sebab itu, diperlukannya
21
relational keys untuk mengidentifikasikan satu atau lebih atribut. Berikut beberapa relational keys tersebut (Connolly, 2002, p78): •
Superkey Superkey adalah atribut atau kumpulan dari atribut yang secara unik mengidentifikasikan sebuah tuple dalam sebuah relasi (Connolly, 2002, p78).
•
Candidate key Candidate
key
adalah
sebuah
atribut
unik
yang
mengidentifikasikan sebuah table. Jumlah minimal atribut yang dapat mengidentifikasikan record secara unik. Jika sebuah key terdiri dari lebih dari satu atribut disebut composite key (Connolly, 2002, p78). •
Primary key Primary key adalah candidate key yang dipilih untuk mengindentifikasikan tuples secara unik pada relasi (Connolly, 2002, p79).
•
Foreign key Foreign key adalah sebuah atribut atau kumpulan atribut dalam satu relasi yang cocok pada beberapa candidate key dari beberapa relasi (Connolly, 2002, p79).
b. Integritas relasional Setiap atribut memiliki sebuah domain terasosiasi, terdapat constraint yang merupakan bentuk batasan pada kumpulan nilai yang
22
diizinkan untuk atribut pada relasi. Berikut ini adalah definisi dari istilah yang digunakan (Connolly, 2002, p78-79): -
Nulls Null merepresentasikan nilai untuk sebuah atribut yang tidak diketahui atau tidak memiliki nilai pada tuple.
-
Integritas entitas Dalam sebuah base relation, tidak ada atribut pada primary key bernilai null. Primary key digunakan untuk mengidentifikasikan tuple secara unik. Hal ini menyebabkan tidak ada subset dari primary key yang cukup untuk menyediakan pengidentifikasian tuple yang unik.
-
Integritas referensial Jika terdapat foreign key dalam relasi, maka nilai foreign key tersebut akan dibandingkan dengan nilai candidate key dari beberapa tuple pada relasi tersebut atau nilai foreign key harus null semuanya.
-
Enterprise constraints Aturan tambahan yang dispesifikasikan user atau database administrator pada basis data.
2.1.4
Entity Relationship Modeling a. Tipe entitas Tipe entitas adalah sekumpulan objek yang memiliki sifat yang sama, yang diidentifikasi oleh perusahaan dan memiliki keberadaan yang independen (Connolly, 2002, p331). Keberadaan dari entitas yang
23
independen ini dapat berupa bentuk fisik (nyata) maupun konseptual (abstrak). Entity occurrence merupakan objek yang dapat diidentifikasi secara unik dari tipe entitas (Connolly, 2002, p333). b. Tipe relationship Tipe relationship merupakan sebuah hubungan yang memiliki arti di antara beberapa tipe entitas (Connolly, 2002, p334). Setiap tipe relasi diberi nama yang menjelaskan fungsinya. Relationship occurence merupakan sebuah hubungan yang dapat diidentifikasi secara unik, yang meliputi satu kejadian dari masingmasing tipe entitas yang berpartisipasi. c. Atribut Atribut merupakan properti atau sifat dari sebuah entitas atau tipe relationship (Connolly, 2002, p338). Domain
atribut
merupakan
suatu
kumpulan
nilai
yang
diperbolehkan untuk satu atau lebih atribut (Connolly, 2002, p338). Atribut dapat diklasifikasikan sebagai berikut: -
Simple and composite attributes Simple attribute merupakan sebuah atribut yang terdiri dari satu komponen dengan keberadaan yang independen (Connolly, 2002, p339). Composite attribute merupakan sebuah atribut yang terdiri dari beberapa komponen, masing-masing dengan keberadaan yang independen (Connolly, 2002, p339).
24
-
Single-valued and multi-valued attributes Single-valued attribute merupakan sebuah atribut yang menyimpan satu nilai untuk setiap kejadian dari entitas (Connolly, 2002, p339). Multi-valued attribute merupakan sebuah atribut yang menyimpan beberapa nilai untuk setiap kejadian dari entitas (Connolly, 2002, p340).
-
Atribut turunan (derived attribute) Derived attribute merupakan sebuah atribut yang mewakili sebuah nilai yang dapat diturunkan dari nilai dari atribut yang berelasi atau sekumpulan atribut, dan tidak harus dalam tipe entitas yang sama (Connolly, 2002, p340)
-
Keys Candidate key merupakan sekumpulan atribut yang minimal yang secara unik mengidentifikasikan setiap kejadian dari entitas (Connolly, 2002, p340). Primary key merupakan candidate key yang terpilih untuk secara unik mengidentifikasi setiap kejadian dari entitas (Connolly, 2002, p341). Composite key merupakan candidate key yang memiliki dua atau lebih atribut (Connolly, 2002, p341).
d. Tipe entitas kuat dan lemah Tipe entitas kuat merupakan tipe entitas yang keberadaannya tidak bergantung pada entitas lain (Connolly, 2002, p342). Karakteristik
25
dari entitas kuat ini adalah setiap kejadian entitas diidentifikasikan secara unik menggunakan atribut primary key dari tipe entitas tersebut. Tipe entitas lemah merupakan tipe entitas yang keberadaannya bergantung pada entitas lain (Connolly, 2002, p343). Karakteristik dari entitas lemah ini adalah setiap kejadian entitas tidak bisa diidentifikasi secara unik dengan hanya menggunakan atribut yang berhubungan dengan tipe entitas tersebut. e. Structural constraint Batasan utama dari relationship disebut multiplicity, yang artinya jumlah dari kejadian-kejadian yang mungkin terjadi pada entitas yang berhubungan dengan kejadian tunggal dari entitas melalui relationship khusus (Connolly, 2002, 344). Terdapat tiga jenis relationship sesuai dengan batasan perusahaan, yaitu: -
One-to-one (1:1) Hubungan one-to-one terjadi ketika ada satu record dari tabel pertama yang berkorespondensi dengan satu record dari tabel lain. Contohnya setiap nama karyawan hanya memiliki satu nomor ID karyawan.
-
One-to-many (1 : *) Hubungan one-to-many terjadi ketika setiap record dalam tabel A bisa memiliki beberapa link dari tabel B namun masing-masing record dari tabel B hanya bisa berkorespondensi dengan satu record dari tabel A. Contohnya sebuah perusahaan dengan semua
26
karyawannya bekerja di gedung Z (merupakan tabel A). Nama gedung memiliki hubungan dengan banyak karyawan (merupakan tabel B). Jadi, satu record dari tabel A, yaitu tabel nama gedung, memiliki relasi dengan banyak nama karyawan dari tabel B. -
Many-to-many (* : *) Hubungan many-to-many terjadi ketika setiap record dari tabel A memiliki hubungan dengan record-record yang ada di tabel B dan sebaliknya.
2.1.5
Normalisasi Normalisasi adalah suatu teknik untuk menghasilkan sekumpulan relasi dengan sifat-sifat yang diinginkan, memenuhi kebutuhan data pada perusahaan (Connolly, 2002, p411). Tujuan utama dalam pengembangan model data logikal pada sistem basis data relasional adalah menciptakan representasi akurat suatu data, relationship antardata dan batasan-batasannya. Untuk mencapai tujuan ini, maka harus ditetapkan sekumpulan relasi. Tujuan utama dari desain basis data relasional adalah untuk mengelompokkan
atribut-atribut
ke
dalam
relasi-relasi
sehingga
meminimalisasi redundansi data dan mengurangi penggunaan tempat penyimpanan yang dibutuhkan untuh sebuah relasi dasar. Proses
normalisasi
merupakan
suatu
teknik
formal
untuk
menganalisis relasi berdasarkan primary key dan ketergantungan fungsional antaratribut. Proses ini dieksekusi dalam beberapa langkah. Setiap langkah mengacu ke bentuk normal tertentu, sesuai dengan sifat yang dimilikinya.
27
Setelah normalisasi diproses, relasi menjadi secara bertahap lebih terbatas atau kuat bentuk formatnya dan juga mengurangi tindakan update yang anomali. Ada beberapa bentuk normalisasi, yaitu: a. Unnormalized Form (UNF) Merupakan suatu tabel yang berisikan satu atau lebih grup yang berulang. Membuat tabel unnormalized yaitu dengan memindahkan data dari sumber informasi kedalam format tabel dengan baris dan kolom. b. First Normal Form (1NF) Merupakan sebuah relasi di mana setiap irisan antara baris dan kolom berisikan satu dan hanya satu nilai. c. Second Normal Form (2NF) Berdasarkan pada konsep full functional dependency, yaitu A dan B. Second normal form merupakan atribut dari sebuah relasi, B dikatakan fully dependent (bergantung penuh) terhadap A, jika B functionally dependent pada A tetapi tidak pada proper subset dari A. Second normal form merupakan sebuah relasi dalam 1NF dan setiap atribut non-primary-key bersifat fully functionally dependent pada primary key. d. Third Normal Form (3NF) Berdasarkan pada konsep ketergantungan transitif, yaitu suatu kondisi di mana A, B dan C merupakan atribut dari sebuah relasi, maka jika AÆB dan BÆC, maka C bergantung secara transitif pada A melalui B (Jika A tidak functionally dependent pada B atau C). Third
28
normal form adalah sebuah relasi dalam 1NF dan 2NF dan di mana tidak terdapat atribut non-primary-key yang bersifat bergantung secara transitif pada primary key. e. Boyce – Codd Normal Form (BCNF) Relasi yang hanya dan hanya jika setiap determinan adalah candidate key. f. Fourth Normal Form (4NF) Relasi yang terdapat pada Boyce-Codd normal form dan tidak mengandung
ketergantungan
bernilai
banyak
(multi-valued
dependency). Multi-valued dependency merupakan ketergantugan antaratribut dalam suatu relasi, misalnya untuk setiap nilai dari A merupakan satu set nilai untuk B dan C, di mana nilai-nilai B dan C tidak bergantung satu sama lain. g. Fifth Normal Form (5NF) Didefinisikan sebagai relasi yang tidak mempunyai join dependency (lossless join dependency). Lossless join dependency merupakan property of decomposition, yang meyakinkan tidak ada spurious tuples yang dihasilkan ketika relasi-relasi disatukan melalui operasi natural join. Proses-proses yang terjadi yaitu: -
UNF ke 1NF Tunjuk satu atau sekumpulan atribut sebagai kunci untuk tabel unnormalized. Identifikasikan grup yang berulang dalam tabel
29
unnormalized yang berulang untuk kunci atribut. Hapus grup yang berulang dengan cara : •
Masukkan data yang semestinya ke dalam kolom yang kosong pada baris yang berisikan data yang berulang (flattening the table).
•
Menggantikan data yang ada dengan salinan dari kunci atribut yang sesungguhnya ke dalam relasi terpisah.
-
1NF ke 2NF •
Identifikasikan primary key untuk relasi 1NF.
•
Identifikasikan ketergantungan fungsional dalam relasi.
•
Jika terdapat ketergantungan parsial terhadap primary key, maka hapus dengan menempatkannya dalam relasi yang baru bersama dengan salinan determinannya.
-
2NF ke 3NF •
Identifikasikan primary key dalam relasi 2NF.
•
Identifikasikan ketergantungan fungsional dalam relasi.
•
Jika terdapat ketergantungan transitif terhadap primary key, hapus dengan menempatkannya dalam relasi yang baru bersama dengan salinan determinannya.
-
3NF ke BCNF •
Merupakan relasi yang sama dengan relasi yang ada di dalam 3NF.
30
•
Untuk ketergantungan fungsional AÆB, ditetapkan dalam relasi maka A harus merupakan candidate key.
-
BCNF ke 4NF Menghilangkan multi-valued dependency dari relasi dengan menempatkan atribut-atribut ke dalam suatu relasi baru bersama dengan copy of determinant.
2.1.6
Database lifecycle
Gambar 2.1 Tahapan siklus database application (Connolly, 2002, p272)
31
a. Perencanaan basis data (database planning) Perencanaan basis data adalah sebuah aktivitas manajemen yang memungkinkan tahapan-tahapan dari aplikasi basis data terealisasi dengan seefektif dan seefisien mungkin (Connolly, 2002, p273). Terdapat tiga hal penting yang menyangkut perumusan sebuah strategi sistem informasi, yaitu: -
Identifikasi rencana dan sasaran perusahaan dengan penentuan kebutuhan sistem informasi berikutnya.
-
Evaluasi dari sistem informasi yang sedang berjalan untuk menentukan kelebihan dan kekurangan yang ada.
-
Penafsiran peluang teknologi informasi yang mungkin memberikan keuntungan kompetitif.
Langkah-langkah dalam perencanaan basis data: -
Mendefinisikan mission statement dari proyek basis data. Mission statement ini menjelaskan tujuan utama dari aplikasi basis data. Sebuah mission statement membantu dalam mengklarifikasi tujuan dari proyek basis data dan menyediakan jalur yang lebih jelas dalam pembuatan aplikasi basis data yang dibutuhkan secara efektif dan efisien.
-
Mengidentifikasi mission objective, setiap mission objective harus mengidentifikasikan sebuah tugas tertentu yang harus didukung oleh basis data. Asumsinya, apabila basis data mendukung mission objective maka mission statement dapat tercapai.
32
b. Definisi sistem (system definition) Definisi sistem menggambarkan lingkup dan batasan dari aplikasi basis data dan user view yang utama (Connolly, 2002, p274). User view mendefinisikan apa yang dibutuhkan dari aplikasi basis data yang dilihat dari sudut pandang sebuah peran kerja (seperti manajer atau supervisor) atau area aplikasi (seperti marketing, personalia, atau kontrol stok) (Connolly, 2002, p275). Identifikasi user view ini merupakan aspek yang penting dalam pengembangan sebuah aplikasi basis data karena user view membantu untuk memastikan bahwa tidak ada pengguna utama yang terlupakan saat mengembangkan aplikasi yang baru. Selain itu, user view juga membantu dalam pengembangan aplikasi basis data yang relatif rumit dengan memungkinkan kebutuhan dipecah menjadi bagian-bagian yang dapat diatur. c. Pengumpulan kebutuhan dan analisis (requirement collection and analysis) Pengumpulan
kebutuhan
dan
analisis
merupakan
proses
mengumpulkan dan menganalisis informasi yang berhubungan dengan bagian dari organisasi yang akan didukung oleh aplikasi basis data dan menggunakan informasi tersebut untuk mengidentifikasi kebutuhan pengguna dari sistem yang baru (Connolly, 2002, p276). Teknik yang digunakan untuk mendapatkan informasi yang dibutuhkan tersebut dinamakan teknik fact-finding. Informasi yang
33
dikumpulkan untuk setiap user view yang utama meliputi (Connolly, 2002, p276): -
Deskripsi dari data yang digunakan atau dihasilkan.
-
Detail mengenai bagaimana data digunakan atau dihasilkan.
-
Kebutuhan tambahan untuk aplikasi basis data yang baru.
d. Perancangan basis data (database design) Perancangan basis data merupakan proses untuk membuat rancangan untuk basis data yang akan mendukung operasi dan tujuan dari perusahaan (Connolly, 2002, p279). Terdapat dua pendekatan dalam perancangan basis data, yaitu: -
Pendekatan bottom-up Pendekatan ini dimulai dari atribut tingkat dasar (entitas dan relationship) yang melewati analisis dari hubungan antaratribut, yang dikelompokkan ke dalam relasi yang mewakili tipe dari entitias dan hubungan antarentitas. Pendekatan ini cocok untuk perancangan basis data yang sederhana dengan jumlah atribut sedikit.
-
Pendekatan top-down Pendekatan ini dimulai dengan pengembangan model data yang mengandung entitas tingkat tinggi beserta hubunganhubungannya
dan
melakukan
mengidentifikasikan
entitas
perbaikan tingkat
top-down
rendah,
untuk
hubungan-
hubungannya, dan atribut-atribut yang berhubungan. Pendekatan ini biasanya digambarkan dengan menggunakan konsep dari model
34
Entity-Relationship (ER), mulai dengan identifikasi entitas dan hubungan-hubungan
antarentitas,
yang
berhubungan
dengan
organisasi. Menurut Connolly (2002, p281) perancangan basis data terdiri tiga tahap utama, yaitu perancangan konseptual, logikal, dan fisikal. Berikut adalah penjelasan mengenai tahap-tahap tersebut: -
Perancangan basis data konseptual (conceptual database design) Perancangan
basis
data
konseptual
merupakan
proses
membangun sebuah model dari informasi yang digunakan dalam perusahaan, yang tidak bergantung pada pertimbangan fisikal (Connolly, 2002, p281). Model data tersebut dibuat dengan menggunakan informasi yang
didokumentasikan
dalam
spesifikasi
kebutuhan
user.
Perancangan basis data konseptual tidak bergantung sama sekali pada detail implementasi seperti DBMS, program aplikasi, bahasa pemrograman, dan pertimbangan fisikal lainnya. Tahapan yang dilakukan dalam perancangan basis data konseptual dapat diuraikan sebagai berikut (Connolly, 2002, p423437): •
Menentukan tipe entitas Mengidentifikasikan tipe entitas utama yang dibutuhkan view.
•
Menentukan tipe relationship
35
Mengidentifikasi hubungan-hubungan yang penting antartipe entitas yang telah diidentifikasikan. •
Menentukan dan menghubungkan atribut dengan entitas (relationship) Menentukan atribut-atribut apa saja yang terdapat dalam suatu entitas.
•
Menentukan atribut domain Menentukan domain pada setiap atribut yang ada di dalam model data konseptual lokal.
•
Menentukan atribut candidate key dan primary key Menentukan candidate key dari suatu entitas yang kemudian akan dipilih sebuah primary key dari candidate key yang ada.
•
Mempertimbangkan penggunaan enchanced modeling concepts Mempertimbangkan perlu tidaknya menggunakan konsep model spesialisasi atau generalisasi, agregasi, dan composition.
•
Cek model untuk redundansi Memeriksa model untuk menemukan adanya redundansi dalam model.
•
Validasi model konseptual lokal dengan transaksi user Memeriksa apakah model konseptual lokal sudah dapat memenuhi segala transaksi yang dilakukan user, jika masih ada transaksi yang tidak dapat dilakukan secara manual maka perlu dilakukan perbaikan terlebih dahulu.
36
•
Review model data konseptual lokal dengan user Melakukan pemeriksaan ulang dengan user untuk memastikan apakah model konseptual ini sudah sesuai.
-
Perancangan basis data logikal (Logical database design) Perancangan basis data logikal merupakan proses membangun sebuah model dari informasi yang digunakan dalam perusahaan berdasarkan model data spesifik, tetapi tidak bergantung pada DBMS tertentu dan pertimbangan fisikal lainnya (Connolly, 2002, p281). Tahapan yang dilakukan dalam perancangan basis data logikal adalah (Connolly, 2002, p442-472): •
Membangun dan memvalidasi data model logikal untuk setiap view, yang dapat diuraikan sebagai berikut: o Menghapus fitur yang tidak sesuai dengan model relasional yaitu dengan menghilangkan relasi biner many-to-many, relasi rekursif many-to-many, relasi kompleks, dan atribut multi-valued. o Menurunkan relasi untuk model data logikal lokal yaitu dengan membuat relasi model data logikal lokal untuk merepresentasikan entitas, relationship, dan atribut yang telah diidentifikasi.
37
o Validasi relasi-relasi menggunakan normalisasi untuk memeriksa
relasi
dalam
model
data
logikal
lokal
menggunakan teknik normalisasi. o Validasi relasi-relasi dengan transaksi user yaitu dengan memeriksa relasi yang telah dibuat pada tahap sebelumnya apakah mendukung transaksi ini untuk memastikan tidak ada kesalahan yang dibuat selama membuat relasi-relasi. o Mendefinisikan batasan integritas adalah constraint yang diharapkan untuk menjaga agar basis data tetap konsisten. Data yang disimpan ke dalam sebuah basis data haruslah valid dan konsisten. o Memeriksa kembali model data logikal lokal dengan user yaitu dengan memeriksa kembali model logikal dan menyediakan dokumentasi untuk user. •
Membangun dan memvalidasi logikal data model global, yang dapat diuraikan sebagai berikut: o Menggabungkan model data logikal lokal ke dalam model logikal global yang menggambarkan perusahaan, yaitu dengan menggabungkan entitas pada model data lokal yang sama, memasukkan entitas yang unik pada setiap model data lokal, menggabungkan hubungan dari model data lokal, memasukkan hubungan yang unik dari setiap model data lokal, melakukan pemeriksaan untuk entitas yang hilang, foreign
key,
dan
batasan
integritas,
kemudian
38
menggambarkan
global
ER,
dan
memperbaharui
dokumentasi. o Memvalidasi
model
data
logikal
global
dengan
menggunakan teknik normalisasi dan meyakinkan relasi tersebut mendukung kebutuhan transaksi yang ada. o Menentukan apakah akan sering terjadi perubahan yang drastis di masa yang akan datang dan menilai apakah model data logikal global ini dapat mengakomodasikan perubahan yang terjadi. o Melakukan pemeriksaan kembali dengan user untuk menentukan apakah model ini sudah sesuai dengan representasi perusahaan. -
Perancangan basis data fisikal (Physical database design) Perancangan basis data fisikal adalah proses menghasilkan deskripsi dari implementasi basis data dalam secondary storage. Menjelaskan basis relasi, organisasi file, dan penggunaan index untuk mencapai pengaksesan data yang efisien dan hal lain yang berhubungan dengan batasan integritas dan masalah keamanan (Connoly, 2002, p282). Tahapan yang dilakukan pada perancangan basis data fisikal adalah (Connolly, 2002, p479-503): •
Menerjemahkan model data logikal global untuk target DBMS, yang dapat diuraikan sebagai berikut: o Merancang relasi-relasi dasar
39
Menentukan bagaimana merepresentasikan relasi dasar yang telah diidentifikasikan di dalam model data logikal global ke dalam DBMS. o Merancang representasi dari data yang diturunkan Menentukan bagaimana merepresentasikan beberapa data yang diturunkan dalam model data logikal global ke dalam DBMS. o Merancang batasan perusahaan •
Merancang representasi fisikal, yang dapat diuraikan sebagai berikut: o Menganalisa transaksi o Memilih organisasi file o Memilih indeks-indeks o Memperkirakan kebutuhan disk space
• Merancang user view. • Merancang mekanisme keamanan. e. Pemilihan DBMS (DBMS selection) Tahap ini bertujuan untuk memilih DBMS yang tepat untuk mendukung aplikasi basis data (Connolly, 2002, p284). Tahap-tahap utama untuk memilih DBMS: -
Mendefinisikan persyaratan studi referensi
-
Mendaftar dua atau tiga produk
-
Evaluasi produk
40
-
Rekomendasi pilihan dan laporan produk
f. Perancangan aplikasi (application design) Perancangan
aplikasi
merupakan
perancangan
tampilan
antarmuka dan aplikasi program yang digunakan dan memproses basis data (Connolly, 2002, p287). Terdapat dua aspek dalam perancangan aplikasi, yaitu: -
Perancangan transaksi (transaction design) Merupakan tindakan ataupun serangkaian tindakan yang dilakukan oleh satu pengguna ataupun program aplikasi, yang mengakses atau mengubah isi dari basis data (Connolly, 2002, p288). Tujuan
dari
perancangan
transaksi
adalah
untuk
mendefinisikan dan mendokumentasikan karakteristik tingkat tinggi dari transaksi yang dibutuhkan pada basis data, meliputi: •
Data yang akan digunakan oleh transaksi.
•
Karakteristik fungsional dari transaksi.
•
Hasil dari transaksi.
•
Kepentingan untuk pengguna.
•
Nilai yang diharapkan dari pemakaian. Perancangan ini harus dilakukan lebih awal dalam proses
perancangan
untuk
memastikan
bahwa
basis
data
yang
diimplementasikan mampu mendukung semua transaksi yang dibutuhkan. Ada tiga jenis transaksi, yaitu:
41
•
Retrieval transactions Digunakan untuk mengambil data untuk ditampilkan pada layar atau pada laporan.
•
Update transactions Digunakan untuk memasukkan record baru, menghapus record lama, atau mengubah record yang terdapat di dalam basis data.
•
Mixed transactions Meliputi retrieval (pengambilan) dan update (pengubahan) data.
-
Perancangan antarmuka (user interface design)
g. Membuat prototipe (prototyping) Membuat prototipe berarti pembuatan model kerja dari aplikasi basis data (Connolly, 2002, p291). Prototipe merupakan sebuah model kerja yang biasanya tidak memiliki semua fitur yang diminta atau menyediakan semua fungsionalitas dari sistem yang final. Tujuan dari pembuatan prototipe ini adalah memungkinkan pengguna untuk menggunakan prototipe tersebut untuk menentukan fitur-fitur dari sistem yang bekerja dengan baik, dan jika mungkin mengusulkan sistem yang bekerja dengan baik, dan mengusulkan peningkatan atau bahkan fitur-fitur baru pada aplikasi basis data. h. Implementasi (implementation) Implementasi merupakan realisasi fisikal dari basis data dan perancangan aplikasi (Connolly, 2002, p292).
42
Implementasi basis data dicapai dengan menggunakan DDL (Data Definition Language) dari DBMS yang telah dipilih atau menggunakan GUI (Graphical User Interface), yang menyediakan fungsi yang sama sambil menyembunyikan perintah DDL tingkat rendah. Program aplikasi diimplementasikan menggunakan 3GL atau 4GL (Third Generation Language atau Fourth Generation Language). i. Konversi dan pemuatan data (data conversion and loading) Konversi dan pemuatan data adalah proses memindahkan data yang sudah ada ke dalam basis data yang baru dan mengubah aplikasi yang ada untuk dapat berfungsi dengan basis data yang baru (Connolly, 2002, p292). Tahap ini diperlukan saat sistem basis data yang baru menggantikan sistem yang lama. j. Pengujian (testing) Pengujian merupakan proses menjalankan program aplikasi dengan tujuan untuk menemukan kesalahan-kesalahan (Connolly, 2002, p293). k. Pemeliharaan operasional (operational maintenance) Pemeliharaan operasional merupakan proses mengamati dan memelihara sistem setelah dilakukannya instalasi (Connolly, 2002, p293). Aktivitas-aktivitas yang terlibat dalam tahap ini adalah: -
Mengamati performa dari sistem, apabila performa jatuh di bawah tingkat yang dapat diterima, maka perbaikan atau pengorganisasian dari basis data perlu dilakukan.
-
Memelihara dan memperbaharui aplikasi basis data (apabila dibutuhkan). Kebutuhan baru disatukan dengan aplikasi basis data.
43
2.2 Teori-Teori Khusus yang Berhubungan dengan Topik yang Dibahas 2.2.1
Pembelian Menurut Mulyadi (2001, p299), sistem pembelian digunakan dalam perusahaan untuk pengadaan barang yang diperlukan oleh perusahaan. Fungsi yang terkait dalam sistem pembelian adalah: -
Fungsi gudang: 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.
-
Fungsi pembelian: Fungsi pembelian bertanggung jawab untuk memperoleh informasi mengenai harga barang, menentukan pemasok yang dipilih dalam pengadaan barang, mendapatkan informasi mengenai permintaan pembelian dari gudang dan mengeluarkan order pembelian kepada pemasok yang dipilih.
-
Fungsi penerimaan: Fungsi penerimaan bertanggung jawab untuk memeriksa kualitas, jenis dan kuantitas barang yang diterima dari pemasok dengan tujuan untuk menentukan dapat tidaknya barang tersebut diterima oleh perusahaan yang akan digunakan untuk proses produksi.
-
Fungsi akuntansi: Fungsi fungsi yang terkait dalam transaksi pembelian adalah fungsi pencatat hutang dan fungsi pencatat persediaan. Fungsi pencatat hutang bertanggung jawab untuk mencatat transaksi pembelian ke dalam
44
register bukti kas keluar dan untuk menyelenggarakan arsip dokumen sumber (bukti kas keluar) yang berfungsi sebagai catatan hutang atau menyelenggarakan kartu hutang sebagai buku pembantu hutang. Fungsi pencatat persediaan bertanggung jawab untuk mencatat harga pokok persediaan barang yang dibeli ke dalam kartu persediaan. Terdapat lima langkah dalam transaksi pembelian, yaitu : a. Order pembelian Order pembelian adalah pemesanan barang ke supplier. Data yang diperlukan, yaitu: nomor order pembelian yang unik, tanggal order pembelian, data staff, data supplier, data barang, dan jumlah barang yang dipesan. b. Pengiriman pembelian Pengiriman pembelian adalah pengiriman barang yang diterima staff dari supplier. Pengiriman pembelian terdapat barang, faktur pembelian, dan surat jalan pembelian dari supplier. Data yang diperlukan, yaitu nomor pengiriman pembelian yang unik, tanggal pengiriman pembelian, kode order pembelian, nomor surat jalan pembelian dari supplier, nomor faktur pembelian, tanggal jatuh tempo pembayaran pembelian yang harus ditaati perusahaan, data barang yang dikirim, jumlah barang yang dikirim, total pembelian untuk setiap barang, subtotal pembelian keseluruhan belum termasuk diskon dan PPN, diskon pembelian, PPN pembelian, grand total pembelian setelah dikurangi diskon dan ditambah PPN. c. Retur pembelian
45
Retur pembelian adalah pengembalian barang kepada supplier. Data yang diperlukan, yaitu nomor retur pembelian yang unik, tanggal retur pembelian, data supplier, kode pengiriman pembelian, data barang, jumlah barang yang dikembalikan, total retur pembelian untuk setiap barang, subtotal retur pembelian keseluruhan belum termasuk diskon dan PPN, grand total retur pembelian setelah dikurangi diskon saat pembelian dan ditambah PPN saat penjualan. d. Hutang Hutang adalah hutang perusahaan karena pembelian barang yang pembayaran pembeliannya belum lunas. Data yang diperlukan, yaitu nomor hutang yang unik, nomor pengiriman pembelian, dan total hutang perusahaan. e. Pembayaran pembelian Pembayaran pembelian adalah pembayaran kepada supplier atas barang yang dibeli. Pembayaran pembelian dilakukan berdasarkan faktur pembelian yang bisa dicek di tabel pengiriman pembelian. Data yang diperlukan, yaitu nomor pembayaran pembelian yang unik, tanggal pembayaran pembelian, kode faktur pembelian, data supplier, total pembayaran yang dilakukan perusahaan kepada supplier. 2.2.2
Penjualan Menurut Mulyadi (2001, p202), penjualan mempunyai peranan terpenting dalam perusahaan karena penjualan merupakan sumber kelangsungan hidup suatu perusahaan. Semakin besar jumlah penjualan semakin besar pula laba yang diperoleh. Penjualan terjadi apabila pihak
46
yang satu (penjual) menyerahkan hak milik suatu barang, sedangkan pihak lain (pembeli) membayar barang baik secara tunai maupun kredit sebagai imbalan dari perolehan hak milik tersebut. Kegiatan penjualan terdiri dari transaksi penjualan barang atau jasa, baik secara tunai maupun kredit. a. Penjualan tunai Menurut Mulyadi (2001, p202), penjualan tunai dilakukan oleh perusahaan dengan cara mewajibkan pembeli melakukan pembayaran harga terlebih dahulu sebelum barang diserahkan oleh perusahaan kepada pembeli. Setelah uang diterima perusahaan, barang kemudian diserahkan kepada pembeli dan transaksi penjualan tunai kemudian dicatat oleh perusahaan. b. Penjualan kredit Menurut Mulyadi (2001, p203), penjualan kredit adalah penjualan yang pembayarannya dilakukan beberapa waktu kemudian setelah pembeli menerima barang yang dipesannya. Pembayaran biasanya dilakukan dalam jangka waktu yang telah disepakati oleh kedua belah pihak.
Menurut
Mulyadi,
penjualan
kredit
dilaksanakan
oleh
perusahaan dengan cara mengirimkan barang sesuai dengan pesanan yang diterima dari pembeli dan untuk jangka waktu tertentu perusahaan menagih kepada pembeli tersebut c. Fungsi-fungsi penjualan -
Fungsi penjualan Dalam
transaksi
penjualan
kredit,
fungsi
penjualan
bertanggung jawab untuk menerima surat order dari pembeli,
47
mengedit order dari pelanggan untuk menambahkan informasi yang belum ada pada surat order tersebut (seperti spesifikasi barang dan rute pengiriman), meminta otoritas kredit, menentukan tanggal pengiriman dan lokasi gudang di mana barang akan dikirim, serta mengisi surat order pengiriman. Fungsi ini juga bertanggung jawab untuk membuat back order pada saat diketahui tidak tersedianya persediaan untuk memenuhi order dari pelanggan. -
Fungsi kredit Fungsi ini berada dibawah fungsi keuangan yang dalam transaksi penjualan kredit bertanggung jawab untuk meneliti status kredit pelanggan dalam memberikan otoritas pembelian kredit kepada pelanggan.
-
Fungsi gudang Dalam transaksi penjualan kredit fungsi ini bertanggung jawab untuk menyimpan barang dan menyiapkan barang yang dipesan oleh pelanggan, serta menyerahkan barang ke fungsi pengiriman.
-
Fungsi pengiriman Dalam transaksi penjualan kredit, fungsi ini bertanggung jawab untuk menyerahkan barang atas dasar surat order pengiriman yang diterimanya dari fungsi penjualan. Fungsi ini bertanggung jawab untuk menjamin bahwa tidak ada barang yang keluar dari perusahaan tanpa ada otoritas dari orang yang berwenang. Otoritas ini dapat berupa surat order pengiriman yang telah ditandatangani
48
oleh fungsi penjualan, memo debit yang ditangani oleh fungsi pembelian untuk barang dikirimkan kembali kepada pemasok (retur pembelian), surat perintah kerja dari fungsi produksi mengenai penjualan atau pembuangan aktiva tetap yang sudah tidak dipakai lagi. -
Fungsi penagihan Dalam transaksi penjualan kredit, fungsi ini bertanggung jawab untuk membuat dann mengirimkan faktur penjualan kepada pelanggan, serta menyediakan salinan faktur demi kepentingan pencatatan transaksi penjualan oleh fungsi akuntansi.
-
Fungsi akuntansi Dalam transaksi penjualan kredit, fungsi ini bertanggung jawab untuk mencatat piutang yang timbul melalui transaksi penjualan kredit dan membuat serta mengirimkan pernyataan piutang kepada debitur, serta membuat laporan penjualan. Di samping itu, fungsi ini juga bertanggung jawab untuk mencatat harga pokok persediaan yang dicatat ke dalam kartu persediaan. Terdapat enam langkah dalam transaksi penjualan, yaitu: •
Mencatat pesanan penjualan (order penjualan) .
•
Mencatat pengiriman penjualan (faktur penjualan dan surat jalan).
•
Mencatat pesanan penjualan yang belum terkirim.
•
Mencatat retur penjualan.
49
•
Menghitung piutang.
•
Mencatat pembayaran atas penjualan.
d. Order penjualan Order penjualan adalah pemesanan barang yang dilakukan oleh pelanggan. Data yang diperlukan, yaitu nomor order penjualan yang unik, tanggal order penjualan, data staff yang melakukan transaksi order penjualan, data pelanggan yang memesan barang, data barang, dan jumlah barang yang dipesan. e. Faktur penjualan Faktur penjualan adalah surat tagihan atau bon kepada pelanggan atas barang yang telah dikirim kepadanya. Data yang diperlukan, yaitu: nomor faktur penjualan yang unik, tanggal pembuatan faktur penjualan, kode order penjualan yang mendasari pembuatan faktur penjualan, tanggal jatuh tempo pembayaran penjualan, data pelanggan yang menerima faktur penjualan, data barang, jumlah barang, total penjualan untuk setiap kode barang, subtotal penjualan keseluruhan belum termasuk diskon dan PPN, diskon penjualan, PPN penjualan, grand total penjualan setelah dikurangi diskon dan ditambah PPN. f. Surat jalan Surat jalan adalah surat izin jalan untuk melakukan pengiriman penjualan. Data yang diperlukan, yaitu nomor surat jalan penjualan yang unik, tanggal surat jalan penjualan, nomor faktur penjualan, data
50
staff, data pelanggan, data barang yang dikirim, jumlah barang, kode kendaraan yang mengantar barang pesanan ke pelanggan. g. Retur penjualan Retur penjualan adalah pengembalian barang oleh pelanggan. Data yang diperlukan, yaitu nomor retur penjualan yang unik, tanggal retur penjualan, data pelanggan, kode faktur penjualan, data barang, jumlah barang yang dikembalikan, total retur penjualan untuk setiap barang, subtotal retur penjualan keseluruhan, grand total retur penjualan dikurangi diskon saat penjualan dan ditambah PPN saat penjualan. h. Piutang Piutang adalah hutang pelanggan atas pembelian barang yang pembayarannya belum lunas. Data yang diperlukan, yaitu: nomor piutang yang unik, nomor faktur penjualan, dan total piutang perusahaan. i. Pembayaran penjualan Pembayaran penjualan adalah pembayaran oleh pelanggan kepada perusahaan. Pembayaran penjualan dapat dilakukan satu atau lebih kali dan berdasarkan faktur penjualan. Data yang diperlukan, yaitu: nomor pembayaran penjualan yang unik, tanggal pembayaran penjualan, kode faktur penjualan, data pelanggan, total pembayaran yang dilakukan pelanggan.
51
2.2.3
Persediaan Menurut Mulyadi (2001, p553), dalam perusahaan dagang, persediaan hanya terdiri dari satu golongan, yaitu persediaan barang dagangan, yang merupakan barang yang dibeli dengan tujuan dijual kembali. Dari definisi tersebut, dapat disimpulkan bahwa persediaan merupakan bahan-bahan yang disediakan untuk proses produksi atau untuk dijual kembali.