BAB 2 LANDASAN TEORI
2.1 Teori-Teori Sistem Basis Data 2.1.1 Pengertian Sistem Basis Data Sebelum kita masuk ke pengertian sistem basis data, kita harus mengerti dulu apa yang dimaksud dengan data. Menurut Hoffer, Prescott dan McFadden, (2002, p5), data adalah representasi tersimpan dari objekobjek dan event-event yang mempunyai arti dan penting bagi user / pengguna. Data berbeda dengan informasi, informasi adalah data yang telah diproses sedemikian rupa sehingga dapat meningkatkan pengetahuan orang yang menggunakan data tersebut. Menurut Elmasri (2000, p4), data adalah fakta yang diketahui bisa dicatat dan mempunyai makna implisit, dan kumpulan data tersebut akan membentuk basis data. Menurut Connolly dan Begg (2005, p15), sistem basis data dapat dianggap sebagai sekumpulan data yang saling terkait secara logika, yang dirancang dalam rangka memenuhi kebutuhan informasi dalam suatu organisasi. Menurut Silberschatz (2002, p1), sistem basis data adalah suatu kumpulan data yang berisi informasi yang relevan terhadap suatu perusahaan. Menurut Hoffer, Prescott, dan McFadden, (2002, p4), sistem basis data adalah kumpulan data yang terorganisir dan saling berkaitan secara 6
7 logika. Terorganisir maksudnya data distrukturkan sehingga mudah untuk disimpan, dimanipulasi dan diperoleh oleh pengguna. Berkaitan maksudnya data menggambarkan daerah asal (domain) kepentingan tertentu bagi kelompok pengguna dan pengguna dapat menggunakan data untuk menjawab pertanyaan seputar domain itu. Menurut Mannino (2004, p4), sistem basis data adalah sekumpulan data tetap yang saling terkait dan dapat diakses oleh berbagai user. Menurut Atzeni (2003, p2), sistem basis data adalah kumpulan data yang digunakan untuk merepresentasikan informasi yang diinginkan ke sebuah sistem informasi. Adapun definisi dari basis data menurut www.asep-hs.web.ugm.ac.id adalah kumpulan data, yang dapat digambarkan sebagai aktivitas dari salah satu atau lebih organisasi yang berelasi. Sedangkan sistem basis data adalah sistem terkomputerisasi yang tujuan utamanya adalah memelihara informasi dan membuat informasi tersebut tersedia saat dibutuhkan.
2.1.2
Pengertian DBMS (Sistem Basis Data Manajemen Sistem) Menurut Connolly dan Begg (2005, p16), DBMS adalah sebuah sistem perangkat lunak yang memampukan user untuk mendefinisikan, menghasilkan, memelihara dan mengendalikan akses terhadap sistem basis data. Kendali yang dimaksud disini adalah kendali bagi user untuk melakukan insert, update, delete, dan pengambilan data dari sistem basis data.
8 Menurut Mannino (2004, p7), DBMS adalah sekumpulan perangkat lunak yang berguna untuk mendukung pembuatan, penggunaan, dan pemeliharaan sistem basis data dan DBMS juga menyediakan metode penyimpanan dan pengambilan data yang efisien. Menurut Atzeni (2003, p3), DBMS adalah sistem perangkat lunak yang berguna untuk mengatur sekumpulan data tetap yang besar dan dapat digunakan bersama-sama, dan untuk memastikan kehandalan dan privasi data.
2.1.3
Data Definition Language (DDL) Menurut Connolly dan Begg (2005, p40), DDL adalah sebuah bahasa yang mengizinkan administrator sistem basis data atau user untuk menjelaskan dan memberi nama entitas, atribut, dan relasi yang dibutuhkan untuk aplikasi, bersama dengan semua batasan–batasan integritas dan keamanan (integrity dan security constraints). Menurut Hoffer, Prescott dan McFadden, (2005, p291), DDL adalah perintah yang digunakan untuk mendefinisikan sebuah sistem basis data, seperti membuat tabel, menggabungkan tabel, menghapus tabel dan menetapkan constraint. Hasil dari kompilasi statement DDL adalah kumpulan dari tabel yang disimpan dalam file khusus yang disebut sistem catalog. Sementara istilah kamus data digunakan untuk mendeskripsikan sistem catalog.
9 2.1.4
Data Manipulation Language Menurut Connolly dan Begg (2005, p40), DML adalah sebuah bahasa yang menyediakan seperangkat operasi untuk mendukung dasar operasi manipulasi data dasar dari data yang tersimpan pada sistem basis data. Menurut Hoffer, Prescott dan McFadden, Prescott dan McFadden (2005, p41), DML adalah perintah yang digunakan untuk memelihara dan memanipulasi query sebuah sistem basis data, seperti : select, updating, inserting, modifiying, dan querying data.
2.1.5
Normalisasi Menurut Connolly dan Begg (2005, p387), normalisasi adalah sebuah teknik merancang
sistem basis data, yang dimulai dengan memeriksa
hubungan (yang biasa disebut functional dependencies) antar atribut. Menurut Mannino (2004, p231), normalisasi adalah sebuah proses penghapusan redundancy pada tabel jadi tabel lebih mudah untuk dimodifikasi. Menurut Hoffer, Prescott dan McFadden (2005, p 211), normalisasi adalah proses standard untuk menentukan atribut mana yang akan di kelompokan bersama dalam sebuah relasi. Tujuan dari normalisasi adalah: •
Mengurangi kemungkinan terjadinya redundansi data, misalnya dengan menghindari anomali data.
10 •
Mempermudah dalam memelihara data.
•
Menyederhanakan penetapan referential integrity constraints.
•
Menyediakan perancangan yang lebih baik dengan meningkatkan representasi dari dunia nyata dan dasar yang lebih kuat bagi perkembangan di masa depan.
Tahapan–tahapan normalisasi menurut Connolly dan Begg
(2005,p),
sebagai berikut: •
Unnormalized (UNF) Sebuah tabel yang berisi satu atau lebih kelompok yang berulang.
•
First Normal Form (1NF) Sebuah relasi yang berpotongan pada setiap baris dan kolom hanya berisi satu nilai.
•
Second Normal Form (2NF) Sebuah relasi dimana 1NF dan setiap non-primary-key attribute harus bergatung secara functional pada primary key.
•
Third Normal Form (3NF) Sebuah relasi yang telah melewati 1NF dan 2NF, dan atribut yang nonprimary key tidak transitive dependency terhadap primary key. Transitive Dependency adalah : sebuah kondisi dimana A, B dan C adalah atribut dari sebuah relasi bahwa jika A Æ B dan B Æ C, maka C adalah transitive dependent pada A melewati B (menyatakan bahwa A bukan functional dependent pada B atau C).
11 2.1.6
Fourth-Generation Languages (4GLs) Menurut Connolly dan Begg (2005, p42), 4GL adalah bahasa pemrograman yang tidak memiliki prosedur standard dimana user mendefinisikan apa yang harus diselesaikan, bukan cara yang digunakan. User tidak mendefinisikan langkah-langkah yang yang dibutuhkan program untuk mengerjakan sebuah tugas, tetapi mendefinisikan parameter bagi tools yang akan digunakan untuk menghasikan sebuah program aplikasi. 4GL meliputi : •
Presentation languages, seperti query languages dan report generators.
•
Speciality languages, seperti spreadsheets dan sistem basis data languages.
•
Application generators yang mendefinisikan, meng-insert, mengupdate, dan me-retrieve data dari sistem basis data untuk membangun aplikasi.
•
Bahasa-bahasa
tingkat
sangat
tinggi
yang
digunakan
untuk
menghasilkan kode aplikasi. Adapun jenis-jenis lain dari 4GL, yaitu : •
Forms Generators adalah fasilitas interaktif untuk menciptakan input data dan menampilkan interface dengan cepat. Dengan menggunakan forms generators, user dapat mendefinisikan tampilan seperti apa
12 yang diinginkan, informasi apa yang ingin ditampilkan, dan dibagian layar mana informasi akan ditampilkan. •
Report Generators adalah sebuah fasilitas untuk menciptakan laporan dari data yang tersimpan di sistem basis data. Report generators mirip dengan query language yang dapat mengambil informasi yang dibutuhkan
untuk
menghasilkan
laporan.
Bedanya,
dengan
menggunakan report generator, user mempunyai kendali yang lebih baik untuk mendefinisikan tampilan output yang diinginkan. Ada 2 tipe utama report generator yaitu : berbasis bahasa dan berbasis visual. •
Graphics generators adalah sebuah fasilitas untuk me-retrieve data dari sistem basis data dan menampilkan data dalam bentuk grafik yang menunjukkan tren-tren dan relasi-relasi dalam data.
•
Application generators adalah sebuah fasilitas untuk memproduksi sebuah program yang dapat menghasilkan tampilan bagi sistem basis data. Penggunaan application generator dapat mengurangi waktu yang diperlukan untuk merancang keseluruhan aplikasi perangkat lunak.
2.1.7
Siklus Hidup Aplikasi Sistem Basis Data Menurut Connolly dan Begg (2005, p283), sebuah sistem basis data sistem adalah sebuah komponen dasar dari sebuah organisasi yang besar, siklus pengembangan sistem basis data diturunkan berhubungan dengan
13 siklus hidup sistem informasi. Perlu diketahui bahwa urutan tahapan siklus pengembangan sistem basis data tidak harus dilakukan secara berurutan, tetapi dapat dilakukan secara berulang untuk mendapatkan hasil yang sebaik mungkin. Untuk sistem basis data yang, dengan pengguna dalam jumlah yang kecil, siklus hidup tidak harus kompleks. Bagaimanapun juga, ketika merancang sistem basis data menengah sampai besar dengan pengguna sampai ribuan, menggunakan ratusan query dan program aplikasi, siklus hidup dapat menjadi sangat kompleks. Gambar menjelaskan tahapan siklus pengembangan sistem basis data, berikut dengan definisi serta tugas utama dari tiap tahapan dalam siklus pengembangan sistem basis data.
14
Database planning
System definition
Requirements collection and analysis Database design
Conceptual database design DBMS selection (optional)
Application design Logical database design Physical database design
Prototyping (optional)
Implementation
Data conversion and loading Testing
Operational maintenance Gambar 2.1 Siklus Hidup Pengembangan Sistem Basis Data ( Sumber : Connolly dan Begg, 2005, p284)
15 1. Database Planning. Adalah aktivitas manajemen yang memungkinkan tahapan dari aplikasi sistem basis data untuk dapat direalisasikan seefisien dan seefektif mungkin. 2. System Definition. Adalah proses menspesifikasikan ruang lingkup dan batasan dari aplikasi sistem basis data dan user view utama 3. Requirements collection and analysis. Adalah proses mengumpulkan dan menganalisa informasi mengenai bagian dari organisasi yang akan didukung oleh aplikasi sistem basis data, dan menggunakan informasi ini untuk mengidentifikasi kebutuhan pengguna pada sistem yang baru. Untuk itu digunakan teknik yang disebut dengan fact finding techniques. Terdapat lima teknik fact finding yang umum digunakan (Connolly dan Begg, 2005, p314): a. Mengevaluasi dokumen. b. Wawancara. c. Mengamati jalannya kegiatan kerja pada perusahaan. d. Penelitian. e. Kuesioner.
16 4. Database Design. Adalah proses dari pembuatan sebuah rancangan yang mendukung visi dan misi perusahaan yang dibutuhkan untuk sebuah sistem basis data. Ada tiga tahap dalam merancang sistem basis data: •
Conceptual Database Design. Proses membangun model informasi yang digunakan dalam sebuah enterprise, terbebas dari semua pertimbangan fisik Fungsi dari tahap ini adalah untuk membuat representasi konseptual dari sistem basis data, termasuk identifikasi enitas-entitas yang penting, relasi, atribut.
•
Logical Database Design. Proses membangun model informasi yang digunakan dalam sebuah enterprise yang didasarkan oleh data model spesifik, dan terbebas dari DBMS tertentu dan pertimbangan fisik lainnya.
•
Physical Database Design. Proses memproduksi sebuah deskripsi dari implementasi sistem basis data dalam secondary storage, yang menjelaskan relasi dasar, organisasi file, dan indeks yang digunakan untuk mencapai akses yang efisien ke data, dan setiap integrity constraint yang saling berhubungan dan juga pengukuran keamanan (security).
5. DBMS selection. Adalah menyeleksi DBMS untuk mendukung sistem basis data. Berikut ini adalah langkah-langkah utama dalam memilih DBMS (Connolly dan Begg, 2005, p296) :
17 1. Menggambarkan cakupan tugas berdasarkan kebutuhan perusahaan. 2. Membuat perbandingan mengenai dua atau tiga produk DBMS. 3. Mengevaluasi produk-produk DBMS tersebut. 4. Merekomendasikan pemilihan DBMS dan membuat laporan hasil dari evaluasi produk DBMS tersebut. 6. Aplication design. Adalah perancangan antarmuka pengguna dan program aplikasi yang menggunakan dan memproses sistem basis data. 7. Prototyping. Adalah pembuatan model kerja dari sistem basis data, yang mengizinkan perancang maupun pengguna untuk memvisualisasi dan mengevaluasi bagaimana sistem final akan terlihat dan berfungsi. 8. Implementation. Adalah peralisasian fisik dari sistem basis data dan aplikasi design. 9. Data conversion and loading. Adalah proses mengambil data dari sistem yang lama ke sistem yang baru dan jika mungkin, mengkonversi aplikasi yang ada untuk dijalankan pada sistem basis data yang baru. 10. Testing. Adalah pengeksekusian program untuk menemukan kesalahan. 11. Operational Maintenance. Adalah proses memonitor dan merawat sistem setelah dilakukan instalasi. Pada tahap ini melibatkan beberapa aktivitas: •
Memonitor performa dari sistem.
18 •
2.1.8
Memaintain dan meng-upgrade sistem basis data.
Design Konseptual, Logikal, dan Fisikal Sistem Basis Data Menurut Connolly dan Begg (2005, p37), metodologi perancangan sistem basis data terdiri dari 3 tahap, yaitu : 1. Perancangan sistem basis data secara konseptual. 2. Perancangan sistem basis data secara logikal. 3. Perancangan sistem basis data secara fisikal. 2.1.8.1
Perancangan Sistem Basis Data Secara Konseptual Perancangan sistem basis data secara konseptual adalah proses membangun model informasi yang digunakan perusahaan, yang tidak bergantung pada semua aspek fisikal. Perancangan sistem basis data secara konseptual dibagi atas langkah-langkah sebagai berikut : •
Identifikasi tipe-tipe entitas Æ mengidentifikasikan tipe-tipe entitas yang dibutuhkan. Entitas adalah sekumpulan objek dengan property yang sama yang diidentifikasi oleh perusahaan. Menurut Kroenke (2002,p), entitas adalah sesuatu yang dapat diidentifikasi pada lingkungan kerja pengguna yang pengguna ingin ketahui.
•
Identifikasi relasi antar-entitas Æ mengidentifikasikan relasi yang penting yang terjadi antar-entitas.
19 •
Identifikasi dan asosiasikan atribut dengan entitas atau tipe relasi Æ mengasosiasikan atribut dengan entitas atau relasi yang sesuai.
•
Menentukan attribute domain Æ menentukan domain untuk atribut pada model data konseptual. Attribute domain adalah sejumlah nilai yang diperkenankan untuk satu atau lebih atribut.
•
Menentukan atibut-atribut candidate key, primary key, dan alternative key Æ mengidentifikasi candidate key(s) pada tiap-tiap entitas, jika candidate key lebih dari satu, maka dipilih satu primary key dan candidate keys yang lain menjadi alternate keys. Candidate key adalah super key dalam relasi. Super key adalah atribut atau himpunan atribut yang mengidentifikasi secara unik tuple-tuple yang ada dalam relasi. Primary key adalah candidate key yang dipilih untuk identifikasi tuple secara unik dalam suatu relasi. Alternate key adalah candidate key yang tidak terpilih sebagai primary key.
•
Mempertimbangkan penggunaan enhanced modeling concepts (langkah ini bersifat opsional) Æ mempertimbangkan penggunaan specialization composition.
enhaced /
modeling
generalization,
concepts aggregation,
seperti
:
ataupun
20 Specialization adalah proses untuk memaksimalkan perbedaan antara anggota pada sebuah entitas dengan mengidentifikasi perbedaan karakteristik mereka. Generelization adalah proses meminimalisasi perbedaan antara anggota pada sebuah entitas dengan mengidentifikasi perbedaan karakteristik mereka. Aggregation adalah merepresentasi “has a“ atau “is part of “ relasi antara entitas dimana relasi “has a” merepresentasikan keseluruhan sedangkan relasi “is part of” merepresentasikan bagian dari.
Composition adalah bentuk spesifik dari
aggregation yang merepresentasikan sebuah hubungan antarentitas. •
Pengecekkan model data terhadap redudansi Æ mengecek apakah terjadi redudansi data. Redudansi data adalah data yang berulang.
•
Validasi model konseptual lokal terhadap transaksi user Æ memastikan bahwa model konseptual mendukung transaksitransaksi yang dibutuhkan.
•
Peninjauan kembali model data konseptual lokal bersama dengan user Æ meninjau kembali model data konseptual yang telah dibangun untuk memastikan bahwa model tersebut sesuai dengan representasi yang sebenarnya dari persyaratan data yang dibutuhkan oleh perusahaan.
21 2.1.8.2
Perancangan Sistem Basis Data Secara Logikal Tujuan dari tahap perancangan sistem basis data secara logikal adalah untuk menerjemahkan model data konseptual menjadi model data logikal dan untuk melakukan validasi terhadap struktur model yang sudah terbentuk sudah benar atau belum dan apakah model tersebut mampu mendukung transaksi yang terjadi. Perancangan sistem basis data secara logikal dibagi atas langkah-langkah sebagai berikut : •
Mendapatkan relasi untuk model data logikal Æ membuat relasi model data logikal untuk merepresentasikan entitasentitas, relasi-relasi, dan atribut-atribut yang sudah diidentifikasi. Relasi-relasi yang diperoleh bagi model data logikal yang ada pada model data konseptual : o Strong entity types adalah adalah entitas yang keberadaannya tidak tergantung dengan entitas lain, misalnya entitas staff, cabang. Karakteristik dari strong
entity
adalah
setiap
entitas
dapat
diidentifikasikan dengan primary key dari tipe entitas itu. o Weak entity types adalah entitas yang keberadaannya tergantung dari entitas lain. Karakteristik dari weak entity adalah attribut yang terdapat pada entitas tersebut tidak dapat mengidentifikasikan tipe entitas
22 itu secara unik. o One-to-many (1:*) binary relationship types adalah relasi dimana setiap entitas yang ada dapat mempunyai satu relasi atau lebih dari satu relasi dengan entitas yang lain. o One-to-one (1:1) binary relationship types adalah relasi dimana setiap entitas yang ada hanya dapat mempunyai maksimal 1 relasi dengan entitas yang lain. o One-to-one (1:1) recursive relationship types adalah relasi dimana setiap entitas yang ada sama pada kedua sisi. o Superclass / subclass relationship types adalah relasi dimana superclass entity merupakan parent dari subclass entity sebagai child o Many-to-many (*:*) binary relationship type adalah relasi dimana setiap entitas dapat mempunyai lebih dari satu relasi dengan entitas lainnya. o Complex relationship types adalah sebuah relasi yang menghasilkan sebuah relasi untuk merepresentasikan relasi yang ada dan meliputi atribut-atribut yang menjadi bagian dari relasi tersebut. o Multi-valued attributes adalah merupakan atribut yang mempunyai banyak nilai untuk setiap tipe entitas.
23 •
Melakukan
validasi
relasi
dengan
menggunakan
normalisasi. •
Melakukan validasi relasi terhadap transaksi yang dilakukan user Æ memastikan bahwa relasi pada model data
logikal
mendukung
transaksi-transaksi
yang
dibutuhkan. •
Memeriksa integritiy constraint Æ memeriksa integrity constraints yang dirpresentasikan pada model data logikal. Integrity digunakan
constraints agar
adalah
batasan-batasan
kelengkapan,
keakuratan,
yang dan
kekonsistensian sistem basis data terjaga dengan baik. Batasan-batasan yang ada meliputi : required data, attributes domain constraints, multiplicity, entity integrity, referential integrity, dan enterprise constraints. •
Peninjauan kembali model data logikal bersama dengan user Æ meninjau kembali model data logikal yang telah dibangun untuk memastikan bahwa model tersebut sesuai dengan representasi yang sebenarnya dari persyaratan data yang dibutuhkan oleh perusahaan.
•
Menggabungkan model-model data logikal yang ada menjadi
model
global
(langkah
opsional)
Æ
menggabungkan model-model data logikal lokal menjadi
24 sebuah model data logikal global yang merepresentasikan views sistem basis data bagi semua user. •
Memeriksa perkembangan di masa yang akan datang Æ memperkirakan apakah akan terjadi perubahan yang signifikan di masa yang akan datang dan untuk menilai apakah model data logikal yang ada sekarang dapat mengikuti perubahan tersebut.
2.1.8.3
Perancangan Sistem basis data Secara Fisikal Tujuan dari perancangan sistem basis data secara fisikal adalah untuk menghasilkan gambaran implementasi sistem basis data pada secondary storage. Tahap perancangan secara fisikal ini mendeskripsikan base relations, file organizations, dan indexes yang digunakan untuk mencapai akses data yang efisien dan setiap integrity constraints yang saling berhubungan dan pengukuran keamanan. Perancangan sistem basis data secara fisikal dibagi menjadi beberapa langkah yaitu : •
Menerjemahkan model data logikal global terhadap DBMS yang telah ditentukan Æ untuk menghasilkan skema relasional sistem basis data dari model data logikal sehingga bisa diimplementasikan pada DBMS yang dituju. Langkah-langkah yang digunakan adalah :
25 o Merancang relasi-relasi dasar Æ menentukan bagaimana merepresentasikan relasi dasar yang telah teridentifikasi pada model data logikal di DBMS yang dituju. o Merancang representasi dari data yang diperoleh Æ menentukan bagaimana merepresentasikan data yang terdapat pada model data logikal global ke dalam DBMS yang dituju. o Merancang general constraints Æ merancang general constraints untuk DBMS yang dituju. •
Merancang menentukan
file file
organizations
dan
organizations
Æ
untuk
optimal
untuk
indexes
yang
menyimpan relasi dasar dan indexes yang dibutuhkan untuk mencapai performa yang dapat diterima, itulah, cara dimana relasi dan tuple disimpan dalam secondary storage. Terdapat 4 langkah untuk mewujudkan tahap ini, yaitu : o Menganalisa
transaksi
Æ
mengetahui
fungsi-fungsi
transaksi yang berjalan pada sistem basis data dan untuk menganalisa transaksi-transaksi yang penting. o Memilih file organizations Æ untuk mengetahui file organizations yang efisien untuk relasi dasar. o Memilih
indexes
Æ
untuk
menentukan
apakah
penambahan indexes akan meningkatkan performa sistem.
26 o Memperkirakan besarnya tempat penyimpanan yang dibutuhkan Æ untuk memperkirakan besarnya tempat penyimpanan yang dibutuhkan oleh sistem basis data. •
Merancang user views Æ untuk merancang user views yang telah teridentifikasi selama tahap requirements collection and analysis dari siklus pengembangan sistem basis data.
•
Merancang mekanisme keamanan Æ untuk merancang mekanisme keamanan sistem basis data seperti yang dispesifikasi oleh user selama tahap requirements collection dari siklus pengembangan sistem basis data.
•
Mempertimbangkan penggunaan dari redudansi terkontrol Æ untuk menentukan apakah penggunaan redudansi terkontrol yang telah ternormalisasi akan dapat meningkatkan performa sistem.
•
Melakukan pengawasan dan pemeliharaan terhadap sistem operasi Æ untuk mengawasi sistem operasi dan meningkatkan performa dari sistem untuk memperbaiki rancangan-rancangan yang kurang sesuai atau sebagai refleksi adanya perubahan kebutuhan.
27 2.2 Teori – teori Pendukung 2.2.1
Pembelian Menurut Haidar (2001, p352), pembelian adalah mendapatkan sesuatu (barang atau jasa) dengna menukar uang yang senilai. Menurut Barata (2001, p29), pembelian adalah cara memperoleh sesuatu (barang atau jasa) dengan memberikan balas jasa berupa sejumlah uang yang nilainya sama dengan harga barang atau jasa yang diperolehnya. Menurut Mulyadi (2001, p299), pembelian didefinisikan sebagai suatu usaha yang digunakan dalam perusahaan untuk pengadaan barang yang diperlukan oleh perusahaan. Fungsi yang terkait dalam sistem pembelian (Mulyadi, 2001, p299) adalah : 1. Fungsi gudang, bertanggung jawab untuk mengajukan permintaan pembelian yang sesuai dengan posisi persediaan yang ada di gudang. 2. Fungsi pembelian, bertanggung jawab untuk mengeluarkan order pembelian kepada pemasok. 3. Fungsi penerimaan, bertanggung jawab menerima barang yang dikirim dari pemasok dan melakukan pemeriksaan guna menetukan atau tidaknya barang untuk diterima. 4. Fungsi akuntansi, fungsi yang terkait dalam hal ini adalah fungsi pencatat utang dan fungsi pencatat persediaan. Jaringan prosedur yang membentuk sistem pembelian (Mulyadi, 2001, p301), adalah sebagai berikut : 1. Prosedur permintaan pembelian.
28 Fungsi gudang mengajukan permintaan pembelian dalam formulir surat permintaan pembelian kepada fungsi pembelian. 2. Prosedur order pembelian. Fungsi pembelian mengirim surat order pembelian kepada pemasok dan memberitahukan kepada unit-unit lain (misalnya fungsi penerimaan, fungsi yang meminta barang, fungsi pencatat hutang) mengenai order pembelian yang sudah dikeluarkan. 3. Prosedur penerimaan barang. Fungsi penerimaan melakukan pemeriksaan terhadap barang yang diterima dari pemasok, dan kemudian membuat laporan penerimaan barang. 4. Prosedur pencatatan utang. Fungsi akuntansi memeriksa dokumen–dokumen yang berhubungan dengan pembelian dan menyelenggarakan pencatatan utang. 5. Prosedur distribusi pembelian. Prosedur ini meliputi distribusi rekening yang didebit dari transaksi pembelian untuk kepentingan pembuatan laporan manajemen. Dokumen–dokumen yang digunakan dalam sistem pembelian (Mulyadi, 2001, p303), terdiri atas: 1. Surat permintaan pembelian. 2. Surat order pembelian. 3. Laporan penerimaan barang. 4. Surat perubahan order. 5. Bukti kas keluar.
29 2.2.2
Penjualan Menurut Haidar (2001, p384), penjualan adalah pemindahan hak milik atas barang (termasuk surat-surat berharga) atau jasa sesuai dengan harga yang disepakati dan dibayar. Menurut www.exnal.com, penjualan adalah proses mempengaruhi keputusan pelanggan dalam menentukan pilihan produk atau jasa yang akan ditukarnya dengan uang atau yang akan dibeli. Menurut Barata (2001, p46), penjualan adalah suatu penyerahan barang atau jasa dengan memperoleh balas jasa berupa sejumlah uang yang jumlahnya sama dengan harga yang ditetapkan untuk barang atau jasa yang diserahkan. Menurut
(sap.gunadarma.ac.id),
jenis-jenis
penjualan
dapat
dibedakan menurut cara pembayarannya, yaitu : •
Penjualan tunai, bila pembayaran dilakukan secara tunai.
•
Penjualan kredit, bila pembayaran dilakukan secara angsuran atau kredit.
Menurut (sap.gunadarma.ac.id), terdapat juga penjualan yang disebut penjualan konsinyasi, disebut juga dengan penjualan penitipan, dimana perusahaan menitipkan produknya untuk dijual di took lain (bukan milik perusahaan). Fungsi yang terkait dalam sistem penjualan (Mulyadi, 2001, p211) adalah :
30 1. Fungsi penjualan, bertanggung jawab untuk menerima order, mengedit order, meminta otorisasi kredit, menentukan tanggal pengiriman, dan bertanggung jawab atas transaksi penjualan. 2. Fungsi
gudang,
bertanggung
jawab
untuk
menyimpan
dan
menyiapkan barang yang dipesan, serta menyerahkan barang ke fungsi pengiriman. 3. Fungsi pengiriman, bertanggung jawab menyerahkan barang kepada pelanggan berdasarkan surat jalan yang diterimanya dari fungsi penjualan. 4. Fungsi penagihan, bertanggung jawab membuat dan mengirimkan faktur penjualan kepada pelanggan, serta menyediakan salinan faktur bagi kepentingan pencatatan transaksi penjualan oleh fungsi akuntansi. 5. Fungsi akuntansi, bertanggung jawab mencatat piutang yang timbul dari transaksi penjualan, dan membuat laporan penjualan. Jaringan prosedur yang membentuk sistem penjualan (Mulyadi, 2001, p219) adalah sebagai berikut : 1. Prosedur order penjualan. Fungsi penjualan menerima order dari pembeli dan menambahkan informasi penting pada surat order. Fungsi penjualan kemudian membuat surat jalan, dan mengirimkannya kepada berbagai fungsi yang lain untuk memungkinkan fungsi tersebut memberikan kontribusi dalam melayani order dari pembeli. 2. Prosedur pengiriman.
31 Fungsi pengiriman mengirimkan barang kepada pembeli sesuai dengan informasi yang tercantum dalam surat jalan. 3. Prosedur penagihan. Fungsi penagihan membuat faktur penjualan dan mengirimkannya kepada pembeli. Dalam metode tertentu, faktur penjualan dibuat oleh fungsi penjualan sebagai tembusan pada waktu bagian ini membuat surat jalan. 4. Prosedur pencatatan piutang. Fungsi akuntansi mencatat tembusan faktur penjualan ke dalam kartu piutang atau dalam metode pencatatan tertentu, mengarsipkan dokumen tembusan menurut abjad yang berfungsi sebagai catatan piutang. 5. Prosedur distribusi penjualan. Fungsi akuntansi mendistribusikan data penjualan menurut informasi yang diperlukan dalam manajemen. Dokumen–dokumen yang digunakan dalam sistem penjualan (Mulyadi, 2001, p214) meliputi: 1. Surat jalan dan tembusannya. 2. Faktur dan tembusannya. 3. Rekapitulasi harga pokok penjualan. 4. Bukti memorial. Retur Penjualan Transaksi retur penjualan terjadi jika perusahaan menerima pengembalian barang dari pelanggan karena terjadi ketidaksesuaian
32 seperti barang yang diterima tidak cocok dengan spesifikasi pada surat order atau barang telah kadaluarsa. Pengembalian barang oleh pelanggan harus diotorisasi oleh fungsi penjualan dan diterima oleh fungsi penerimaan. 2.2.3
Persediaan / Pergudangan Pergudangan adalah usaha penyimpanan barang di gudang dengan fasilitas-fasilitasnya, seperti penyimpanan barang dalam kamar / ruangan pendingin dan gudang barang-barang yang berada di kawasan berikut. (Sumber: www.bi.go.id). Penyimpanan atau pergudangan adalah pengamanan barang-barang selama dibutuhkan. (Sumber: http://library.usu.ac.id).