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
OBrien (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 OBrien (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 4
th
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 gagal, dan
mengembalikan basis data ke keadaan semula.
|
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
masing-
masing 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
dari entitas kuat ini adalah setiap kejadian entitas diidentifikasikan
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 hubungan-
hubungannya dan melakukan perbaikan top-down untuk
mengidentifikasikan entitas tingkat
rendah,
hubungan-
hubungannya, dan atribut-atribut yang berhubungan. Pendekatan ini
biasanya digambarkan dengan menggunakan konsep dari model
|
34
dikumpulkan
untuk setiap
user view
yang
utama
meliputi
(Connolly,
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, p423-
437):
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.
|