7 BAB 2 TINJAUAN PUSTAKA 2.1. Teori Umum 2.1.1

advertisement
BAB 2
TINJAUAN PUSTAKA
2.1. Teori Umum
2.1.1 Teori Basis Data
Teori yang berkaitan dengan basis data seperti data, basis data (database),
Database
Management
System
(DBMS),
Database
Application,
Entity
Relationship Modelling (ER Modelling), normalisasi, Structured Query Language
(SQL), metode perancangan basis data, Database System Development Lifecycle
(DSDLC), dan MySQL.
2.1.1.1
Data
Menurut pendapat (Thomas Conolly, Carolyn Begg, 2015, p. 68), data
adalah komponen terpenting dari lingkungan sistem manajemen basis data.
Data disini berperan untuk menjembatani antara komponen mesin dengan
komponen manusia.
2.1.1.2
Basis Data
Berlandaskan pada pendapat (Jeffrey L Whitten, 2007, p. 518), database
atau basis data adalah kumpulan file yang saling terkait antara satu sama lain.
2.1.1.3
DBMS
Menurut pendapat (Jeffrey L Whitten, 2007, p. 525), Database
Management System (DBMS) merupakan perangkat lunak khusus yang dapat
digunakan untuk membuat, mengontrol, dan mengelola sebuah basis data.
Tabel 2. 1 Kelebihan dan Kekurangan DBMS
Kelebihan
Mengontrol redudansi data
Konsistensi data
Meningkatkan produktivitas
Standarisasi
Meningkatkan keamanan
Meningkatkan pemeliharaan
data
Fasilitas backup dan recovery
7
Kekurangan
Kompleksitas
Ukuran
Biaya DBMS
Biaya konversi
Performance
Biaya hardware tambahan
Kegagalan berdampak besar
8
Menurut pendapat (Thomas Conolly, Carolyn Begg, 2015, p. 75&78),
dengan menggunakan DBMS, selain akan mendapatkan kelebihan, DBMS
sendiri juga memiliki beberapa kekurangan diantaranya:
2.1.1.4
Konsep Normalisasi
Menurut pendapat (Thomas Conolly, Carolyn Begg, 2015, pp. 452-472),
normalisasi adalah sebuah teknik untuk memproduksi kumpulan relasi dengan
atribut yang diinginkan dan berkaitan dengan kebutuhan data perusahaan.
Normalisasi dilakukan dengan tujuan mengidentifikasi kumpulan relasi yang
cocok untuk membantu memenuhi kebutuhan perusahaan.
Karakteristik kumpulan relasi yang dimaksud antara lain seperti
redudansinya minimum, atribut dengan relasi logikal (digambarkan dengan
ketergantungan fungsional) dapat ditemukan dalam relasi yang sama, dan
jumlah atribut minimal yang dibutuhkan untuk melengkapi kebutuhan
perusahaan.
Dalam melakukan normalisasi, tahapan yang harus dilakukan untuk
membentuk relasi yang efektif, adalah Unnormalized Form (UNF), yaitu
kondisi ketika tabel masih mengandung satu atau lebih grup yang berulang.
First Normal Form (1NF), adalah kondisi relasi dimana setiap baris dan kolom
hanya mengandung satu nilai. Second Normal Form (2NF), adalah kondisi
relasi yang ada di dalam 1NF dan setiap atribut non-primary key-nya
bergantung penuh secara fungsional pada primary keynya. Sedangkan Third
Normal Form (3NF), yaitu kondisi relasi yang ada didalam 1NF dan 2NF
dimana tidak ada atribut non primary key yang bergantung secara transitif pada
primary key.
2.1.1.5
Entity Relationship Diagram (ERD)
Menurut (Abraham Silberschatz, Henry Korth, S. Sudarshan, 2010),
Entity Relationship Diagram digunakan untuk menggambarkan struktur logikal
basis data dengan grafis secara keseluruhan. Entity Relationship Diagram
dibuat dengan sederhana dan jelas untuk mendefinisikan sistem.
2.1.1.6
Entity Relationship Modelling
9
Menurut pendapat (Thomas Conolly, Carolyn Begg, 2015, p. 405), Entity
Relationship Modelling adalah pendekatan secara top-down pada perancangan
basis data yang dimulai dengan mengidentifikasi komponen penting pada data
yaitu entitas dan relasi yang dipresentasikan dalam sebuah model.
Menurut pendapat (Thomas Conolly, Carolyn Begg, 2015, p. 406&417),
entitas adalah kumpulan objek dengan atribut yang sama yang teridentifikasi
oleh perusahaan dan keberadaannya independen. Sedangkan tipe entitas sendiri
dapat dibagi menjadi Strong Entity dan Weak Entity.
Strong Entity adalah tipe entitas yang tidak bergantung pada keberadaan
entitas lain, sedangkan weak entity adalah tipe entitas yang bergantung pada
keberadaan entitas lain.
Menurut (Ramez Elmasri,Shamkant B. Navathe, 2011, p. 219), Strong
Entity adalah entitas biasa yang memiliki key attribute. Sedangkan Weak Entity
adalah jenis entitas yang tidak memiliki key attribute dari mereka sendiri.
Menurut pendapat (Thomas Conolly, Carolyn Begg, 2015, pp. 408-411),
tipe relationship adalah kumpulan antar tipe entitas yang memiliki arti. Tipe
relationship memiliki beberapa derajat relasi yang merupakan jumlah entitas
yang ikut berpartisipasi pada suatu relationship seperti binary relationship,
yakni keterkaitan antara dua tipe entitas. Ternary relationship yakni keterkaitan
antara tiga tipe entitas. Querternary Relationship yakni keterhubungan antar
empat entitas. Unary Relationship yang biasa disebut recursive relationship
yakni keterhubungan dari satu tipe entitas, dimana tipe entitas tersebut
berpartisipasi lebih dari satu kali dengan peranan berbeda.
Menurut pendapat (Thomas Conolly, Carolyn Begg, 2015, pp. 413-415),
atribut adalah sebuah property dari sebuah entitas maupun tipe relasi.
Sedangkan Attribute Domain adalah set nilai yang diperbolehkan untuk satu
atau lebih atribut. Tetapi terkadang sebuah domain dari atribut sulit untuk
didefinisikan, maka Atribut sendiri dibagi menjadi Simple Attribute, Composite
Attribute, Single Valued Attribute, Multi valued Attribute, dan Derived
Attribute.
Simple Attribute adalah atribut yang terdiri atas satu komponen yang
berdiri secara independen dan tidak bisa dibagi menjadi komponen yang lebih
kecil, contohnya seperti atribut posisi gaji dalam entitas Staff. Sedangkan
Composite Attribute adalah atribut yang terdiri atas banyak komponen dengan
10
keberadaan independen, beberapa atribut dapatdibagi menjadi komponenkomponen lebih kecil. Contohnya seperti atribut alamat pada entitas cabang
dapat dibagi menjadi atribut jalan, kota, dan kode pos.
Single valued attribute adalah atribut yang memiliki nilai tunggal untuk
tiap kejadian pada entitas. Multi valued attribute adalah atribut yang memiliki
beberapa nilai untuk setiap kejadian dalam sebuah entitas. Contohnya entitas
Customer memiliki beberapa nilai atribut untuk CustomerPhone pada setiap
kejadian. Derived attribute adalah sebuah atribut yang merepresentasikan nilai
yang dapat diturunkan dari nilai atribut yang terkait
Menurut pendapat (Thomas Conolly, Carolyn Begg, 2015, p. 415), keys
sendiri dibedakan menjadi 3, diantaranya adalah, Candidate key yaitu
kumpulan jumlah minimal atribut yang secara unik dapat mengidentifikasi
setiap kejadian atau record. Primary key yaitu candidate key yang terpilih
secara unik untuk mengidentifikasi setiap kejadian atau record pada sebuah
tipe entitas. Composite key yang berarti sebuah candidate key yang terdiri dari
dua atau lebih atribut.
2.1.1.7
Structured Query Language (SQL)
Menurut pendapat (Thomas Conolly, Carolyn Begg, 2015, pp. 191-193),
SQL adalah bahasa yang muncul karena pengembangan model relasi, dalam
SQL sendiri terdapat dua komponen utama, yaitu Data Definition Language
dan Data Manipulation Language.
Data Definition Language digunakan untuk menjelaskan struktur basis
data dan memantau akses menuju data. Menurut pendapat (Thomas Conolly,
Carolyn Begg, 2015, p. 193), Data Manipulation Language digunakan untuk
mengambil data maupun meng-update data.
2.1.1.8
Metodologi Perancangan Basis Data
Dalam merancang sebuah basis data, terdapat beberapa langkah utama
yang dilakukan dalam perancangan basis data, yaitu :
1. Perancangan basis data konseptual
Menurut pendapat (Thomas Conolly, Carolyn Begg, 2015, pp.
505-506),
perancangan
basis
data
konseptual
adalah
proses
membangun model dari data yang digunakan oleh perusahaan, beserta
11
pertimbangan fisik independen. Langkah yang dilakukan untuk
merancang basis data konseptual adalah identifikasi tipe entitas,
identifikasi tipe relasi, identifikasi dan asosiasi atribut dengan tipe
entitas atau relasi, menentukan domain atribut, menentukan atribut
candidate key, primary key, dan alternate key, mempertimbangkan
penggunaan konsep enchanced modelling (opsional) (langkah ini tidak
digunakan untuk perancangan sistem ini), memeriksa model
redundansi, validasi model konseptual dengan transaksi user,
meninjau kembali model data konseptual dengan pengguna.
2. Perancangan basis data logikal
Menurut (Thomas Conolly, Carolyn Begg, 2015, pp. 505-506),
Perancangan basis data logikal adalah proses membangun model data
yang digunakan perusahaan berdasarkan pada model data yang
spesifik, dengan adanya pertimbangan fisik secara independen dari
DBMS tertentu. Langkah yang dilakukan, yaitu penurunan relasi
model data logikal, validasi relasi menggunakan normalisasi, validasi
relasi terhadap transaksi pengguna, memeriksa integrity constraints,
meninjau kembali model data logikal bersama user, menggabungkan
model data logikal menjadi model global (opsional) (langkah ini tidak
digunakan untuk perancangan sistem ini), memeriksa perkembangan
di masa mendatang.
3. Perancangan basis data fisikal
Menurut (Thomas Conolly, Carolyn Begg, 2015, pp. 505-506),
perancangan fisikal basis data adalah proses memproduksi deskripsi
implementasi
basis
data
pada
penyimpanan
sekunder,
yang
mendeskripsikan relasi dasar, organisasi file, dan index yang
digunakan untuk mendapatkan akses data secara efisien serta batasanbatasan yang terasosiasi dan
sistem keamanan. Langkah yang
dilakukan antara lain seperti merancang relasi dasar, merancang
representasi dari derived data, dan merancang batasan umum.
Tahap merancang organisasi file dan indeks dilakukan untuk
menentukan organisasi file secara optimal untuk menyimpan relasi
dasar dan indeks yang dibutuhkan untuk mencapai performa yang
dapat diterima.
12
Tahap ini dibagi menjadi 4 langkah, yang pertama adalah
menganalisa transaksi, yang kedua adalah memilih organisasi file,
yang ketiga adalah memilih indeks, dan yang ke empat adalah
memperkirakan besarnya tempat penyimpanan yang dibutuhkan.
Tahap merancang user views dilakukan untuk merancang
tampilan pengguna sesuai dengan kebutuhan pada saat pengumpulan
kebutuhan user dan tahap analisa pada database system development
lifecycle.
Tahap merancang mekanisme keamanan dilakukan untuk
merancang sistem keamanan basis data sesuai dengan kebutuhan user
pada saat pengumpulan kebutuhan user.
Dalam penerapannya pada perancangan sistem pergudangan PT
Plasindo Lestari, mekanisme keamanan dibuat melalui role dari dalam
aplikasi.
2.1.1.9
Database System Development Lifecycle (DSDLC)
Menurut (Thomas Conolly, Carolyn Begg, 2015, p. 348), tahapantahapan dari Siklus Hidup Pengembangan Sistem Database (Database System
Development Lifecycle) meliputi database planning, system definition,
requirement collection and analysis, database design, DBMS selection,
application design, prototype, implementation, data convertion and loading,
testing, dan operational maintenance.
Tahapan database planning adalah tahap di mana manajemen suatu
perusahaan memutuskan bahwa sebuah sistem basis data dapat direalisasikan
untuk memenuhi tujuan tertentu dengan cara yang efisien dan efektif.
Tahapan system definition adalah tahapan untuk menentukan batasan dari
sistem basis data yang akan dikembangkan. Batasan suatu sistem basis data
dapat dilihat dari sudut pandang setiap posisi yang menggunakan sistem
tersebut (user view).
Tahapan
requirement
gathering
and
analysis
adalah
tahapan
pengumpulan dan analisa informasi dari perusahaan mengenai kebutuhan
sistem basis data yang akan dibuat. Untuk memperoleh informasi tersebut,
banyak teknik yang dapat digunakan, yang disebut fact-finding techniques.
13
Tahapan merancang basis data yang sesuai dengan tujuan pembuatan
sistem basis data yang telah ditentukan. Pendekatan yang dilakukan dapat
digolongkan menjadi 4 tipe, yaitu : bottom-up, top-down, inside-out, dan mixed
strategy. Perancangan basis data dapat dibagi ke dalam 3 tahapan, yaitu
perancangan basis data konseptual, perancangan basis data logikal, dan
perancangan basis data fisikal.
Tahapan DBMS selection adalah tahap pemilihan Database Management
System (DBMS) yang sesuai dengan kebutuhan sistem dan kebutuhan
perusahaan.
Tahapan application design adalah tahapan perancangan antar muka
(user interface) dan aplikasi program yang terhubung dan memproses
database. Perancangan aplikasi harus memenuhi setiap kebutuhan user dan
mudah dimengerti oleh user.
Tahapan prototyping adalah tahapan opsional di mana dilakukan
pembuatan model kerja dari sistem basis data sehingga user dapat melihat
sekilas sistem yang akan diimplementasi dan memberi masukan tentang
pengembangan sistem tersebut. Tahapan ini digunakan untuk mengklarifikasi
kebutuhan user.
Tahapan implementation adalah tahapan realisasi fisik dari sistem basis
data. Implementasi sistem basis data dapat diterapkan dengan Data Definition
Language (DDL) untuk membuat file database dan Data Manipulation
Language (DML) untuk memanipulasi database.
Tahapan data conversion and loading memindahkan data yang telah ada
sebelumnya ke database baru dan mengkonversi aplikasi yang telah ada
sehingga dapat mengakses database yang baru.
Tahapan testing adalah tahapan menjalankan sistem basis data yang telah
diimplementasi untuk menemukan kesalahan atau ketidaksesuaian pada sistem.
Tahapan ini meliputi sisi usability sistem basis data dengan kriteria
learnability, performance, robustness, recoverability, dan adapatability.
Tahapan operational maintenance adalah tahapan memantau dan
merawat sistem basis data setelah instalasi. Proses ini terdiri dari pengawasan
performa sistem dan perawatan serta meningkatkan sistem basis data apabila
diperlukan.
14
2.1.1.10
MySQL
Menurut (Laura Thomson, Luke Welling, 2008, p. 3), MySQL
adalah sebuah Relational Database Management System (RDBMS)
yang sangat kuat dan cepat. Sebuah database memungkinkan adanya
penyimpanan, pencarian, mengurutkan data, dan mengambil data
dengan efisien. MySQL Server mengontrol akses data untuk
memastikan
banyak
user
dapat
bekerja
bersamaan,
untuk
menyediakan akses cepat, dan memastikan bahwa hanya user yang
memiliki autorisasi yang dapat mengakses. MySQL Menggunakan
Structured Query Language (SQL), bahasa standar dalam query basis
data di seluruh dunia.
2.1.2 Teori Perancangan Aplikasi
Teori yang berkaitan dengan perancangan aplikasi meliputi data flow
diagram, state transition diagram, Schneiderman’s 8 Golden Rules, dan PHP.
2.1.2.1
Data Flow Diagram
Menurut (Setiawan, 2011), data flow diagram adalah suatu grafik yang
menjelaskan sebuah sistem dengan menggunakan bentuk dan simbol untuk
menggambarkan aliran data dari proses yang saling berhubungan. Data flow
diagram adalah salah satu alat pembuatan model yang sering digunakan,
khususnya bila fungsi sistem merupakan bagian yang lebih penting dan
kompleks daripada data yang dimanipulasi oleh sistem tersebut.
Dengan kata lain, data flow diagram adalah alat pembuatan model yang
memberikan penekanan hanya pada fungsi sistem. Data flow diagram
merupakan alat perancangan sistem yang berorientasi pada aliran data dengan
konsep dekomposisi yang dapat digunakan untuk penggambaran analisa
maupun rancangan sistem yang mudah dikomunikasikan oleh professional
sistem kepada pengguna maupun pembuat program.
Menurut (Afyenni, 2014), Data Flow Diagram memiliki 4 komponen
yaitu External Entity, Proses, Data Store, dan Aliran data. External Entity
berguna untuk menyatakan suatu divisi dalam perusahaan tetapi diluar sistem
yang dikembangkan. Semisal langganan pemasok, dan penerima akhir suatu
laporan. Sedangkan Proses, digunakan untuk menunjukkan kegiatan atau kerja
yang dilakukan oleh orang, mesin, atau komputer dari hasil suatu arus data
15
yang masuk ke dalam proses untuk menghasilkan arus data yang keluar dari
proses. Selanjutnya Data store, digunakan untuk menunjukkan simpanan dari
data yang dapat berupa file atau database di sistem komputer. Yang terakhir
adalah aliran data, yang digunakan untuk menunjukkan arus dari data yang
dapat berupa input untuk sistem ataupun output hasil dari proses sistem.
Menurut (Afyenni, 2014) dalam melakukan pemodelan proses,
dibutuhkan beberapa level DFD agar proses yang dimodelkan tersebut sesuai
dengan sistem yang diinginkan. Semakin tinggi level DFD nya maka
pemodelan akan semakin rinci, berikut adalah pemodelan yang ada dalam Data
Flow Diagram, seperti DFD level 0, DFD level 1, dan DFD level 2.
DFD level 0, biasa disebut dengan diagram konteks, yang merupakan
gambaran bagaimana sistem berinteraksi dengan external entity. DFD level 1,
akan menunjukkan proses-proses utama yang terjadi didalam sistem yang
sedang dibangun. Selanjutnya DFD level 2, yang biasa disebut dengan diagram
rinci. Pada tahap ini DFD level 1 yang sudah terbentuk akan dijabarkan lebih
rinci, setiap proses pada DFD level 1 akan dimodelkan secara lebih detail
menjadi sebuah DFD lagi. Apabila diperlukan pemodelan yang lebih rinci lagi,
maka setiap proses pada DFD level 2 juga dapat diperinci lagi menjadi DFD
level 3. Biasanya perincian DFD berhenti sampai pada proses yang bersifat
atomic (sudah cukup mendetail dan tidak dapat diperinci).
2.1.2.2
State Transition Diagram
Menurut (Jeffrey L Whitten, 2007, p. 635), State Transition Diagram
adalah sebuah alat yang digunakan untuk menggambarkan urutan dan variasi
layar yang dapat terjadi. Terdapat dua simbol dalam State Transition Diagram
yaitu State dan Aliran Transisi.
Tabel 2. 2 Simbol State Transition Diagram
Simbol
Keterangan
State adalah kumpulan keadaan atau
atribut yang mencirikan seseorang
atau suatu benda di waktu tertentu.
16
Gambar panah menunjukkan aliran
transisi antar state. Tiap panah diberi
keterangan dengan ekspresi aturan.
2.1.2.3
Schneiderman’s 8 Golden Rules
Menurut (Shneiderman, 2010, pp. 88-89), pada perancangan antar muka
harus memperhatikan poin-poin seperti 8 Golden Rules of Interface Design,
yaitu upayakan konsistensi, memungkinkan pengguna menggunakan jalan
pintas, memberi umpan balik yang informatif, merancang dialog untuk
menghasilkan penutupan, menawarkan penanganan kesalahan yang sederhana,
memungkinkan adanya pembalikan tindakan, mendukung pusat kendali
internal, dan mengurangi beban ingatan jangka pendek.
Urutan konsistensi tindakan diperlukan dalam situasi yang sama.,
terminologi identik harus digunakan pada anjuran, menu, dan tampilan
bantuan, serta perintah konsisten harus digunakan dalam seluruh rancangan.
Seiring dengan seringnya interaksi user terhadap sistem, tentunya user
ingin mengurangi jumlah interaksi dan meningkatkan kecepatan interaksi.
Maka dari itu singkatan, tombol fungsi, perintah tersembunyi, dan fasilitas
makro dapat membantu pengguna yang sudah ahli.
Untuk setiap user yang melakukan tindakan, tentunya harus ada umpan
balik yang jelas agar menghindari user kebingungan dan tersesat dalam
pencarian informasi.
Urutan tindakan harus diatur dalam kelompok yang berisi awalan,
tengah, dan akhir. Dengan adanya umpan balik informatif pada penyelesaian
tindakan dapat memberikan kepuasan kepada user dan tidak menimbulkan
dugaan lain. Sehingga user dapat dengan jelas mempersiapkan urutan tindakan
berikutnya.
Perancangan sistem dibuat agar user tidak dapat melakukan kesalahan
yang serius. Apabila tetap terjadi kesalahan, tentunya sistem harus bisa
mendeteksi kesalahan dan menawarkan komprehensi mekanisme yang
sederhana untuk menangani kesalahan. Dengan demikian user tidak mengalami
kendala yang berarti saat melakukan kesalahan.
Fitur ini dapat mengurangi rasa kecemasan user, karena user tahu
kesalahan dapat dibatalkan. Sehingga akan mendorong user untuk mencoba
17
pilihan yang asing. Satuan pembalikan bisa saja berbentuk tindakan, entry
data, atau tindakan lengkap.
Operator
berpengalaman
tentunya
menginginkan
mereka
yang
memegang kendali atas sistem dan sistem meresponse tindakan operator.
Sehingga perancangan sistem ditekankan pada user sebagai pembuka tindakan
bukan merespons tindakan.
Keterbatasan manusia dalam memproses informasi pada ingatan jangka
pendek menyebabkan perancangan sistem harus dibuat dengan sederhana
mungkin, sehingga user tidak perlu mengingat banyak hal. Contohnya lebih
baik sistem menampilkan pilihan yang tersedia daripada membiarkan user
untuk mengetikkan pilihannya.
2.1.2.4
PHP
Menurut (Laura Thomson, Luke Welling, 2008, p. 2), PHP adalah bahasa
pemrograman server-side yang dirancang khusus untuk pembuatan web. Dalam
file HTML, code PHP dapat dimasukkan dan dieksekusi setiap kali halaman
diakses. Pemrograman PHP dijalankan pada web server dan menghasilkan
HTML maupun output lain yang akan dilihat oleh pengguna web.
2.2. Teori Khusus
2.2.1 Warehouse
Menurut (Ramaa.A, K.N.Subramanya, T.M.Rangaswamy, 2012, p. 14),
warehouse adalah fasilitas dalam supply chain untuk mengkonsolidasi produk
guna mengurangi biaya transportasi, mencapai skala ekonomi dibidang
manufaktur maupun pembelian, atau menyediakan penambahan nilai proses dan
mempersingkat waktu respon.
2.2.2 Warehouse Management System
Menurut (Holy Icun Yunarto, Martinus Getty Santika, 2005, p. 15),
Warehouse Management System (WMS) adalah sebuah sistem yang bertujuan
untuk mengontrol proses-proses shipping (pengiriman), receiving (penerimaan),
putaway (penyimpanan), movement (pergerakan), dan picking (pengambilan).
WMS memberikan fasilitas untuk memberi informasi mengenai lokasi
penyimpanan barang, jumlah barang, dan jenis barang sehingga manajemen
persediaan dapat dilakukan dengan lebih optimal.
18
Menurut (Ramaa.A, K.N.Subramanya, T.M.Rangaswamy, 2012), Dalam
pembuatan warehouse, apabila warehouse akan berkontribusi untuk menjadi
sumber dalam menambah nilai supply chain, maka pengukuran kinerja perlu
dilakukan. Tolak ukur kinerja warehouse yang baik adalah pemenuhan urutan,
pengukuran manajemen inventori, dan produktivitas warehouse.
Kriteria pemenuhan urutan meliputi pengiriman tepat waktu, laju
pemenuhan pesanan, akurasi pemesanan, line akurasi, waktu siklus pemesanan,
pemenuhan sempurna pemesanan. Kriteria pengukuran manajemen inventori
meliputi akurasi inventory, inventory yang rusak, utilisasi penyimpanan, proses
stock, dan inventory visibility. Sedangkan kriteria produktivitas warehouse
meliputi Pesanan per jam lines per jam, items per jam, biaya per pemesanan, dan
biaya pergudangan sebagai bagian biaya total penjualan perusahaan.
Download