8 BAB 2 LANDASAN TEORI 2.1 Internet Pengertian Internet menurut Rudy et al. (2007, p194) merupakan kumpulan kabel, protokol, dan perangkat keras yang memperbolehkan transmisi secara elektronik melalui TCP-IP. Bentuk internet merupakan jaringan komputer secara global yang dapat menyebarkan data dan program. Lihat Gambar 2.1. Gambar 2.1 Jaringan Internet 9 2.2 Web Berdasarkan Turban, Rainer dan Potter (2003, p214) web adalah sistem dengan standar universal yang diterima untuk menyimpan, mengambil, memformat, dan menampilkan informasi melalui arsitektur klien atau server. Web menangani semua tipe dari informasi digital, termasuk text, hypermedia, grafik, dan suara. Web menggunakan graphic user interface, jadi sangat mudah untuk digunakan. Pokok teknologi world wide web (WWW) dibuat oleh Thimothy Berners-Lee, yang pada tahun 1989 mengusulkan jaringan global dari dokumen hypertext yang akan memungkinkan peneliti fisika untuk bekerja sama. Web didasarkan pada bahasa standar hypertext yang disebut Hypertext Markup Language (HTML), yang format dokumen dan penggabungan hypertext dinamis dihubungkan ke penyimpanan dokumen lainnya pada komputer yang sama maupun berbeda. Untuk mengakses website, pengguna harus menentukan Uniform Resource Locator (URL), yang menunjuk ke alamat dari sebuah sumber tertentu di web. Misalnya, URL untuk microsoft adalah http://www.microsoft.com. 2.3 Rekayasa Piranti Lunak (RPL) Berdasarkan Roger S. Pressman (1987, p19) Piranti lunak adalah hasil perkembangan dari perangkat keras dan system engineering. Piranti lunak tersebut meliputi satu set dari tiga elemen yaitu methods, tools, and procedures. 10 Hal itu memungkinkan manajer untuk mengontrol perkembangan piranti lunak dan menyediakan pelaksana dengan dasar untuk membangun piranti lunak yang berkualitas tinggi. 1. Software Engineering Methods Menyediakan teknik-teknik bagaimana untuk membuat piranti lunak. 2. Software Engineering Tools Menyediakan dukungan otomatis atau semi-otomatis untuk mendukung methods. 3. Software Engineering Procedures Sebuah alat untuk menyatukan methods dan tools dan memungkinkan pengembangan rasional dan tepat waktu pada piranti lunak komputer. Ada 4 paradigma pada rekayasa piranti lunak, yaitu : 1. The Classic Life Cicle Gambar 2.2 Diagram Waterfall Model (Pressman, 1987, p20) 11 Salah satu paradigma rekayasa piranti lunak yang sering dipakai adalah Classic Life Cicle atau sering juga disebut “Waterfall Model” (Lihat Gambar 2.2). Ada enam tahapan dalam The Classic Life Cicle, yaitu : • Rekayasa Sistem (Software Engineering) Piranti lunak merupakan bagian dari sistem yang besar, oleh karena itu penting untuk menetapkan kebutuhan seluruh sistem terlebih dahulu. Setelah itu ditentukan bagian dari kebutuhan ini yang akan dimasukkan dalam piranti lunak. Dalam hal ini yang terpenting adalah antar muka (interface) antara piranti lunak dengan perangkat keras, pemakai dan basis data (database). • Analisis Kebutuhan Piranti Lunak (Software Requirement Analysis) Analisis yang dilakukan pada tahap ini adalah untuk mengetahui kebutuhan piranti lunak, sumber informasi piranti lunak, fungsifungsi yang dibutuhkan, kemampuan piranti lunak, dan antar muka piranti lunak tersebut. • Perancangan (Design) Perancangan piranti lunak dititik beratkan pada empat atribut program yaitu struktur data, arsitektur piranti lunak, perincian prosedur, dan karakter tatap muka. Proses perancangan penerjemahan kebutuhan kedalam representasi piranti lunak yang dapat di nilai kualitasnya sebelum pengkodean. 12 • Pengkodean (Coding) Perancangan harus diterjemahkan kedalam bentuk yang dimengerti mesin sehingga mesin dapat membaca rancangan tersebut, yaitu dengan membuat program. • Pengujian (Testing) Tahap pengujian ini perlu dilakukan agar kekuatan yang dihasilkan oleh program sesuai dengan yang diharapkan. Pengujian ini dilakukan secara menyeluruh sampai semua perintah dan fungsi telah diuji. • Pemeliharaan (Maintenance) Karena kebutuhan pemakai selalu akan meningkat, maka piranti lunak yang telah selesai dibuat perlu dipelihara agar dapat mengantisipasi kebutuhan pemakai terhadap fungsi-fungsi baru yang dapat timbul karena munculnya sistem operasi baru, perangkat keras baru, dan sebagainya. 13 2. Prototyping Gambar 2.3 Diagram Prototyping (Pressman, 1987, p23) Merupakan suatu proses yang memungkinkan pengembang untuk membuat sebuah model dari piranti lunak yang hendak dibangun agar pengembang yakin akan efisiensi atas suatu algoritma, kemampuan adaptasi sistem operasi atau interaksi manusia dan komputer yang sesuai dengan keinginan. Pada umumnya ukuran tahap yang ada pada prototyping adalah (Lihat Gambar 2.3) : 1. Pengumpulan kebutuhan 2. Perancangan yang cepat 3. Pembuatan protoype 4. Pelaksanaan evaluasi dan penyempurnaan prototype 14 5. Pembuatan produk piranti lunak 3. Teknik Generasi ke-empat (4GT) Gambar 2.4 Diagram Fourth Generation Techniques (Pressman, 1987, p24) Pemodelan ini menggunakan alat-alat bantu piranti lunak, yakni bahasa pemrograman 4GT (Lihat Gambar 2.4) yang memungkinan pengembang piranti lunak menspesifikasikan beberapa karakteristik piranti lunak. Alatalat bantu tersebut kemudian akan menghasilkan source-code sesuai dengan spesifikasi yang diberikan pengembang. Ada 4 tahapan dalam model 4GT, yaitu pengumpulan kebutuhan piranti lunak, strategi perancangan, implementasi dengan menggunakan bahasa pemrograman tingkat 4 dan pengujian piranti lunak. 15 4. Paradigma Kombinasi Dalam beberapa kasus, model ini dapat dikombinasikan dari kelebihankelebihan penggunaan permodelan diatas menjadi satu proyek tunggal. Model yang dikombinasikan yaitu model Classic Life Cicle, model prototyping, dan teknik generasi ke-empat (4GT). 2.4 Interaksi Manusia dan Komputer (IMK) Berdasarkan Shneiderman (1998, p15), determinasi yang sangat hati-hati dari komunitas para pengguna multimedia dan dari kumpulan benchmark adalah dasar untuk pencapaian tujuan bagi setiap manusia. Bagi setiap pengguna dan setiap task, objek yang diukur secara tepat bagi para perancang, evaluator, purchaser, atau manajer. Ada 5 faktor dari manusia yang harus diperhatikan untuk dievaluasi : 1. Waktu untuk belajar. Berapa lama untuk anggota yang berbeda-beda dari komunitas pengguna untuk mempelajari dan menggunakan perintah yang berhubungan dari sekumpulan task? 2. Kecepatan pengajian informasi sehingga informasi yang tersedia adalah yang akurat. 3. Tingkat kesalahan pemakai. Berapa banyak dan apa saja error atau kesalahan yang dilakukan oleh para pengguna? Penanganan suatu kesalahan atau error handling merupakan suatu hal yang sangat penting bagi komponen dari 16 penggunaan sistem yang juga harus dipelajari secara terus menerus secara ekstensif. 4. Mudah dihafal. Berapa lama para pengguna dapat menjaga pengetahuannya tersebut setelah beberapa jam, hari, atau minggu. Hafalan yang mungkin berhubungan sangat erat dengan waktu dalam pembelajaran. 5. Kepuasan pemakai. Seberapa suka para pengguna menggunakan aspek-aspek yang bervariasi dari sebuah sistem? Jawabannya adalah dengan menggunakan wawancara dan menulis survei, termasuk juga skala dari kepuasan, dan kolom kosong untuk komentar umum dari para pengguna. 2.4.1 Delapan Aturan Emas Berdasarkan Shneiderman (1998, p74) ada delapan aturan yang harus diperhatikan dalam menyusun IMK, yaitu : 1. Bertahan untuk konsisten. Konsisten yang dimaksud adalah konsisten dalam aksi-aksi situasi tertentu, konsistensi menu, warna, layout, fonts, dan sebagainya. 2. Memperbolehkan pemakai rutin untuk menggunakan shortcut. 3. Umpan balik yang interaktif untuk setiap aksi yang dilakukan. 4. Pengorganisasian yang baik, sehingga pemakai mengetahui kapan awal dan kapan akhir dari suatu interaksi. 17 5. Penanganan masalah yang sederhana. 6. Memperbolehkan pemakai dalam mengulang, memperbaiki, dan membatalkas suatu aksi. 7. Menyediakan kendali internal bagi pemakai, sehingga pemakai merasa bahwa ia mengendalikan sistem dan sistem akan memberikan respon terhadap aksinya. 8. Mengurangi menghafalan, dengan mengingat kaidah ingatan manusia yang terbatas sehingga perancangan harus sederhana. 2.5 Basis Data 2.5.1 Definisi Basis Data Pengertian basis data menurut Connolly dan Begg (2002,p14), “Database is a shared collection of logically related data ,and a description of this data, designed to meet the information needs of an organization” ,yang berarti “Basis data adalah penggunaan bersama dari data yang terhubung secara logic dan deskripsi dari data yang dirancang untuk keperluan informasi dari suatu perusahaan”. Pengertian basis data menurut Date (1995, p9) ,”A database is a collector of persistent data that is used by application system of some given enterpise” ,dapat diartikan “Basis data adalah suatu koleksi atau 18 kumpulan data yang presisten yang digunakan oleh sistem aplikasi dari perusahaaan”.Presisten disini diartikan sebagai data yang berbeda satu dengan yang lainnya dan biasanya merupakan data yang bersifat sementara. Sedangkan menurut Sutejo dan Lie (2007, p151) basis data merupakan kumpulan dari data yang saling berhubungan satu dengan yang lainnya, tersimpan di perangkat keras komputer, dan digunakan untuk memanipulasi data. Data perlu disimpan ke dalam basis data untuk keperluan penyediaan informasi lebih lanjut. 2.5.2 Konsep Basis Data Menurut McLeod (1998,p264), dua tujuan konsep basis data adalah meminimumkan pengulangan data (data redundancy) dan mencapai independensi data.Data redundancy adalah duplikasi data artinya data yang sama disimpan dalam beberapa file.Indenpendensi data adalah kemampuan untuk membuat perubahan dalam struktur data tanpa membuat perubahan pada program yang memproses data.Indenpendensi data yang dicapai dengan menempatkan spesifikasi data dalam table dan kamus yang terpisah yaitu dalam table. 19 2.5.3 Perencanaan Basis Data Menurut Connolly dan Begg (2002,p273), perencanan basis data atau yang biasanya sering disebut dengan database planing merupakan aktifitas menejemen yang mengizinkan tingkatan dari aplikasi basis data untuk direalisasikan seefisien dan seefektif mungkin. Perencanaan basis data harus diintegrasikan dengan seluruh strategi sistem informasi dari perusahaan. Ada 3 hal penting dalam menyusun sebuah strategi sistem informasi, yaitu : a. Identifikasi dari tujuan dan rencana perusahaan dengan penentuan kebutuhan sistem informasi selanjutnya. b. Evaluasi dari sistem informasi saat ini untuk menentukan kelebihan dan kelemahan pada saat ini. c. Penilaian dari kesempatan-kesempatan teknologi yang mungkin menghasilkan keuntungan kompetitif. Langkah penting dari tahap ini adalah mendefinisikan secara jelas tentang pernyataan nilai untuk setiap proyek basis data. Pernyataan tersebut mendefinisikan tujuan utama dari aplikasi basis data. Bila pernyataan tersebut selesai maka langkah selanjutnya adalah mengidensifikasi sasarannya. Pernyataan dan sasaran ini perlu didukung oleh informasi-informasi tambahan yang menentuksn pekerjaaan apa saja 20 yang harus diselesaikan ,sumber-sumber yang mendukung dan biaya yang dikeluarkan. 2.5.4 Definisi Sistem Basis Data Menurut Connolly dan Begg (2002,p274), definisi sistem adalah memaparkan jangkuan dan batasan dari aplikasi basis data dan pandangan-pandangan utama para pemakai. Sebelum mendesain suatu aplikasi basis data penting untuk terlebih dahulu mengidentifikasi batasan-batasan dari sistem yang sedang diselidiki dan bagaimana kaitannya dengan bagian lain sistem informasi perusahaan. Perlu dipikirkan untuk kebutuhan yang akan datang selain dari keadaan saat ini dan tak lupa untuk mengidentifikasi pandangan pemakai yang merupakan aspek penting dari pengembangan apliksai basis data karena membantu untuk memastikan bahwa tidak ada pemakai utama basis data yang terlupa ketika pengembangan aplikasi baru tersebut. 2.5.5 Analisa dan Pengumpulan Kebutuhan Menurut Connolly dan Begg (2002,p276), analisi dan pengumpulan kebutuhan adalah proses pengumpulan dan analisis kebutuhan dari user yang akan didukung oleh aplikasi basis data dan menggunakan informasi ini untuk mengidentifikasi kebutuhan pemakai terhadap sistem baru. 21 1. Penjabaran dari data yang digunakan. 2. Detail mengenai bagaimana data yang digunakan. 3. Kebutuhan tambahan apapun untuk aplikasi basis data yang baru. Informasi ini kemudian dianlisis untuk mengidentifikasikan kebutuhan yang dimasukan untuk aplikasi basis data yang baru tersebut. Ada 3 macam penyekatan untuk mengatur kebutuhan dari sebuah aplikasi basis data dengan berbagai pandangan pemakai, yaitu : 1. Pendekatan Centralized Kebutuhan untuk tiap pandangan pemakai di satukan menjadi satu set kebuthan untuk aplikasi data. Umumnya pendekatan ini dipakai jika basis datanya tidak terlalu kompleks. 2. Pendekatan View Integration Kebutuhan untuk tiap pandangan pemakai digunakan untuk membangun sebuah model data yang terpisah yang dipresentasikan tiap pandangan pemakai tersebut. Hasil fari data-data model tersebut kemudian disatukan di bagian deasin basis data. 3. Kombinasi Keduanya 22 2.5.6 Desain Basis Data Menurut Connolly dan Begg (2002,p279), perancangan basis data merupakan proses pembuatan suatu desain sbuah bisnis daya yang akan mendukung operasional dan sasaran suatu perusahaan. Ada 2 pendekatan untuk mendesain sebuah basis data, yaitu: 1. Pendekatan Bottom-up Dimulai pada tingkat awal dari atribut (yaitu, properti dari entity dan relationship), yang mana melalui analisis dari asosiasi antar atribut, dikelompokan menjadi hubungan yang mempresentasikan jenis-jenis basis data yang simple dengan jumlah atribut yang tidak banyak. 2. Pendekatan Top-down Digunakan pada basis data yang lebih kompleks yang dimulaia dengan paengembangan dari model data yang mengadung beberapa entitas dan hubungan tingkat tinggi dan kemudian memakai perbaikan top-down berturut-turut untuk mengidentifikasi entitas, hubungan dari atribut berkaitan tingkata rendah. Pendekatan ini biasanya digambarakan melalui ER(Entity Relationship). Pada tahap ini ada bagian yang disebut data modeling yang digunakan untuk membantu pemahaman dari data dan untuk memudahkan komunikasi tentang kebutuhan informasi.Dengan dibuatnya model data dapat membantu memahami : 23 1. Pandangan tiap pemakai mengenai data. 2. Kealamian data itu sendiri, kebebasan representasi fisiknya. 3. Keguanan dari data berdasarkan pandangan pemakai. Kriteria untuk model data, yaitu: 1. Structural validity Konsistensi dengan cara yang mendefinisikan perusahaan dan menyusun informsainya. 2. Simplicity Kemudahan untuk memahami baik bagi yang profesioanal dibidang sistem informasi maupun pemakai yang non-teknis. 3. Expressibility Kemampuan untuk menbedakan antara data yang berbeda dan hubungan antara data. 4. Nonredundancy Pembuangan informasi yang tak ada hubungannya khususnya representasi dari tiap potongan informasi tepatnya hanya sekali. 24 5. Shareability Tidak spesifik untuk aplikasi dan teknologi khusus apapun dan dengan demikian dapat digunakan oleh banyak orang. 6. Extensibility Konsistensi terhadap cara yang digunakan perusahaan dan mengatur informasi. 7. Integrity Konsistensi terhadap cara untuk menggunakan perusahaan dan mengatur informasi yang ada untuk menyelesaikan proyek basis data tersebut. 8. Diagramatic representation Kemampuan untuk mempresentasikan sebuah model menggunakan notasi diagram yang dapat dipahami dengan mudah. 2.6 Model Perancangan Sistem Menurut Sutejo dan Lie (2007, p152-154), alat bantu perancangan untuk menunjang pembuatan sebuah sistem atau aplikasi diantaranya adalah bagan alir (system flowchart), Data Flow Diagram (DFD), diagram arus data (entity relationship diagram), dan State Transtition Diagram (STD). 25 2.6.1 Pengertian Bagan Alir (system flowchart) Bagan alir adalah sebuah perwakilan dari algoritma yang berupa visual ataupun grafikal. Bagan alir terdiri dari sekumpulan blok dan garis alir, setiap blok mewakili operasi ataupun langkah tertentu di dalam algoritma. Bagan alir merupakan suatu model yang paling sederhana yang menggambarkan sebuah proses langkah demi langkah dari awal sampai akhir yang mudah untuk dilihat, diikut dan dipahami. 2.6.2 Pengertian Data Flow Diagram (DFD) DFD adalah suatu gambaran grafis dari suatu sistem yang menggunakan sejumlah bentuk simbol untuk menggambarkan bagaimana data mengalir melalui suatu proses yang saling berkaitan. Sedangkan menurut DeMarco (1978,p40), diagram aliran data menunjukkan aliran data, bukan kontrol. Ini adalah perbedaan antara diagram aliran data dan diagram alur dokumen. Diagram aliran data menggambarkan situasi dari sudut pandang data, sedangkan diagram alur dokumen menggambarkan dari sudut pandang mereka yang bertindak atas data. Untuk alasan ini, anda hampir tidak pernah melihat sebuah loop dalam diagram aliran data. Loop adalah sesuatu bahwa data tidak menyadari setiap datum biasanya melewati sekali, dan dari titik pandang itu tidak loop sama sekali. Loop dan keputusan consederations kontrol dan tidak muncul dalam diagram aliran data. 26 Empat simbol umum yang digunakan, diantaranya : Tabel 2.1 Simbol-simbol dalam Data Flow Diagram Simbol Nama Keterangan Menggambarkan arus Vector data Menggambarkan sebuah Bubble proses data Menggambarkan File dokumen atau database Menggambarkan actor Box untuk mengirim dan menerima data 2.6.3 Pengertian Diagram Arus Data (Entity Relationship Diagram) ERD adalah suatu rancangan model yang berisi komponen himpunan entitas dan himpunan relasi yang masing-masing entitas dilengkapi dengan atribut yang mempresentasikan seluruh fakta. 2.6.4 Pengertian State Transtition Diagram (STD) STD adalah alat yang digunakan untuk menggambarkan urutan dan variasi layar yang dapat terjadi selama satu sesi pengguna. Dapat 27 dianggap sebagai peta jalan. Masing-masing layar dianalogikan sebagai sebuah kota. Tidak semua jalan melewati kota. Bujur sangkar digunakan untuk menggambarkan display screen. Anak panah menggambarkan aliran kontrol dan menggerakan kejadian yang akan menyebabkan screen menjadi aktif atau menerima fokus. Bujur sangkar tersebut hanya menggambarkan apa yang akan muncul selama dialog. Arah anak panah menunjukkan urutan munculnya screenscreen tersebut. Sebuah anak panah yang terpisah, masing-masing memiliki nama, digambar untuk setiap arah karena tindakan yang berbeda akan menggerakan aliran kontrol dari dan aliran kontrol ke screen yang ada (Whitten, 2001, p593). 2.7 Diagram Aliran Dokumen (DAD) Menurut Bodnar (2000, p34), Diagram Aliran Dokumen (DAD) merupakan suatu diagram simbolik yang menunjukkan aliran data dan urutan operasi dalam suatu sistem. Menurut Mulyadi (2001, p60), bagan alir dokumen (document flow chart) digunakan untuk menggambarkan aliran dokumen dalam sistem tertentu. Simbolsimbol yang digunakan dalam bagan aliran dokumen, yaitu : 28 Tabel 2.2 Simbol-simbol dalam Bagan Aliran Dokumen Simbol Nama Dokumen Dokumen dan tembusannya Berbagai dokumen Catatan Penghubung pada halaman yang sama Penghubung pada halaman yang beda Keterangan Digunakan untuk mengambarkan semua jenis dokumen yang merupakan formulir yang digunakan untuk merekam data terjadinya suatu transaksi. Digunakan untuk menggambarkan dokumen asli dan tembusannya. Nomor lembar dokumen dicantumkan disudut kiri atas. Digunakan untuk menggambarkan berbagai jenis dokumen yang digabungkan bersama di dalam suatu paket. Nama dokumen dituliskan di dalam masing-masing simbol dan nomor lembar dokumen dicantumkan di sudut kanan atas simbol dokumen yang bersangkutan. Digunakan untuk menggambarkan catatan akuntansi yang digunakan untuk mencatat data yang direkam sebelumnya di dalam dokumen atau formulir. Dalam menggambarkan bagan alir, arus dokumen dibuat mengalir dari atas ke bawah dan dari kiri ke kanan. Karena keterbatasan ruang halaman kertas untuk menggambar maka diperlukan simbol penghubung untuk memungkinkan aliran dokumen berhenti di suatu lokasi lain pada halaman yang sama. Jika untuk menggambarkan bagan alir suatu sistem akuntansi diperlukan lebih dari satu halaman, simbol ini harus digunakan untuk menunjukan ke mana dan bagaimana bagan alir terkait satu 29 dengan lainnya. Kegiatan manual Arsip sementara Digunakan untuk menggambarkan kegiatan manual. Digunakan untuk menggambarkan arsip sementara yang dokumennya akan diambil kembali dari arsip tersebut di masa yang akan datang untuk keperluan pengolahan lebih lanjut terhadap dokumen tersebut. Untuk menunjukan urutan pengarsipan dokumen digunakan simbol berikut ini: A = menurut abjad N = menurut nomor urut T = kronologis, menurut tanggal Digunakan untuk menggambarkan arsip permanen yang tidak akan diproses lagi. Simbol ini untuk menggambarkan Mulai/berakhir awal dan akhir suatu sistem (terminal) akuntansi. Arsip Permanen Simbol ini menggambarkan keputusan yang harus dibuat dalam proses pengolahan data. Ya Tidak 2.8 Keputusan Sistem Pemesanan Produk Menurut Mulyadi (2001, p5) sistem adalah suatu jaringan prosedur yang dibuat menurut pola yang terpadu untuk melaksanakan kegiatan pokok perusahaan. 30 Berdasarkan Kamus Besar Bahasa Indonesia (Balai Pustaka, 2001, p866) pemesanan adalah proses, perbuatan, cara memesan atau memesankan. Sedangkan produk (Kotler, 1997, p430) adalah segala sesuatu yang dapat ditawarkan ke pasar untuk memuaskan sebuah keinginan atau kebutuhan. Jadi dapat disimpulkan bahwa sistem pemesanan produk adalah suatu jaringan yang dibuat menurut pola yang terpadu dan memuat proses, perbuatan, atau cara memesan segala sesuatu yang ditawarkan untuk memuaskan sebuah keinginan atau kebutuhan dari kegiatan pokok perusahaan. 2.9 Penjualan Berdasarkan Richard (1981, p4) penjualan adalah ketika salah satu pihak menukar uang untuk sesuatu yang bernilai yang dimiliki oleh pihak lain. Penjual melakukan penjualan, mereka terlibat dalam kegiatan pertukaran dan tindakan mereka membuat penjualan adalah menjual. Usaha jual tidak selalu berakhir dalam penjualan. Di sisi lain dari penjualan adalah pembelian atau penyaluran uang untuk sesuatu yang bernilai. Menjual merupakan bagian dari pemasaran. Pemasaran adalah "serangkaian kegiatan yang diperlukan dan terkait dengan membawa tentang hubungan pertukaran dalam sistem ekonomi kita." Sedangkan pengertian penjualan menurut Rudy et al. (2007, p194) merupakan penyerahan hak milik barang atau jasa dari penjual ke pembeli, sedangkan pembeli akan menyerahkan sejumlah uang sebesar barang atau jasa 31 tersebut, baik secara tunai maupun kredit. Penjualan dapat dibagi menjadi 3 jenis yang ditinjau dari skala ruang lingkup usaha pelanggan. Pertama, Penjualan Retailer, yaitu perusahaan yang menjual barang dan jasa yang dimiliki kepada perusahaan yang skalanya lebih kecil. Kedua, Penjualan Wholesaler, yaitu perusahaan yang menjual barang dan jasa yang dimiliki kepada perusahaan yang berskala besar. Ketiga, Penjualan Manufacturer, yaitu perusahaan menjual barang dan jasa yang dimiliki kepada persahaan industri. Faktor-faktor yang menyebabkan terjadinya jual-beli menurut Hamdani et al. (2007, p21) : 1 Adanya barang yang dijual Barang atau nemda yang akan dijual adalah segala sesuatu yang dapat dipergunakan sebagai alat pemuas kebutuhan manusia yang dapat diperoleh di dunia perdagangan. 2 Adanya calon pembeli (konsumen) Adalah pihak yang memerlukan barang untuk kebutuhannya disebut juga pemesan. 3 Adanya calon penjual Calon penjual adalah pihak yang menawarkan barang. memenuhi