6 BAB 2 LANDASAN TEORI
2.1 Teori-teori Database 2.1.1 Pengertian Basisdata Connolly dan Begg (2002, p.14) mendefinisikan basisdata sebagai “a shared collection of logically related data, and a description of this data, designed to meet the information needs of an organization”, yang berarti sekumpulan data yang terhubung secara logis yang digunakan secara bersama, dan sebuah penjelasan dari data ini, yang dirancang untuk memenuhi kebutuhan informasi dari sebuah organisasi. Menurut Greg Riccardi (2001, p.18) basisdata adalah bagian dari sistem basisdata yang terfokus pada pembuatan dan penyimpanan dari isi informasi. Definisi basisdata menurut Jeffrey A. Hofter, Mary B. Prescott, Fred R. McFadden (2005, p.4) adalah “ an organized collection of logically related data ” , yang berarti sekumpulan data yang berhubungan secara logikal yang terkoordinasi.
2.1.2 Database Management System 2.1.2.1 Pengertian DBMS Connolly dan Begg (2002, p.16) mendefinisikan Database Management System (DBMS) sebagai “ a software system that enables users to define, create, maintain, and control access to the database”, yang berarti sistem perangkat lunak yang membantu pengguna untuk
7 mendefinisikan, menciptakan, memelihara, dan kontrol akses terhadap basisdata. Menurut Greg Riccardi (2001, p.18) DBMS adalah kombinasi dari perangkat lunak dan penyimpanan data yang mampu membuat dan memelihara sistem basisdata. Jeffrey A. Hofter, Mary B. Prescott, Fred R. McFadden (2005, p.7) mendefinisikan DBMS sebagai “ software system that is used to create, maintain, and provide controlled access to user databases ” yang berarti sistem perangkat lunak yang digunakan untuk membuat, memelihara, dan menyediakan kontrol akses pada pengguna basisdata.
2.1.2.2 Karakteristik DBMS Menurut Atzeni, Ceri, Paraboschi, dan Torlone (1999, p.4), karakteristik DBMS antara lain: •
Tahan Uji Kapasitas sistem untuk menjaga isi dari basisdata (atau setidaknya memungkinkan rekonstruksi) apabila terjadi kerusakan perangkat keras atau perangkat lunak. Untuk memenuhi hal ini, DBMS menyediakan fungsi spesifik untuk backup dan recovery.
•
Privasi Data Setiap pemakai, yang dikenal melalui username yang spesifik terhadap akses pemakai tersebut pada DBMS, hanya berhak untuk melakukan sejumlah operasi tertentu terhadap data, melalui mekanisme otorisasi.
8 •
Efisiensi Kapasitas untuk melakukan operasi menggunakan sejumlah sumber daya (waktu dan ruang) yang diperlukan bagi tiap pemakai. Karakteristik ini tergantung pada teknik yang digunakan dalam implementasi DBMS, dan pada sebaik apa produk dirancang.
Perlu
ditekankan
bahwa
DBMS
menyediakan
kombinasi fitur yang luas yang memerlukan banyak sumber daya, sehingga seringkali menempatkan persyaratan yang berat pada sumber daya yang disediakan oleh lingkungan operasional. •
Efektifitas Kapasitas DBMS untuk membuat aktifitas pemakainya produktif dalam setiap segi. Hal ini jelas merupakan defisini umum dan tidak berhubungan dengan fungsi spesifik, dimana DBMS menyediakan berbagai pelayanan dan fungsi bagi tiap pemakai yang berbeda. Tugas merancang basisdata dan aplikasi yang menggunakannya ditujukan untuk memastikan sistem yang baik dan secara keseluruhan efektif.
2.1.2.3 Komponen Lingkungan DBMS Menurut Connolly dan Begg (2002, p.18) terdapat 5 komponen utama dalam lingkungan DBMS yaitu : 1. Perangkat Keras DBMS dan aplikasi membutuhkan perangkat keras untuk bekerja. Perangkat keras dapat mencakup dari sebuah komputer personal
9 tunggal, single mainframe, sampai sebuah jaringan komputer. Perangkat keras pada umumnya tergantung pada kebutuhan organisasi dan penggunaan DBMS. Beberapa DBMS berjalan hanya pada perangkat keras atau sistem operasi tertentu ketika DBMS yang lain bekerja pada banyak perangkat keras dan sistem operasi lainnya. Sebuah DBMS membutuhkan jumlah memori utama dan disk space yang minimum untuk bekerja 2. Perangkat Lunak Komponen perangkat lunak terdiri dari perangkat lunak DBMS itu sendiri dan program aplikasi serta sistem operasi, termasuk perangkat lunak jaringan jika DBMS digunakan pada jaringan. Pada umumnya,
program
aplikasi
ditulis
dalam third-generation
language (3GL) seperti ‘C’, C++, Java, Visual Basic, Cobol, Fortran, Ada, atau Pascal, atau menggunakan fourth-generation language (4GL) seperti SQL, yang terdapat dalam third-generation language. 3. Data Komponen lingkungan DBMS yang paling penting dari sudut pandang end user adalah data. Data bertindak sebagai jembatan antara komponen mesin dan komponen manusia. Basisdata terdiri dari data operasional dan metadata. Struktur dari basisdata disebut skema. 4. Prosedur
10 Prosedur menunjuk pada instruksi dan aturan yang meregulasi desain dan penggunaan basisdata. Pengguna dari sistem dan staf yang
mengatur
basisdata
membutuhkan
prosedur
yang
didokumentasikan yang menjelaskan cara menggunakan atau menjalankan sistem. Prosedur berisi instruksi bagaimana cara untuk: •
Membukukan DBMS
•
Menggunakan fasilitas DBMS tertentu atau program aplikasi.
•
Memulai dan memberhentikan DBMS.
•
Membuat kopian atau backup basisdata.
•
Mengendalikan kegagalan perangkat lunak atau perangkat keras.
•
Mengubah struktur tabel, mengorganisasi basisdata pada banyak disk, meningkatkan hasil kerja dan penyimpanan data arsip pada penyimpanan sekunder.
5. Manusia Komponen akhir adalah manusia yang dilibatkan dengan sistem.
2.1.2.4 Pemeran dalam lingkungan DBMS Menurut Connolly dan Begg (2002, p.21) orang-orang yang berperan dalam lingkungan DBMS yaitu :
11 1. Data Administrators dan Database Administrators Data Administrator bertanggung jawab terhadap pengaturan sumber data
termasuk
perencanaan
basisdata,
pengembangan,
dan
pemeliharaan, kebijakan dan prosedur, serta desain basisdata secara logika atau konseptual. Database Administrator bertanggung jawab terhadap realisasi fisik dari
basisdata,
termasuk
rancangan
fisik
basisdata
dan
penerapannya, keamanan dan kontrol integritas, pemeliharaan sistem operasional, dan memastikan penampilan aplikasi untuk pengguna. 2. Database Designers Ada dua tipe database designer, yaitu: •
Logical database designer Logical database designer terfokus untuk mengidentifikasi atau mengenal data (entity dan atribut), hubungan antara data, dan batasan data yang disimpan dalam basisdata.
•
Physical database designer Physical database designer memutuskan bagaimana rancangan logika basisdata direalisasikan secara fisik. Physical database designer harus mengerti tentang pemetaan rancangan logika basisdata ke dalam sekumpulan tabel dan batasan integritas, memilih stuktur penyimpanan yang spesifik dan metode akses data untuk mencapai tampilan yang baik, dan merancang ukuran keamanan yang diperlukan data.
12 3. Application Developers Application
developer
bertanggung
jawab
untuk
mengimplementasikan program aplikasi yang dibutuhkan EndUsers ketika basisdata sudah diimplementasikan. 4. End-Users End-User adalah klien dalam basisdata,yang mana telah dirancang, diterapkan, dan dipelihara untuk menyediakan informasi yang mereka butuhkan.
2.1.2.5 Keuntungan dan Kerugian DBMS Menurut Connolly dan Begg (2002, p25), keuntungan DBMS adalah: •
Mengontrol redudansi data Pendekatan basisdata tidak dapat mengurangi redudansi secara keseluruhan, tetapi dapat mengontrol jumlah redudansi dalam basisdata.
•
Konsistensi data Dengan mengurangi dan mengontrol redudansi, maka akan mengurangi resiko terjadinya data yang tidak konsisten.
•
Mendapat informasi yang lebih banyak dari sejumlah data Dengan integrasi dari data operasional, hal tersebut memungkinkan organisasi memperoleh informasi tambahan dari data yang sama.
•
Penggunaan data bersama
13 Basisdata milik organisasi dapat dibagi kepada semua pengguna yang berhak. •
Meningkatkan integritas data Integritas basisdata menunjuk validasi dan konsitensi data yang disimpan. Integritas basisdata biasanya diperlihatkan dalam constraints yang merupakan aturan konsistensi yang tidak boleh dilanggar.
•
Meningkatkan keamanan Keamanan basisdata adalah proteksi basisdata dari pengguna yang tidak memiliki hak akses.
•
Standar pelaksanaan Integrasi mengijinkan DBA untuk mendefinisikan dan melakukan standar-standar yang dibutuhkan.
•
Skala ekonomi Mengkombinasikan semua data operasional perusahaan menjadi satu basisdata, dan membuat sekumpulan aplikasi yang dapat bekerja pada satu sumber data, dapat menghasilkan penghematan data.
•
Keseimbangan kebutuhan yang berbeda Setiap pengguna atau departemen memiliki kebutuhan yang mungkin bertentangan dengan pengguna yang lain. Sejak basisdata dikontrol oleh seorang DBA, maka DBA dapat membuat keputusan mengenai rancangan dan penggunaan operasional basisdata
14 sehingga akan menyediakan daya guna yang optimal untuk aplikasi yang penting. •
Meningkatkan akses dan respon terhadap data Banyak DBMS menyediakan query language atau penulis laporan yang memungkinkan pengguna untuk menanyakan pertanyaan ad hoc dan untuk mendapat informasi yang dibutuhkan langsung tanpa harus memerlukan seorang programmer untuk menulis perangkat lunak untuk menyaring informasi tersebut dari basisdata.
•
Meningkatkan produktivitas Banyak DBMS menyediakan lingkungan fourth-generation yang terdiri dari alat-alat untuk menyederhanakan pengembangan dari aplikasi basisdata.
•
Meningkatkan pemeliharaan melalui data yang independent DBMS memisahkan deskripsi data dari aplikasi, sehingga membuat aplikasi tidak terganggu ketika terjadi perubahan pada deskripsi data.
•
Meningkatkan konkurensi DBMS mengatur akses basisdata bersama-sama dan memastikan tidak ada gangguan.
•
Meningkatkan layanan perbaikan dan backup Sistem berbasis file menempatkan tanggung jawab pada pengguna untuk menyediakan ukuran untuk melindungi data dari kegagalan system computer atau program aplikasi. Sebaliknya, modern DBMS
15 menyediakan fasilitas untuk meminimalkan jumlah proses yang hilang karena kegagalan. Menurut Connolly dan Begg (2002, p29), kerugian DBMS adalah: •
Kompleksitas Ketetapan dari fungsionalitas yang kita harapkan dari sebuah DBMS yang baik akan membuta DBMS tersebut menjadi sebuah perangkat lunak yang sangat kompleks
•
Ukuran Kompleksitas dan fungsionalitas yang luas menyebabkan DBMS menjadi sebuah bagian yang sangat besar dari perangkat lunak, menempati banyak ruang hard disk dan membutuhkan memory tambahan agar dapat berjalan dengan efisien.
•
Biaya DBMS Harga dari DBMS beragam, tergantung pada lingkungan dan fungsionalitas yang diberikan.
•
Biaya hardware tambahan Kebutuhan penyimpanan data untuk DBMS dan basisdata akan memerlukan tambahan ruang penyimpanan.
•
Biaya konversi Dalam beberapa situasi, biaya DBMS dan perangkat keras tambahan tidak sesuai dibandingkan dengan biaya untuk merubah aplikasi yang sudah ada untuk berjalan pada DBMS yang baru.
•
Daya Guna
16 Biasanya, sebuah sistem berbasis file ditulis untuk aplikasi yang spesifik dan menghasilkan daya guna yang tinggi. Bagaimanapun juga, DBMS ditulis agar lebih luas, untuk memenuhi banyak aplikasi. Efeknya, beberapa aplikasi tidak berjalan secepat biasanya. •
Dampak kesalahan yang lebih tinggi Sentralisasi sumber meningkatkan kelemahan-kelemahan sistem. Selama semua pengguna dan aplikasi tergantung pada kehadiran DBMS, kegagalan beberapa komponen dapat menyebabkan terhentinya operasi.
2.1.3 Data Definiton Language Connolly dan Begg (2002, p40) mendeskripsikan Data Definition Language sebagai sebuah bahasa yang mengijinkan DBA atau pengguna untuk mendeskripsikan dan menamai entity, atribut, dan hubungan yang dibutuhkan oleh aplikasi, bersama dengan aturan integritas dan keamanan yang berhubungan. SQL Data Definition Language (DDL) mengijinkan objek basisdata seperti schemas, domains,tables, views, dan indexes dibuat dan dihapus. Beberapa contoh DDL menurut Martina (2003, p.58) yaitu: 1.
Create table Perintah CREATE TABLE digunakan untuk membuat tabel dengan mendefinisikan tipe data untuk tiap kolom. Bentuk umum: CREATE TABLE Table_name
17 (Column_name dataType [NULL|NOTNULL], Column_name dataType [NULL|NOTNULL] …) 2.
Alter table Perintah ALTER TABLE digunakan untuk menambah atau mengurangi kolom dan batasan. Bentuk umum: ALTER TABLE Table_name [ADD Column_name dataType [NULL|NOTNULL]] [DROP Column_name dataType [RESTRICT|CASCADE]] [ADD Contrain_name] [DROP Constrain_name [RESTRICT|CASCADE]]
3.
Drop Table Perintah DROP TABLE digunakan untuk membuang atau menghapus tabel dengan semua data di dalamnya. Bentuk umum: DROP TABLE Table_name;
4.
Create index Perintah CREATE INDEX digunakan untuk memberi indeks pada tabel. Bentuk umum: CREATE [UNIQUE] INDEX Index_name ON Table_name (Column_name [,Column_name] …)
5.
Drop index
18 Perintah DROP INDEX digunakan untuk membuang atau menghapus indeks yang dibuat sebelumnya. Bentuk umum: DROP INDEX Index_name
2.1.4 Data Manipulation Language Connolly dan Begg (2002, p40) mendeskripsikan Data Manipulation Language sebagai sebuah bahasa yang menyediakan sekumpulan operasi untuk mendukung operasi dasar dari manipulasi data yang terjadi dalam basisdata. Operasi dalam manipulasi data, biasanya meliputi memasukkan data baru ke dalam basisdata, memodifikasi data yang tersimpan di dalam basisdata, membaca data yang ada di dalam basisdata. menghapus data dari basisdata. DML dibedakan menjadi dua tipe, yaitu: •
Procedural DML
Procedural DML adalah sebuah bahasa yang mengijinkan para penggunanya untuk memberitahu sistem tentang data apa yang dibutuhkan dan bagaimana untuk membaca data secara tepat. •
Non-Procedural DML
Non-Procedural DML adalah sebuah bahasa yang mengijinkan para penggunanya untuk menyatakan data apa yang dibutuhkan dibandingkan untuk menyatakan bagaimana data tersebut dibaca. Beberapa contoh DML menurut Martina (2003, p.60) yaitu: 1.
Select
19 Perintah SELECT digunakan untuk menampilkan sebagian atau seluruh isi dari sebuah tabel dan menampilkan kombinasi isi dari beberapa tabel. Bentuk umum: SELECT Column_name FROM Table_name WHERE Condition 2.
Update Perintah UPDATE digunakan untuk mengubah isi satu atau beberapa atribut dari suatu tabel. Bentuk umum: UPDATE Table_name SET Column1=Value1, Column2=Value2,… WHERE Condition
3.
Insert Perintah INSERT digunakan untuk menambah satu atay beberapa baris nilai baru ke dalam tabel. Bentuk umum: INSERT INTO Table_name (Column list) VALUES (value list)
4.
Delete Perintah DELETE digunakan untuk menghapus sebagian atau seluruh isi tabel. Bentuk umum: DELETE FROM Table_name WHERE Condition
20
2.1.5 Normalisasi Menurut Connolly dan Begg (2002,p379), normalisasi adalah teknik untuk mengorganisasikan data ke dalam tabel-tabel untuk memenuhi kebutuhan pemakai di dalam sebuah organisasi. Tujuan dari normalisasi adalah untuk menghilangkan kerangkapan data, untuk mengurangi kompleksitas dan untuk mempermudah modifikasi data. Secara umumnya normalisasi dibagi menjadi tiga tingkatan, yaitu bentuk normal pertama (1NF) berdasarkan penghilangan repeating group, bentuk normal kedua (2NF) berdasarkan pada ketergantungan fungsional, bentuk normal ketiga (3NF) yang berdasarkan pada ketergantungan transitif. BCNF (Boycode-Codd Normal Form) yang merupakan penguatan bentuk normal ketiga, bentuk normal keempat yang berdasarkan ketergantungan nilai jamak (multi-value dependency), dan bentuk normal kelima yang juga disebut project-join normal form (PJNF). 1. 1NF UNF adalah sebuah tabel yang mengandung lebih dari satu bagian yang berulang (repeating group). Bentuk normal pertama adalah sebuah hubungan dimana irisan (intersection) dari setiap baris dan kolom hanya mengandung satu nilai. Untuk mengubah tabel UNF ke dalam bentuk normal pertama (1NF) harus mengidentifikasi dan menghilangkan bagian yang berulang (repeating group) pada tabel. Sebuah repeating group adalah sebuah atribut atau kumpulan atribut pada sebuah tabel yang
21 terdapat lebih dari satu nilai (multiple) untuk sebuah occurance tunggal dari kunci (key) atributnya yang ditunjuk dalam tabel. Ada dua pendekatan umum untuk menghilangkan repeating group pada tabel UNF, antara lain: a. pendekatan pertama dengan menghilangkan repeating group dengan memasukkan data yang berlebihan ke dalam kolom dan baris kosong. Sehingga hasil dari tabel nantinya hanya mengandung nilai atomic (tunggal). b. pendekatan
kedua,
menghilangkan
repeating
group
dengan
menempatkan data yang berlebihan, selanjutnya dengan meng-copy atribut kuncinya yang asli dalam sebuah relasi yang dipisahkan. Kedua pendekatan ini benar. Tetapi, pendekatan kedua awalnya menghasilkan relasi paling sedikit pada 1NF dengan mengurangi redudansi. Jika menggunakan pendekatan pertama, relasi dari 1NF adalah buruk, selanjutnya selama langkah normalisasi berikutnya akan menghasilkan relasi yang sama yang dihasilkan oleh pendekatan kedua. Akan tetapi hasil dari normalisasi bentuk pertama masih bisa mnyebabkan update anomalies, sehingga diperlukan normalisasi ke tahapan selanjutnya yang dinamakan bentuk normal kedua (2NF). 2. 2 NF Bentuk normal kedua adalah berdasarkan konsep ketergantungan fungsional penuh (full functional dependency). Full functional dependency dinyatakan dengan jika A dan B adalah atribut dari suatu relasi. B adalah secara fungsional bergantung pada A, tetapi bukan merupakan himpunan
22 bagian dari A. Jelasnya bentuk normal kedua adalah sebuah relasi di dalam bentuk normal pertama dan setiap atribut yang bukan primary key (non primary key) adalah secara fungsional tergantung pada primary key. Proses normalisasi dari relasi 1NF ke 2NF melibatkan penghilangan dari bagian yang ketergantungan. 3. 3NF Bentuk normal ketiga adalah berdasarkan pada konsep peralihan ketergantungan (transitive dependency). Transitive dependency adalah sebuah kondisi dimana A, B, dan C adalah atribut dari sebuah relasi bahwa jika A→B dan B→C, maka C adalah secara transitif bergantung pada A melewati B (menyatakan bahwa A tidak secara fungsional tergantung pada B dan C). pada bentuk normal ketiga, sebuah relasi pada bentuk normal pertama dan kedua dan dimana tidak ada atribut non-primary key secara transitif bergantung (transitively dependent) pada primary key. Proses normaliasasi dari relasi 2NF ke 3NF melibatkan penghilangan dari ketergantungan transitif. Jika sebuah ketergantungan transitif muncul, maka dihilangkan
ketergantungan
transitif
antara
atributnya
dengan
menempatkan atribut tersebut ke dalam relasi baru, selanjutnya dengan sebuah salinan dari determinannya. 4. Bentuk Normal Boyce-Codd (Boyce-Codd Normal Form / BCNF) Aturan bentuk normal Boyce-Codd (BCNF) adalah sebuah relasi disebut BCNF, jika dan hanya jika setiap deteminannya adalah sebuah candidate key. Untuk menguji apakah sebuah relasi sudah dalam BCNF, dilakukan identifikasi semua deteminan dan memastikan bahwa determinan tersebut
23 adalah candidate key. Determinan adalah sebuah atribut, atau kumpulan atribut, dimana beberapa atribut yang lain masih bergantung secara fungsional penuh (fully functionally dependent). Perbedaan antara 3NF dan BCNF dalam hal functional dependency. A→B, 3NF mengijinkan ketergantungan ini dalam sebuah relasi jika B adalah atribut primary key dan A bukan candidate key. Sedangkan dalam BCNF ketergantungan ini tetap ada di dalam sebuah relasi, dimana A harus sebuah candidate key. 5. 4 NF Aturan bentuk normal keempat (4NF) adalah sebuah relasi dalam BoyceCodd Normal Form (BCNF) dan tidak mengandung ketergantungan multivalued nontrivial (nontrivial multi-valued dependencies). Bentuk normal keempat (4NF) merupakan bentuk yang lebih kuat dari BCNF dimana 4NF mencegah relasi dari nontrivial multi-valued dependency dan data redundancy. Normalisasi dari BCNF ke 4NF meliputi pemindahan multi-valued dependency dari relasi dengan menempatkan atribut dalam sebuah relasi baru bersama dengan determinan. Multi-valued dependency menggambarkan ketergantungan antara atribut-atribut dalam suatu relasi. 6. 5 NF Aturan bentuk normal kelima (5NF) adalah sebuah relasi yang tidak mempunyai ketergantungan gabungan (join dependency). Join dependency menggambarkan sebuah tipe ketergantungan. Sebagai contoh, untuk sebuah relasi R dengan subset-subset stribut dari R yang dimisalkan dengan A, B,…Z, sebuah relasi R menunjukkan join
24 dependency, jika dan hanya jika, setiap nilai dari R sama dengan gabungan dari proyeksi-proyeksinya pada A, B,…Z.
2.1.6 Entity Relationship Modelling Menurut Budiharto (2002, p4), merancang basisdata merupakan hal yang sangat penting dalam membuat basisdata, dan Entity Relationship (ER) digunakan untuk merancangnya. ER merupakan sebuah permodelan untuk merancang basisdata yang baik. Karena tanpa ER ini, bisa dipastikan proses pembuatan basisdata berjalan lama dan tidak teratur. Pada saat merancang basisdata yang perlu diperhatikan ialah membuat relasi-relasi yang benar di antara tabel. Proses merancang basisdata cukup memakan waktu yang lama jika basisdatanya besar. Pendokumentasian merancang basisdata mutlak harus dilakukan dengan baik agar mudah di dalam pengembangan dan perbaikan nantinya. 2.1.6.1 Entity Type Menurut Connolly dan Begg (2002, p330), entity type adalah sebuah kumpulan dari objek dengan sifat sama, dimana diidentifikasikan oleh perusahaan yang keberadaannya tidak tergantung (independent existence). Konsep dasar dari bentuk ER adalah tipe entiti, dimana yang mempresentasikan kumpulan dari objek di dalam kenyataannya dengan sifat yang sama. 2.1.6.2 Relationship Type Menurut Connolly dan Begg (2002, p334), relationship type adalah sekumpulan hubungan antara satu atau lebih tipe-tipe entitas. Derajat
25 relationship adalah partisipasi tipe entitas dalam sebuah tipe relationship tertentu. Entitas yang berkaitan dalam sebuah tipe relationship dikenal sebagai participant dalam relationship dan jumlah participant dalam relationship menunjukkan jumlah dari entitas yang terkait dalam relationship. Sebuah relationship berderajat dua disebut binary, relationship berderajat tiga disebut ternary, dan relationship berderajat empat disebut sebagai quartenar. 2.1.6.3 Atribut Menurut Connolly dan Begg (2002,p338-342), attribute adalah sifat sebuah entitas atau tipe relationship. Sifat tertentu dari entitas disebut sebagai atributte. Atribut menyimpan nilai dari setiap entity occurance dan disimpan di dalam basisdata. Attribute domain adalah sejumlah nilai yang diperkenankan oleh satu atau lebih atribut. Setiap atribut yang dihubungkan dengan sejumlah nilai disebut domain. Simple attribute adalah sebuah susunan atribut dari komponen tunggal (single component) dengan keberadaan yang bebas (independent existence). Contohnya, posisi dan gaji dari entitas pegawai. Composed attribute adalah sebuah susunan atribut dari banyak komponen dengan sebuah keberadaan yang bebas dari masingmasingnya. Dalam hal ini beberapa atribut dapat dipisahkan menjadi komponen yang lebih kecil lagi dengan keberadaan yang bebas dari masing-masingnya. Contohnya : atribut alamat dari entitas kantor
26 cabang yang mengandung nilai (jalan, kota, kode pos) bisa dipecahkan menjadi simple attribute jalan, kota, dan kode pos. Single value attribute adalah atribut yang hanya menyimpan nilai tunggal untuk suatu sifat dari entitas. Multi-valued attribute adalah atribut yang bisa menyimpan nilai lebih dari satu untuk suatu sifat dari entitas. Contohnya atribut telepon dari entitas kantor cabang yang bisa memiliki lebih dari satu nomor telepon. Derived attribute (atribut turunan) adalah atribut yang menunjukkan nilai yang diperoleh dari atribut yang berhubungan atau kumpulan atribut yang berhubungan, tidak terlalu dibutuhkan dengan tipe entitas yang sama. 2.1.6.4 Kunci (Key) Menurut Budiharto (2002, p9), key adalah suatu property yang menentukan apakah suatu kolom pada tabel sangat penting atau tidak. Terdiri dari candidate key, primary key, alternate key, dan composite key. Candidate key adalah sebuah atribut atau lebih secara unik mengidentifikasi sebuah baris. Atribut ini mempunyai nilai yang unik hampir tiap barisnya. Fungsi dari candidate key adalah sebagai calon primary key. Primary key adalah candidate key yang telah dipilih untuk mengidentifikasi tiap baris secara unik. Primary key harus merupakan field yang benar-benar unik dan tidak boleh ada nilai NULL.
27 Alternate key adalah candidate key yang tidak dipilih sebagai primary key. Composite key merupakan suatu kondisi dimana sebuah atribut yang tidak dapat digunakan untuk mengidentifikasi baris secara unik dan membutuhkan kolom lain untuk digunakan sebagai primary key. Foreign key berfungsi sebagai penghubung antar tabel, dimana suatu primary key terhubung ke tabel lain.
2.1.7 4th GL (Generation Language) 4th GL adalah generasi bahasa tingkat 4 yang merupakan bahasa pemograman yang diminimalisasi. Suatu operasi yang biasanya membutuhkan ratusan baris di bahasa pemograman 3th GL seperti COBOL, maka pada 4th GL hanya membutuhkan baris pemograman yang lebih sedikit. Contoh dari 4th GL adalah SQL. 4th GL dapat menambahkan produktivitas berkali-kali lipat, penanganan masalah yang lebih banyak. Menurut Connolly dan Begg (2002, p42), 4th GL memiliki kemampuan sebagai berikut: •
Bahasa presentasi seperti Query Language, dan report generator
•
Bahasa khusus seperti spreadsheet dan database language
•
Aplikasi
generator
yang
dapat
didefinisikan,
menyisipkan,
memperbaruhi, dan membuka kembali data dari suatu basisdata untuk membuat suatu aplikasi.
28 •
Bahasa tingkat tinggi yang biasa digunakan untuk membuat suatu kode aplikasi
2.1.8 Siklus Hidup Aplikasi Database Siklus hidup aplikasi basisdata merupakan tahapan dalam merancang suatu sistem basisdata.
29 Database planning
System definition
Requirement collection and analysis
Conceptual database design DBMS selection (optional)
Application design Logical database design
Physical database design Database design
Prototyping (optional)
Implementation
Data conversion and loading
Testing
Operational maintenance
Gambar 2.1 Siklus hidup aplikasi basisdata •
Database planning
30 Merencanakan bagaimana tingkatan dari siklus hidup agar menjadi lebih efektif dan efisien. •
System definition Menspesifikasikan ruang lingkup dan batasan dari aplikasi basisdata, pengguna, dan cakupan dari aplikasi tersebut.
•
Requirements Collection and Analysis Mengumpulkan dan menganalisa kebutuhan dari pengguna dan cakupan dari aplikasi basisdata.
•
Database Design Perancangan konseptual, logikal, dan fisikal dari suatu basisdata.
•
DBMS Selection (optional) Memilih DBMS yang sesuai untuk aplikasi basisdata.
•
Application Design Merancang
antarmuka
pengguna
dan
program
aplikasi
yang
menggunakan dan memproses basisdata. •
Prototyping (optional) Membangun model kerja dari aplikasi basisdata, dimana mengijinkan perancang atau pengguna untuk memvisualisasikan dan mengevaluasi bagaimana tampilan dan fungsi sistem pada akhirnya.
•
Implementation Membuat definisi basisdata eksternal, konseptual, internal, dan program aplikasi.
•
Data Conversion and Loading
31 Pemuatan data dari sistem yang lama ke sistem yang baru. •
Testing Aplikasi basisdata dites untuk mengecek apakah terdapat kesalahan dan validasi yang dilakukan sudah memenuhi permintaan dari pengguna.
•
Operational Maintenance Aplikasi basisdata sudah diimplementasikan secara keseluruhan. Tetapi sistem terus dikontrol dan dipelihara secara teratur.
2.1.9 Metodologi Desain dalam Database 2.1.9.1 Pengertian Metodologi Desain Metodologi desain adalah pendekatan terstruktur. Pendekatan terstruktur yang menggunakan prosedur-prosedur, teknik-teknik, alatalat, dokumentasi tambahan untuk mendukung dan memberi fasilitas dari desain tersebut. Ada 3 fase utama dalam metodologi desain database, yaitu: conceptual database design, logical database design dan physical database design. Faktor kesuksesan yang penting dalam mendesain basisdata adalah sebagai berikut: •
Bekerjalah seinteraktif mungkin dengan pengguna sebanyak mungkin.
•
Ikutilah metodologi yang terstruktur pada seluruh proses data modeling.
•
Gunakan pendekatan data-driven.
32 •
Gabungkanlah pertimbangan struktural dan integritas ke model data.
•
Kombinasikan konseptualisasi, normalisasi, dan teknik validasi transaksi ke metodologi pemodelan data.
•
Gunakanlah diagram untuk merepresentasikan model data sebanyak mungkin.
•
Gunakanlah
DBDL
(Database
Design
Language)
untuk
merepresentasikan semantik data tambahan. •
Buatlah kamus data untuk menambahkan diagram model data.
•
Berkemauan untuk mengulangi langkah-langkah diatas.
2.1.9.2 Conceptual Database Design Merupakan proses pembuatan sebuah model dari informasi yang digunakan pada sebuah perusahan, tidak bergantung pada semua pertimbangan fisikal. Langkah-langkah untuk membuat model data Konseptual dapat digambarkan sebagai berikut : 1. Mengidentifikasi tipe entity Langkah pertama dalam membangun sebuah local conceptual model adalah menentukan obyek-obyek yang diinginkan oleh pengguna, yaitu jenis entity yang diperlukan dalam view. Dalam menentukan jenis entity yang diperlukan, biasanya berdasarkan kata benda atau frase kata benda yang disebutkan.
33 2. Mengidentifikasi tipe relationship Tujuannya untuk mengidentifikasikan relationship penting yang ada antara tipe entity yang telah diidentifikasikan. Langkah-langkah identifikasi tipe relasi : •
Gunakan Entity Relationship Diagram (ERD) Penggunaan Entiti – Relationship (ER) Diagram untuk merepresentasikan entiti dan bagaimana relasi antar entiti.
•
Cari batasan multiplicity dari tipe relationship Jika memang ada suatu nilai yang spesifik dari suatu multiplicity maka akan lebih baik apabila didokumentasikan.
•
Periksa fan dan chasm traps Fan Trap adalah suatu model yang merepresentasikan suatu relasi
antara entiti, tetapi alur relasinya memperlihatkan
ambiguitas. Chasm Trap adalah suatu model dimana ada hubungan antara entiti yang satu dengan yang lain, tetapi tidak ada relasi antara kedua entiti utama. •
Periksa bahwa masing-masing entity ikut serta setidaknya dalam satu relationship Pada saat pembuatan Entiti Relationship Diagram, setiap entiti mempunyai minimal satu relasi dengan entiti yang lain.
•
Dokumentasikan tipe relationship
34 Tipe relationship diidentifikasikan, memberikan nama yang berarti dan jelas bagi pengguna. Juga mencatat deskripsi relationship dan batasan multiplicity dalam data dictionary. 3. Mengidentifikasi dan menghubungkan atribut dengan entiti atau tipe hubungan Tujuannya untuk menghubungkan atribut dengan entiti atau tipe hubungan yang sesuai dan mendokumentasikan detil dari setiap atribut. Atribut dapat dibagi menjadi tiga, yaitu: •
Simple or composite attribute Composite attribute disusun dari simple attribute. Sebagai contoh, atribut alamat bisa dibuat sederhana dan menyimpang beberapa detil dari alamat sebagai suatu nilai. Contoh : 45 Jl. Veteran, Palembang, 30125. Bagaimanapun Composite attribute yang terdiri dari beberapa detail yang mempunyai nilai terpisah dalam atribut alamat(‘45 Jl. Veteran”), kota( “Palembang”), kode pos (“30125”). Atribut alamat dapat dijadikan
simple
attribute atau composite attribute tergantung dengan kebutuhan pengguna. •
Single or multi value attribute Atribut dapat mempunyai satu atau lebih nilai. Contoh : Atribut nomor telepon. Seseorang yang memiliki nomor telepon lebih dari satu, maka dapat disebut atribut Multi-Valued. Tetapi jika atribut tersebut hanya mempunyai suatu nilai maka disebut sebagai single attribute.
35 •
Derived attribute Adalah atribut yang nilainya tergantung pada nilai atribut yang lain. Contoh : umur dari seorang karyawan.
4. Menetapkan domain attribute Tujuannya untuk menetapkan domain atribut dalam model data konseptual lokal dan mendokumentasikan setiap detil dari domain. Domain merupakan sekumpulan nilai-nilai dari satu atau lebih atribut yang menggambarkan nilainya. Model data yang dibuat menspesifikasikan
domain
untuk
setiap
atribut
dengan
menyertakan: •
Nilai yang diijinkan untuk atribut
•
Ukuran dan format atribut
5. Menetapkan primary dan candidate key Tujuannya untuk menghubungkan atribut dengan entity dan jika terdapat lebih dari satu candidate key, maka pilih satu sebagai primary key. 6. Mempertimbangkan kegunaan dari konsep Enhanced Modeling (optional) Dalam langkah ini, kita mempunyai pilihan untuk mengembangkan ER model dengan menggunakan konsep enhanced modeling, seperti spesialisasi, generalisasi, agregasi, dan komposisi. 7. Memeriksa model untuk pengurangan
36 Dalam langkah ini, perancang melakukan dua kegiatan yaitu memeriksa kembali relasi one-to-one (1:1), dan menghilangkan redundancy relation. 8. Memvalidasi model konseptual lokal terhadap transaksi pengguna Tujuannya untuk memastikan model konseptual lokal mendukung transaksi yang dibutuhkan oleh view. Diuji dengan dua pendekatan untuk memastikan model data konseptual lokal mendukung transaksi yang dibutuhkan, dengan cara: •
Mendeskripsikan transaksi-transaksi
•
Menggunakan jalur-jalur transaksi
9. Me-review model data konseptual lokal dengan pengguna Tujuannya untuk me-review model data konseptual lokal dengan pengguna untuk memastikan model tersebut adalah representasi sebenarnya dari view. Model data konseptual ini termasuk ER diagram dan dokumentasi pendukung yang mendeskripsikan model data. Bila ada kejanggalan dalam model data, maka harus dibuat perubahan yang sesuai yang mungkin membutuhkan pengulangan langkah-langkah sebelumnya.
2.1.9.3 Logical Database Design Merupakan proses dari pembuatan sebuah model informasi yang digunakan pada perusahaan berdasarkan pada model data yang spesifik, tetapi tidak bergantung terhadap pertimbangan DBMS tertentu dan fisikal lainnya.
37 Metodologi desain basisdata logikal terdiri dari 2 langkah utama yaitu : •
Membangun dan validasi model data logikal lokal untuk setiap view Membangun model data logikal lokal dari model data konseptual lokal yang menggambarkan view tertentu dari perusahaan dan kemudian memvalidasikan model ini untuk memastikan strukturnya benar (menggunakan teknik normalisasi) dan memastikannya mendukung transaksi yang dibutuhkan. Pada langkah pertama ini terdiri dari 6 tahap yaitu: 1. memindahkan fitur-fitur yang tidak kompetibel dengan model relasional (tahap optional) 2. mendapatkan hubungan untuk model data logikal lokal 3. memvalidasi hubungan menggunakan normalisasi 4. memvalidasikan hubungan terhadap transaksi pengguna 5. mendefinisikan batasan integrity 6. meninjau ulang model data logikal lokal dengan pengguna
•
Membangun dan validasi model data logikal global Menggabungkan model data logikal lokal individual menjadi model data logikal global tunggal yang menggambarkan suatu perusahaan. Pada langkah kedua ini terdiri dari 4 tahap yaitu : 1. menggabungkan model data logikal lokal menjadi model global 2. memvalidasikan model data logikal global 3. mengecek untuk pengembangan mendatang 4. meninjau ulang model data logikal global dengan pengguna
38 2.1.9.4 Physical Database Design Merupakan implementasi
proses
untuk
basisdata
menghasilkan pada
suatu
penyimpanan
deskripsi sekunder,
dari juga
mendeskripsikan relasi dasar, organisasi file, dan desain indeks yang digunakan untuk mencapai akses yang efisien terhadap data dan batasan integritas lainnya yang masih berhubungan serta ukuran-ukuran keamanan. Langkah-langkah metodologi desain basisdata fisik : •
Menerjemahkan model data logikal global untuk target DBMS Menghasilkan skema basisdata relasional dari model data global yang dapat diimplementasikan dalam target DBMS. Pada langkah pertama ini terdiri dari 3 tahap yaitu : 1. mendesain hubungan dasar 2. mendesain gambaran dari data yang dihasilkan 3. mendesain batasan-batasan perusahaan
•
Mendesain gambaran fisik Menentukan pengaturan file yang optimal untuk menyimpan hubungan dasar dan index yang dibutuhkan untuk mencapai kinerja yang diinginkan, dimana hubungan dan tuple disimpan di secondary storage. Pada langkah kedua terdiri dari 4 tahap yaitu : 1. menganalisa transaksi-transaksi 2. memilih pengaturan file 3. memilih index
39 4. memperkirakan kebutuhan tempat penyimpanan (disk space) •
Mendesain view pengguna Mendesain view pengguna yang diidentifikasikan selama kumpulan kebutuhan dan tingkat analisis dari siklus hidup aplikasi basisdata relational.
•
Mendesain mekanisme keamanan Mendesain
langkah
keamanan
untuk
basisdata
yang
dispesifikasikan oleh pengguna. •
Mempertimbangan pengenalan dari redundansi terkontrol Menentukan apakah pengenalan redundansi dalam cara terkontrol dengan mengurangi aturan normalisasi akan meningkatkan kinerja sistem.
•
Memonitor dan mengatur sistem operasional Memonitor sistem operasional dan mengembangkan kinerja sistem untuk memperbaiki keputusan desain yang tidak tepat atau menggambarkan penggantian kebutuhan.
2.2 Simbol untuk pembuatan bagan alir dokumen (Dokumen Flowchart) Berikut ini simbol-simbol standar yang digunakan dalam pembuatan bagan alir dokumen serta penjelasannya (Mulyadi, 2001,p60)
40 Dokumen. Simbol ini digunakan untuk menggambarkan semua jenis dokumen, yang merupakan formulir yang digunkan untuk merekam data terjadinya suatu transaksi.
Dokumen dan Tembusannya. Simbol ini digunakan untuk menggambarkan dokumen asli dan tembusannya. Nomor lembar dokumen dicantumkan disudut kanan atas.
Berbagai Dokumen. Simbol ini digunakan untuk menggambarkan berbagai jenis dokumen yang digabungkanbersama di dalam suatu paket. Nama dokumen dituliskan di dalammasing-masing symbol dan nomor lembar dokumen dicantumkan di sudut kanan atas symbol dokumen yang bersangkutan.
Catatan. Simbol ini digunakan untuk menggambarkan catatan akuntansi yang digunakan untuk mencatat data yang direkam sebelumnya di dalam dokumen atau formulir . Nama catatan akuntansi dicantumkan di dalam symbol ini
41 Penghubung
pada
halaman
yang
sama.
Simbol
yang
digunakan
untuk
menghubungkan aliran dokumen yang terhenti si suatu lokasi pasa halaman tertentu dan kembali berjalan di lokasi lain pada halaman yang sama dengan memperhatikan nomor yang tercantum di dalam symbol.
Penghubung pada halaman yang berbeda. Jika untuk menggambarkan bagan alir diperlukan lebih dari satu halaman, symbol ini harus digunakan untuk menunjukkan kemana bagan alir terkait.
Kegiatan Manual. Symbol ini digunakkan untuk menggambarkan kegiatan manual. Uraian singkat kegiatan manual dicantumkan di dalam symbol ini
Keterangan Komentar.
Symbol ini memungkinkan ahli sistem menambahkab
keterangan untuk memperjelas pesan yang disampaikan dalam bagan alir
Arsip sementara. Symbol ini digunakan untuk menunjukkan tempat penyimpanan dokumen yang dokumennya akan diambil kembali dari arsip tersebut di massa yang akan datang.
42
Arsip Permanen. Simbol ini digunakan untuk menggambarkan arsip permanent yang merupakan tempat penyimpanan dokumen yang tidak akan diproses lagi dalam sistem yang bersangkutan.
Keputusan. Simbol ini menggambarkan keputusan yang harus dibuat dalam proses pengolahan data.
Mulai atau berakhir (terminal). Simbol ini untuk menggambarkan awal dan akhir suatu sistem.
2.3 State Transition Diagram State Transition Diagram (STD) digunakan untuk menggambarkan urutan dan variasi layar yang dapat terjadi ketika pengguna sistem berdiri pada terminal.
Segiempat. Segiempat digunakan untuk merepresentasikan display screens.
43
Tanda Panah. Tanda panah menggambarkan aliran kontrol dan menggambarkan kejadian yang menyebabkan layar menjadi aktif atau mejadi fokus.
2.4 Teori-teori Pembelian dan Penjualan 2.4.1 Teori Pembelian 2.4.1.1 Definisi Pembelian Pembelian dilakukan untuk memenuhi kebutuhan. Pemenuhan kebutuhan tersebut ada dua macam : 1.
Dikonsumsikan, umumnya oleh perusahaan industri dan rumah tangga.
2.
Dijual kembali, meskipun tujuannya berbeda, bagaimanapun sifatnya adalah membeli barang dam jasa sesuai dengan kebutuhan. Menurut Mulyadi (2001, p299) pembelian adalah suatu usaha
yang digunakan dalam perusahaan untuk pengadaan barang yang diperlukan oleh perusahaan. Secara umum definisi pembelian adalah merupakan usaha pengadaan barang atau jasa dengan tujuan yang akan digunakan sendiri, untuk kepentingan proses produksi maupun untuk dijual kembali, baik dengan atau tanpa proses, dalam proses pembelian yang ada. Agar kegiatan pembelian dapat dilakukan dengan benar.
44 2.4.1.2 Jenis-jenis Pembelian Jenis transaksi dalam pembelian dapat dibedakan menjadi 2, yaitu: a.
Pembelian tunai yaitu jenis transaksi, dimana pembayaran langsung dilakukan pada saat penerimaan barang.
b.
Pembelian kredit yaitu jenis transaksi, dimana pembayaran tidak dilakukan pada saat penyerahan barang, tetapi dilakukan selang beberapa waktu sesuai dengan perjanjian dengan pihak pemasok.
Sedangkan berdasarkan jenis pemasok, pembelian dibedakan menjadi dua yaitu : a.
Pembelian Lokal yaitu pembelian dari pemasok dalam negeri.
b.
Pembelian impor yaitu pembelian yang dilakukan dari pemasok luar negeri.
2.4.1.3 Fungsi yang terkait dalam pembelian Fungsi pembelian pada perusahaan industri adalah melakukan pembelian bahan baku yang sesuai dengan kebutuhan proses produksi. Didalam melaksanakan pembelian ada beberapa faktor yang harus diperhatikan yaitu mutu bahan baku atau barang jadi, jumlah bahan yang dibutuhkan, waktu serta harga bahan. Untuk dapat melaksanakan fungsi pembelian dengan efektif dan efisien dibutuhkan adanya kemampuan dari bagian pembelian. Pengawasan perlu dilakukan tehadap pelaksanaan fungsi ini, karena pembelian menyangkut investasi
45 dana dalam persediaan dan kelancaran arus barang kedalam perusahaan. Disamping itu untuk menghindari praktek-praktek yang tidak sehat dalam fungsi pembelian. Menurut Mulyadi (2001, p300) fungsi yang terkait dalam sistem pembelian adalah : a.
Fungsi
Gudang,
bertanggung
jawab
untuk
mengajukan
permintaan pembelian sesuai dengan posisi persediaan yang ada digudang dan untuk menyimpang barang yang telah diterima oleh fungsi penerimaan. b.
Fungsi Pembelian, bertanggung jawab untuk memperoleh informasi mengenai harga barang, menentukan pemasok yang dipilih dalam pengadaan barang dan mengeluarkan order pembelian kepada pemasok yang dipilih.
c.
Fungsi Penerimaan, bertanggung jawab untuk melakukan pemeriksaan terhadap jenis, mutu dan kuantitas bahan yang diterima dari pemasok guna menentukan dapat atau tidaknya barang tersebut diterima oleh perusahaan.
d. Fungsi Akuntansi, bertanggung jawab untuk mencatat transaksi pembelian ke dalam register bukti kas keluar dan untuk menyelenggarakan arsip dokumen sumber (bukti kas keluar) yang berfungsi sebagai catatan utang atau menyelenggarakan kartu utang sebagai buku pembantu utang.
2.4.1.4 Jaringan Prosedur yang membentuk sistem pembelian
46 Menurut Mulyadi (2001, pp.301-303) jaringan prosedur yang membentuk sistem pembelian adalah : 1.
Prosedur permintaan pembelian, dalam prosedur ini fungsi gudang mengajukan permintaan pembelian dalam formulir surat permintaan pembelian kepada fungsi pembelian.
2.
Prosedur permintaan penawaran harga dan pemilihan pemasok, fungsi pembelian mengirimkan surat permintaan penawaran harga kepada pemasok untuk memperoleh informasi mengenai harga barang dan berbagai syarat pembelian yang lain untuk memungkinkan pemilihan pemasok yang akan ditunjuk sebagai pemasok barang yang diperlukan oleh perusahaan.
3.
Prosedur order pembelian, fungsi pembelian mengirim surat order pembelian kepada pemasok yang dipilih dan memberitahukan kepada unit-unit organisasi lain dalam perusahaan mengenai order pembelian yang sudah dikeluarkan oleh perusahaan.
4.
Prosedur penerimaan barang , dalam prosedur ini fungsi pengiriman barang melakukan pemeriksaan mengenai jenis, kuantitas dan mutu bahan yang diterima dari pemasok dan kemudian membuat penerimaan barang dari pemasok tersebut.
5.
Prosedur pencatatan hutang, dalam prosedur ini fungsi akuntansi memeriksa
dokumen-dokumen
pembelian
dan
yang
meyelenggarakan
berhubungan
pencatatan
dengan
hutang
pengarsipan dokuman sumber sebagai catatan hutang.
atau
47 6.
Prosedur distribusi pembelian, prosedur ini meliputi distribusi rekening yang didebet dari transaksi pembelian untuk kepentingan pembuatan laporan manajemen.
Menurut Mulyadi (2001, p.303) informasi yang diperlukan oleh manajemen dari kegiatan pembelian adalah : a.
Jenis persediaan yang telah mencapai titik pemesanan kembali (Re – order point)
2.4.2
b.
Order pembelian yang telah dikirim kepada pemasok
c.
Oder pembelian yang telah dipenuhi oleh pemasok
d.
Total saldo utang dagang pada tanggal tertentu.
e.
Saldo utang dagang pada tanggal tertentu.
f.
Tambahan kualitas dan harga pokok persediaan dari pembeli.
Teori Penjualan 2.4.2.1 Jenis-jenis Penjualan Menurut Mulyadi (2001, p202), kegiatan penjualan terdiri dari penjualan barang dan jasa baik secara kredit maupun secara tunai. a. Dalam transaksi penjualan kredit, jika order dari pelanggan telah dipenuhi dengan pengiriman barang atau penyerahan jasa, untuk jangka waktu tertentu perusahaan memiliki piutang kepada pelanggannya.
48 b. Dalam sistem penjualan secara tunai, barang atau jasa baru diserahkan oleh perusahaan kepada pembeli jika perusahaan telah menerima kas dari pembeli.
2.4.2.2 Fungsi yang terkait dalam penjualan kredit Menurut Mulyadi (2001,p204), fungsi yang terkait pada penjualan secara kredit adalah: 1. Fungsi kredit Fungsi ini bertanggung jawab atas pemberian kartu kredit kepada pelanggan terpilih. Dalam sistem penjualan secara kredit dengan kartu kredit, fungsi kredit tidak diperlukan lagi otorisasinya, karena autorisasi pemberian kredit sudah tercermin dari kartu kredit yang ditunjukkan oleh pelanggan pada saat melakukan pembelian. 2. Fungsi penjualan Fungsi penjualan bertanggung jawab melayani kebutuhan barang pelangggan. Fungsi penjualan mengisi faktur penjualan kartu kredit untuk memungkinkan fungsi gudang dan fungsi pengiriman
melaksanakan
penyerahan
barang
kepada
pelanggan. 3. Fungsi gudang Fungsi gudang menyediakan barang yang diperlukan oleh pelanggan sesuai dengan yang tercantum dalam tembusan faktur penjualan kredit yang diterima dari fungsi penjualan.
49 4. Fungsi pengiriman Fungsi ini bertanggung jawab untuk menyerahkan barang yang kuantitas, mutu, dan spesifikasinya sesuai dengan yang tercantum dalam tembusan faktur penjualan kartu kredit yang diterima dari fungsi penjualan. 5. Fungsi akuntansi Fungsi ini bertanggung jawab untuk mencatat transaksi bertambahnya piutang kepada pelanggan kedalam kartu piutang berdasarkan faktur penjualan kartu kredit yang diterima dari fungsi pengiriman. 6. Fungsi penagihan Fungsi ini bertanggung jawab untuk membuat surat tagihan secara periodik kepada pemegang kartu kredit.
2.4.2.3 Fungsi yang terkait dalam penjualan tunai Menurut Mulyadi(2002,p462) fungsi yang terkait dalam penerimaan kas dari penjualan secara tunai adalah: 1. Fungsi penjualan Fungsi ini bertanggung jawab untuk menerima order dari pembeli, mengisi faktur penjualan tunai, dan menyerahkan faktur tersebut kepada pembeli untuk kepentingan pembayaran harga barang ke fungsi kas. 2. Fungsi kas
50 Fungsi ini bertanggung jawab sebagai penerima kas dan pembeli. 3. Fungsi gudang Fungsi ini bertanggung jawab untuk menyiapkan barang yang dipesan oleh pembeli, serta menyerahkan barang tersebut ke fungsi pengirim. 4. Fungsi pengiriman Fungsi ini bertanggung jawab untuk membungkus barang dan menyerahkan barang yang telah dibayar harganya kepada pembeli. 5. Fungsi akuntansi Fungsi ini bertanggung jawab sebagai pencatat transaksi penjualan dan penerimaan kas serta pembuat laporan penjualan.
2.4.2.4 Jaringan prosedur penerimaan kas dari sistem penjualan tunai Menurut
Mulyadi
(2001,p469)
jaringan
prosedur
yang
membentuk sistem penerimaan kas dari penjualan tunai : 1. Prosedur order penjualan Dalam prosedur ini fungsi penjualan menerima order dari pembeli
dan
membuat
faktur
penjualan
tunai
untuk
memungkinkan pembeli melakukan pembayaran harga barang ke fungsi kas dan untuk memungkinkan fungsi gudang dan fungsi pengiriman menyiapkan barang yang akan diserahkan kepada pembeli.
51 2. Prosedur penerimaan kas Dalam prosedur ini fungsi kas menerima pembayaran harga barang dari pembeli dan memberikan tanda pembayaran kepada pembeli untuk memungkinkan pembeli tersebut melakukan pengambilan barang yang dibelinya dari fungsi pengiriman. 3. Prosedur penyerahan barang Dalam prosedur ini fungsi pengiriman menyerahkan barang kepada pembeli. 4. Prosedur pencatatan penjualan tunai Dalam prosedur ini fungsi akuntansi melakukan pencatatan transaksi penjualan tunai dalam jurnal penjualan dan jurnal penerimaan kas. 5. Prosedur penyetoran kas ke bank Dalam prosedur ini fungsi kas menyetorkan kas yang diterima dari penjualan tunai ke bank dalam jumlah penuh. 6. Prosedur pencatatan penerimaan kas Dalam prosedur ini fungsi akuntansi mencatat penerimaan kas ke dalam jurnal penerimaan kas berdasarkan bukti setor bank yang diterima dari bank melalui fungsi kas. 7. Prosedur pencatatan harga pokok penjulan Dalam prosedur ini fungsi akuntansi membuat rekapitulasi harga pokok penjualan berdasarkan data yang dicatat dalam faktur persediaan.