BAB II LANDASAN TEORI
2.1 Perdagangan Elektronik Perdagangan elektronik (electronic commerce atau e-commerce) adalah pertukaran antara individu atau organisasi dan aktivitas yang memfasilitasi pertukaran ini berdasarkan aplikasi teknologi informasi (Cannon,dkk,2008) Umumnya perdagangan elektronik dilakukan dengan media internet. Internet adalah kolompok atau kumpulan dari jutaan komputer. Penggunaan internet memungkinkan kita untuk mendapatkan informasi dari komputer yang menyediakan layanan informasi yang memberikan izin akses ke komputer ata server yang mereka miliki. Untuk mendapatkan sebuah informasi, sekumpulan protokol harus digunakan, yaitu sekumpulan aturan yang menetapkan bagaimana suatu informasi dapat dikirim dan diterima. Seiring dengan perkembangan informasi yang semakin cepat, kini Internet banyak dimanfaatkan dalam bisnis sebagai media perdagangan elektronik, baik sebagai media pemasaran, ataupun media transaksi keuangan.
2.1.1 Pemasaran Pemasaran adalah suatu aktivitas yang bertujuan mencapai sasaran perusahaan. Pemasaran dilakukan dengan mempelajari dan melakukan analisa kebutuhan pelanggan, lalu kemudian mengarahkan aliran barang ataupun jasa untuk memenuhi kebutuhan pelanggan tersebut. Pemasaran adalah proses sosial dan manajerial yang dilakukan oleh individu ataupun kelompok dalam memperoleh kebutuhan dan keinginan mereka, dengan cara membuat dan mempertukarkan produk dan nilai dengan pihak lain (Kotler dan Amstrong,2011). Dalam pemasaran terjadi suatu aliran barang dari produsen ke konsumen dengan melibatkan lembaga perantara pemasaran. Seluruh lembaga perantara pemasaran memegang peranan yang sangat penting dalam menentukan saluran pemasaran, karena jika terdiri dari rantai pemasaran yang panjang, maka biaya pemasaran yang dikeluarkan menjadi lebih besar.
6
7
Menurut Assauri (1996), pemasaran mempunyai peranan yang sangat penting dalam pencapaian tujuan dan sasaran perusahaan, karena pemasaran merupakan pintu terdepan untuk mengalirnya dana kembali ke dalam perusahaan. Kelancaran masuknya kembali dana dari hasil operasi perusahaan sangat ditentukan oleh bidang pemasaran. Pencapaian keuntungan usaha perusahaan sangat ditentukan oleh kemampuan perusahaan memasarkan produk perusahaan dengan harga yang menguntungkan. Pemasaran dapat diterapkan ke organisasi laba maupun nirlaba. Keuntungan adalah sasaran sebagian besar perusahaan bisnis. Namun, organisasi jenis lain mungkin mencari anggota yang lebih banyak atau diterimanya suatu ide. Pelanggan atau klien bisa jadi merupakan konsumen individu, perusahaan bisnis, organisasi nirlaba, agen pemerintah, atau bahkan negara asing. Sementara sebagian besar pelanggan atau klien membayar untuk mendapatkan barang dan jasa yang mereka terima, yang lain mungkin menerimanya secara cuma-cuma atau dengan harga yang lebih rendah melalui bantuan pemerintah maupun swasta. Teori pemasaran yang amat sederhana pun selalu menekankan bahwa dalam kegiatan pemasaran harus jelas siapa yang menjual apa, dimana, bagaimana, bilamana, dalam jumlah berapa dan kepada siapa. Adanya strategi yang tepat akan sangat mendukung kegiatan pemasaran secara keseluruhan.
2.1.2 Pemasaran Elektronik (E-Marketing) Menurut Chen-Ling, & Lie dalam jurnal yang berjudul Assessment of Internet Marketing and Competitive Strategies for Leisure Farming Industry in Taiwan. Journal of American Academy of Business (2006), e-marketing adalah proses memasarkan produk dan layanan kepada pelanggan dengan menggunakan media situs daring. Promosi, Iklan, Transaksi dan pembayaran dapat dilakukan melalui halaman situs daring. Pengguna pemasaran Internet dapat dengan mudah mengakses informasi dimana saja dengan komputer yang terhubung ke Internet. Beberapa perusahaan yang tergolong sukses dalam menjadikan Internet sebagai media pemasaran adalah Amazon (amazon.com) dan eBay (ebay.com). Secara kolektif, perkembangan-perkembangan ini telah memberikan dampak yang signifikan terhadap keefisienan sistem pemasaran makro kita. Pada saat yang
8
bersamaan, banyak perusahaan individu mengambil keuntungan dari inovasiinovasi ini untuk meningkatkan keuntungan serta kepuasan pelanggan. Pemasaran Internet menawarkan beberapa keuntungan dibandingkan marketing konvensional. Baik ditinjau dari efektifitas maupun efisiensi. Berikut ini merupakan beberapa keuntungannya : 1.
Keuntungan utama pemasaran Internet adalah jangkauan yang sangat luas. Ukuran untuk mengukur jangkauan Internet marketing tidak hanya berupa skala kecamatan, kota, provinsi, bahkan negara. Jangkauan pemasaran Internet adalah global dimana setiap area yang terhubung dengan jaringan Internet dapat menjadi target pemasaran.
2.
Banyaknya informasi yang bisa disampaikan melalui Internet karena teks dan gambar yang ditampilkan bisa sebanyak yang dimiliki. Karena informasi yang disampaikan bisa lebih banyak, maka konsumen bisa memperoleh gambaran yang lebih baik tentang perusahaan.
3.
Anggaran biaya pemasaran yang dikeluarkan lebih hemat. Dengan pembangunan infrastruktur Internet yang semakin luas, maka pembiayaan untuk dapat melakukan pemasaran di Internet juga semakin menurun karena tarif internet yang cenderung terus akan semakin murah.
2.1.3 Pembayaran Daring (Online Payment) Ketika kita menjalankan bisnis secara daring, kita membutuhkan metode pembayaran untuk memproses pemindahan uang dari pembeli ke penjual. Pada bisnis secara luring, kita bisa melakukan pemindahan uang secara langsung atau transfer antar bank. Berbeda dengan bisnis secara luring, bisnis secara daring tidak dilakukan secara langsung (tatap muka) namun menggunakan media perantara, misalnya Internet. Pembeli memilih barang atau jasa yang ditawarkan melalui situs web kemudian membayar dan pada akhirnya menerima barang atau jasa yang telah ia bayarkan. Salah satu kendala yang dihadapi pada bisnis daring adalah keterbatasan waktu dan tempat, artinya pembeli dan penjual sangat kecil kemungkinan untuk bertemu secara langsung bahkan bisa saja tidak harus bertemu. Metode
9
pembayaran secara daring diperlukan untuk mempermudah proses pembayaran pada transaksi yang akan dilakukan secara daring pada perdagangan elektronik. Beberapa contoh jenis pembayaran daring yang cukup populer adalah: a.
Pembayaran Paypal Paypal (paypal.com) adalah salah satu alat pembayaran (payment processors) yang menjembatani antara pelaku bisnis dengan pembeli. Paypal corp adalah perusahaan yang menaungi Paypal, berawal dari penggabungan dua perusahaan Confinity dan X.com pada tahun 2000. Kemudian e-bay melihat bahwa Paypal cocok untuk digunakan sebagai alat pembayaran di e-bay. Sejak itulah Paypal diminati oleh pengguna ebay sebagai alat pembayaran karena mudah digunakan dan aman. Kemudian Paypal berkembang dengan pesatnya sebagai salah satu payment processor. Seiring waktu banyak fitur-fitur yang dikembangkan oleh Paypal, salah satunya adalah Buy Now dan Add to Card Button, yaitu fitur yang memungkinkan seseorang untuk melakukan penjualan daring dari sebuah situs web html standar. Dengan fitur unggulan tersebut, sebuah situs web berbasis HTML dapat disulap menjadi mesin penjualan daring (Rahman, 2012).
b.
Kartu Kredit Kartu kredit merupakan salah satu sistem pembayaran yang paling populer dalam perdagangan di Internet. Selama ini, kartu kredit dapat ditangani dengan dua cara, yaitu mengirimkan nomor kartu kredit yang tidak tersandikan lewat jaringan Internet atau menyandikan nomor kartu kredit dan data-data lainnya sebelum transaksi yang bersangkutan ditransmisikan (Nugroho,2006).
c.
Cek Elektronik Cek elektronik pada prinsipnya memiliki fitur yang sama dengan cek kertas yaitu merupakan pesan pada bank yang digunakan konsumen untuk mentransfer dana dari rekening milik konsumen ke rekening seseorang yang lain (Nugroho,2006).
10
2.2 Pasar Daring Pasar daring atau biasa disebut online market adalah sebuah situs web yang digunakan sebagai pasar oleh pengguna, dimana pengguna dapat berperan sebagai penjual dan pembeli barang, dan pasar daring tersebut menjadi tempat pertemuan antara penjual dengan pembeli (Wellman, 2004). Pada awalnya, kegiatan jual beli hanya dilakukan oleh situs penjual barang dimana pembeli membeli barang langsung dari pengelola situs seperti Amazon.com dan eBay.com sebagai situs penjualan terbesar di dunia. Beberapa contoh lain di Indonesia adalah blibli.com dan Bhinneka.com. Semua situs tersebut awalnya adalah situs penjualan barang yang dikelola oleh pemilik situs yang sekaligus penjual ataupun distributor, yang di akses oleh calon pembeli yang akan membeli dari situs tersebut. Namun seiring dengan berjalannya waktu, beberapa situs penjualan daring berkembang menjadi pasar daring, dimana situs tersebut memfasilitasi pengguna untuk melakukan transaksi sebagai penjual, dan sebagai pembeli. Sehingga pada situs tersebut, dapat dilakukan transaksi antar pengguna dimana pengelola situs tidak lagi terlibat dalam transaksi jual beli atar pengguna tersebut. Beberapa situs pasar daring yang berkembang dengan pesat adalah Amazon.com dan eBay.com, serta beberapa pasar daring di Indonesia seperti Forum Jual Beli Kaskus (FJB), Tokobagus.com, Berniaga.com, serta Bukalapak.com.
11
2.2.1 Sejarah Situs Amazon.com Amazon adalah salah satu perusahaan besar yang menjual barangnya melalui internet. Perusahaan ini didirikan oleh Jeff Bezos pada November 1994 di Seattle, Amerika Serikat. Nama awal dari perusahaan ini adalah “Cadabra.” Pada bulan juli 1995, Jeff Bezos kemudian mengganti nama perusahaan ini dengan nama sungai paling deras di dunia, yaitu Amazon, dengan harapan dapat melakukan penjualan lewat web sederas air sungai Amazon. Mengapa dinamakan Amazon? karena Jeff ingin perusahaannya seperti sungai Amazon yang mampu menampung 20% air bersih dunia. Jadi ia mengharapkan perusahaan ini kelak akan menjadi perusahaan yang menguasai 20% pasar dunia. Jeff Bezos sendiri kemudian menjadi vice president dari perusahaan ini. Amazon membuka situs e-commerce pada tahun 1995. Amazon merupakan salah satu perusahaan terbesar di Internet yang menjual produk digital secara daring.
Produk-produk yang dijual memang bukan diproduksi oleh
Amazon, tetapi Amazon bertindak sebagai distributor daripada produk-produk tersebut. Yang membuat banyak orang didunia ini memilih Amazon adalah karena harga produk yang ditawarkan lebih murah daripada harga produk yang ditawarkan oleh toko konvensional. Inilah yang membuat Amazon lebih unggul daripada toko konvensional. Produk yang dijual di perusahaan daring ini bermula dari buku kemudian dengan cepat meluaskan diversifikasinya ke produk lain seperti kaset DVD, CD musik kemudian ke lelang dan sekarang Amazon sudah menjual ribuan jenis produk berbeda. Bahkan pada tahun 2002 Amazon pernah menjadi toko daring terbaik versi majalah Yahoo karena penjualan atas permintaan konsumen yang lebih dari 56 juta item (Byers, 2007).
2.3 Rekayasa Perangkat Lunak Berorientasi Obyek Pengembangan perangkat lunak berorientasi obyek adalah suatu strategi pengembangan perangkat lunak sebagai kumpulan obyek yang berisi data dan operasi yang diberlakukan terhadapnya (A.S Rosa, dkk, 2014). Rekayasa perangkat lunak berorientasi obyek memiliki banyak keuntungan di dalam pengembangan sebuah perangkat lunak, beberapa keuntungan di antaranya adalah: a.
Kemudahan pemeliharaan kode sumber
12
Dengan menerapkan model obyek, pola-pola, metode, serta fungsi yang cenderung tetap dan stabil dapat disimpan secara terpisah dari file yang memiliki pola-pola, model, ataupun fungsi yang mungkin sering berubahubah. b.
Meningkatkan produktivitas Dengan penggunaan kelas dan obyek, maka hasil yang digunakan dalam suatu masalah masih dapat dipakai ulang atau digunakan untuk masalah lain yang melibatkan obyek tersebut.
c.
Kecepatan pengembangan Penggunaan kelas dan obyek dapat mengurangi kesalahan pada saat proses pengkodean, penamaan file dan obyek oleh pemrogram dapat mempercepat proses pengkodean.
d.
Konsistensi Penggunaan sifat pewarisan (inheritance) dan penggunaan notasi yang sama pada saat analisis, perancangan maupun pengkodean
e.
Meningkatkan kualitas perangkat lunak Karena pendekatan pengembangan lebih dekat dengan dunia nyata dan adanya konsistensi pada saat pengembangan, perangkat lunak yang dihasilkan akan mampu memenuhi kebutuhan pemakai serta mempunyai kesalahan yang cenderung lebih sedikit dibandingkan dengan pengkodean yang tidak berorientasi obyek.
2.4 Software Development Lifecycle (SDLC) Software Development Lifecycle (SDLC) adalah sebuah kerangka proses kerja untuk memastikan bahwa sebuah sistem atau perangkat lunak dibangun berdasarkan perencanaan yang hati-hati dan dengan proses yang berulang. SDLC biasanya berisikan tahapan tahapan yang menjadi acuan dalam pembangunan sebuah perangkat lunak (Tipton dan Krause, 2007). Sedangkan definisi menurut IEEE, SDLC adalah Penerapan sistematis, disiplin, pendekatan kuantitatif untuk pengembangan, operasi, dan pemeliharaan perangkat lunak; yaitu penerapan rekayasa perangkat lunak.
13
Kerangka kerja SDLC pada umumnya terdiri dari tahapan-tahapan sebagai berikut: a.
Perencanaan Pada tahapan ini dilakukan identifikasi ruang lingkup sistem baru, memastikan kelayakan proyek, mengembangkan jadwal proyek, rencana, dan sumber daya yang akan digunakan dalam proyek.
b.
Analisis Pada tahapan ini dilakukan penyusunan dokumentasi secara detil mengenai kebutuhan bisnis, masalah yang butuh untuk diselesaikan, dan pengolahan persyaratan sistem yang akan di bangun.
c.
Desain Pada tahapan ini sudah mulai dirancang sistem solusi berdasarkan persyaratan yang sudah ditentukan dan keputusan yang dibuat pada tahapan analisis.
d.
Implementasi Pada tahapan ini sistem sudah mulai dibangun sesusai desain, pengujian sistem, serta pelatihan kepada calon pengguna sistem.
e.
Support Tahapan ini bertujuan untuk menjaga sistem yang sudah berjalan dengan terus memberikan dukungan hingga masa akhir sistem seperti aktivitas pemeliharaan sistem dan upgrade setelah sistem di deploy. Namun biasanya tahapan ini tidak dipertimbangkan sebagai bagian tahapan awal pembentukan proyek.
Dalam SDLC terdapat beberapa model dalam penerapan tahapan prosesnya, seperti Waterfall model, Parallel model, atau phase model yang bersifat struktural atau berurutan, dan beberapa model lain seperti Rapid Application Development yang bersifat prototyping. Setelah membaca literatur yang ditulis oleh John Satzinger penulis memilih untuk menggunakan Rapid Application Development yang dianggap sebagai model baru yang lebih adaptif dalam pengembangan perangkat lunak yang bersifat prototipe. (Satzinger, 2010)
14
2.4.1 RAD Model Rapid application development (RAD) adalah proses pembangunan perangkat lunak secara bertahap yang menekankan siklus pengembangan yang sangat pendek. Model RAD adalah sebuah adaptasi kecepatan tinggi dari model linear berurutan (sequential) dimana konstruksi RAD menggunakan basis komponen. Jika kebutuhan dan batasan proyek sudah jelas, maka proses RAD dapat membentuk tim pengembang untuk membuat sistem yang "berfungsi secara penuh" dalam periode waktu yang cukup singkat. (Pressman, 2005). Model proses RAD dapat diilustrasikan pada Gambar 2.1. Tentu saja jika aplikasi bisnis bisa dibagi menjadi modular, maka dengan cara itu masing-masing fungsi major dapat diselesaikan dalam waktu yang lebih singkat. Seperti yang saat ini penulis lakukan, yaitu memadukan modul-modul fungsi yang sudah ada dari framework PHP Laravel sehingga proses pembangunan aplikasi menjadi lebih singkat.
Gambar 2.1 Rapid Application Development (Pressman, 2005).
15
2.5 Pemodelan Analisis dan Perancangan Sistem Informasi Perancangan sistem informasi yang baik harus dapat menjelaskan kebutuhan bisnis, perencanaan, hingga alur implementasi yang akan dilakukan. Dalam proses pemodelan dan perancangan sistem informasi, umumnya digunakan beberapa model perencanaan yang digunakan untuk menjelaskan proses bisnis yang akan dilakukan seperti Unified Modeling Language (UML), Activity Diagram atau diagram aktifitas, dan lainnya.
2.5.1 Unified Modeling Language (UML) Unified Modeling Language (UML) merupakan suatu set standar konstruksi model dan notasi dikembangkan secara khusus pada pengembangan berorientasi objek (Satzinger, 2010). Secara umum UML merupakan bahasa untuk visualisasi, spesifikasi, konstruksi, serta dokumentasi.
Dalam rangka kerangka visualisasi, para
pengembang menggunakan UML sebagai suatu cara untuk mengkomunikasikan idenya kepada para programmer serta calon pengguna sistem/perangkat lunak. Dengan adanya bahasa yang bersifat standar, komunikasi perancang dengan programmer serta calon pengguna dapat di harapkan lebih baik.
2.5.2 Diagram Aktivitas Sebuah diagram aktivitas hanyalah sebuah diagram alur kerja yang menggambarkan berbagai pengguna kegiatan, orang yang melakukan aktivitas masing - masing, dan aliran sekuensial kegiatan ini (Satzinger, 2010). Beberapa simbol diagram aktivitas dapat dilihat pada Gambar 2.2.
16
Gambar 2.2 Simbol activity diagram (Satzinger, 2010)
2.5.3 Diagram Use Case Use case adalah sebuah aktivitas yang dijalankan oleh sistem, biasanya merupakan respon sebuah permintaan yang berasal dari user. Hampir semua pendekatan baru untuk pengembangan sistem memulai proses persyaratan pemodelan dengan konsep use case (Satzinger, 2010). Contoh diagram Use Case sederhana dapat dilihat pada Gambar 2.3
Gambar 2.3 Diagram Use Case sederhana dengan satu aktor (Satzinger, 2010)
17
2.5.4 Deskripsi Use Case Deskripsi Use Case adalah sekumpulan daftar langkah-langkah yang dibutuhkan dalam pemrosesan antara aktor dengan sistem. Aktor dalam UML diagram adalah seorang pengguna sistem (Satzinger, 2010). Contoh dapat dilihat pada Tabel 2.1 dibawah.
Alur aktivitas untuk skenario pembelanjaan melalui telepon Main Flow : 1. Pelanggan menghubungi toko melalui telepon 2. Petugas operator melakukan verifikasi data pelanggan, jika penelepon adalah pelanggan baru, maka masukkan kedalam database pelanggan sebagai pelanggan baru 3. Operator membuat formulir order baru 4. Pelanggan melakukan permintaan barang yang akan dimasukkan ke dalam formulir order. 5. Pelanggan mengindikasikan bahwa order sudah selesai 6. Pelanggan melakukan pembayaran secara transfer atau kredit 7. Operator melakukan finalisasi di sistem Kondisi Pengecualian : 6. Jika pembayaran pelanggan ditolak, maka a. Oder dibatalkan, atau b. Order di tahan sampai pembayaran diterima penuh Tabel 2.1 Contoh deskripsi use case (Satzinger, 2010)
2.5.5 Diagram Kelas Diagram kelas adalah diagram yang menggambarkan bagaimana pekerjaan yang melibatkan user yang digambarkan dalam bentuk diagram yang memiliki atribut dan asosiasi, seperti halnya entitas data (Satzinger, 2010). Contoh diagram kelas dapat dilihat pada Gambar 2.4 dibawah.
18
Gambar 2.4 Contoh diagram kelas (Satzinger, 2010)
2.5.6 Diagram Sekuens Diagram Sekuens digunakan untuk mendefinisikan masukan dan keluaran serta urutan dari interaksi antara pengguna (aktor eksternal) dengan sistem dalam suatu contoh kasus penggunaan atau skenario seperti yang digambarkan pada Gambar 2.5.
Gambar 2.5 Contoh Diagram Sekuens (Satzinger, 2010)
19
2.6 Pemrograman Berorientasi Obyek Pemrograman pemrograman
yang
berorientasi dalam
obyek
proses
adalah
sebuah
pengembangannya
teknik
dalam
menggunakan
terminologi/pendekatan berbasis obyek dimana setiap obyek memiliki atribut beserta fungsi atau metode yang dapat saling berinteraksi satu dengan yang lain. (Sakur, 2010) Pada pemrograman berorientasi obyek, terdapat beberapa hal utama dalam proses pengembangannya, yaitu enkapsulasi, turunan, dan polimorfisme. Enkapsulasi atau proses pengkapsulan merupakan sebuah teknik yang digunakan di dalam pemrogaman berorientasi obyek untuk menyembunyikan informasi yang tidak diperlukan oleh user atau obyek lain (Sakur, 2010). Sebagai contoh informasi yang dimaksud adalah atribut dan method yang ada di dalam sebuah kelas. Dengan cara ini para pengembang perangkat lunak yang menggunakan tipe data baru tidak perlu memahami bagaimana tipe data tersebut di bentuk, akan tetapi cukup memahami antarmuka atau penggunaan dari class tersebut Turunan atau penurunan sifat merupakan sebuah teknik yang digunakan di dalam pemrogaman berorientasi obyek yang merepresentasikan pemodelan turunan dari dunia nyata, dimana setiap data tipe data baru (kelas baru) dapat dibuat sebagai turunan dari tipe data induknya sehingga class turunan dapat memiliki semua sifat-sifat dari induknya (Sakur, 2010). Contoh kelas unggas adalah kelas induk dan ayam adalah kelas turunan dari kelas unggas, sehingga kelas ayam memiliki atribut dan method yang sama sesuai dengan kelas unggas. Polimorfisme berasal dari kata poly dan morphism. Dari segi bahasa, kata poly berarti banyak dan kata morphism merupakan bentuk/model atau form. Dengan kata lain polymorphism adalah model atau form yang dapat digunakan pada obyek yang beragam (Sakur, 2010). Setiap obyek yang berasal dari satu induk yang sama memiliki fungsi yang sama namun pada pola penerapannya dapat berbeda-beda. Sebagai contoh, kelas mamalia memiliki method bergerak, dimana kelas manusia dan kelas paus adalah kelas turunan dari kelas mamalia. Sehingga pada saat kelas manusia melaksanakan method bergerak akan berbeda pola penerapannya dengan kelas paus. Jika kelas manusia memanggil metode
20
bergerak maka kelas manusia akan melakukannya dengan berjalan sedangkan kelas paus akan melakukan metode bergerak dengan berenang. Visibilitas, merupakan tampilan atribut atau method yang terdapat di dalam sebuah class. Class yang telah dibentuk secara default memiliki data dan fungsi yang bersifat global atau dengan kata lain public, dimana seluruh objek dari class lain dapat mengakses atribut dan method tersebut. Di dalam pemrogaman berorientasi objek terdapat lima keyword penting yaitu: a.
Public, apabila menggunakan keyword ini maka data dan method dari class yang bersangkutan dapat di akses dari luar class.
b.
Private, apabila menggunakan keyword ini maka data dan method dari class yang bersangkutan tidak dapat di akses dari luar class
c.
Protected, mengizinkan class turunan untuk mengakses data atau method yang berasal dari class induk
d.
Final, digunakan untuk mencegah agar fungsi dari class induknya tidak dapat di definisikan kembali di class turunan.
e.
Abstract, kebalikan dari class final. Fungsi ini harus harus di deklarasikan di class turunannya.
2.7 PHP PHP merupakan kependekan dari PHP: Hypertext Preprocessor, bahasa interpreter yang mempunyai kemiripan dengan bahasa C dan Perl yang mempunyai kesederhanaan dalam perintah, yang digunakan untuk pembuatan aplikasi web dengan tujuan utama server-side scripting. PHP/FI merupakan nama awal dari PHP (Personal Home Page/Form Interface). Dibuat pertama kali oleh Rasmus Lerdoff. PHP awalnya merupakan program CGI yang dikhususkan untuk menerima input melalui form yang ditampilkan dalam browser web. Penemuan ini bermula dari keinginan sederhana Rasmus Lerdorf untuk mempunyai alat bantu (tools) dalam memonitor pengunjung yang melihat situs web pribadinya. Inilah sebabnya pada awal pengembangannya, PHP merupakan singkatan dari Personal Home Page tools, sebelum akhirnya dipaksakan menjadi singkatan rekursif dari PHP: Hypertext Preprocessor. Pertengahan tahun 1995 dirilis PHP/FI (FI adalah singkatan dari
21
Form Interpreter) yang memiliki kemampuan dasar membangun aplikasi web, memproses form, dan mendukung database. Penulisan kode dengan PHP diawali dengan tag (). Setiap baris perintah / statement harus diakhiri dengan menggunakan tanda titik koma (;). Umumnya setiap statement dituliskan dalam satu baris. Contoh script PHP Kelas, Pengkapsulan, Method, dan Visibilitas dapat dilihat pada Kode 2.1 dan Kode 2.2. nama = $nama; } public function setUmur ($nim) { $this->nim = $nim; } public function getName () { return $this->nama; } public function getNim () { return $this->nim; } } /* End class */ ?> // <-- tag penutup
Kode 2.1 Contoh Enkapsulasi, Metode, dan Visibilitas pada PHP // new object $pria = new Mahasiswa (); $pria->setName ('Christian'); $pria->setUmur (22);
// call method
echo $pria->getName() .'
'; echo $pria->getNim() .'
';
Kode 2.2 Contoh script PHP Pembuatan obyek baru
22
2.8 Laravel PHP Framework Framework adalah kerangka kerja. Framework juga dapat diartikan sebagai kumpulan script (terutama class dan function) yang dapat membantu developer/programmer dalam menangani berbagai masalah-masalah dalam pemrograman seperti koneksi ke database, pemanggilan variabel, file, dll sehingga developer lebih fokus dan lebih cepat membangun aplikasi. Bisa juga dikatakan Framework adalah komponen pemrorgaman yang siap re-use kapansaja, sehingga programmer tidak harus membuat script yang sama untuk tugas yang sama. Secara sederhana bisa dikatakan bahwa framework adalah kumpulan fungsi (libraries), sehingga seorang programmer tidak perlu lagi membuat fungsi-fungsi (biasanya disebut kumpulan library) dari awal, programmer hanya perlu memanggil kumpulan library atau fungsi yang sudah ada didalam suatu framerwork, tentunya cara menggunakan fungsi-fungsi yang akan digunakan sudah ditentukan oleh framework itu sendiri. Pada umumnya, desain arsitektur dari sebuah framework PHP sudah menggunakan arsitektur Model View Controller (MVC), dimana pengembangan dilakukan dengan cara memisahkan data (model) dari tampilan (view) dan cara untuk memproses (controller).
Gambar 2.6 Arsitektur MVC (Krasner, 1988)
Dalam arsitektur MVC aliran aplikasi dimulai dari controller yang di load. Controller yang di eksekusi akan menentukan bagaimana cara mengakses basis data dari model. Setelah itu, controller akan memutuskan tampilan mana yang akan di tampilkan.
23
Model merupakan komponen yang berhubungan dengan basis data yang memiliki beberapa metode untuk memanipulasi data. Ketika data akan di ambil, di manipulasi atau bahkan di hapus semuanya berada di dalam model. Seperti contoh: SQL Query di buat di model dan controller memanggil sebuah model untuk mengeksekusi SQL Query tersebut. Sehingga ketika ada perubahan di dalam basis data maka yang dirubah adalah model. Views merupakan komponen yang berisikan tampilan ke pengguna. Biasanya berisi kode HTML. Controller merupakan komponen yang merupakan jembatan penghubung antara model dengan view. Controller memiliki beberapa metode-metode yang memilki fungsi untuk memutuskan langkah apa yang harus di ambill, apa yang harus dilakukan terhadap input dari pengguna, data apa saja yang dimanipulasi dan ditampilkan untuk di sajikan kepada pengguna. Laravel adalah framework yang digunakan untuk bahasa pemrograman PHP. Laravel pertama kali dibangun oleh Taylor Otwell, yang kemudian terus memimpin development dan pengembangan dari framework tersebut bersama programmer lain dalam komunitas. Laravel menyediakan syntax yang expresive dan mudah dimengerti dengan bahasa sehari-hari, sehingga Laravel lebih mudah digunakan baik oleh programmer berpengalaman, ataupun programmer pemula. Dalam implementasinya Laravel menggunakan Composer sebagai PHP dependency manager. Terkadang dalam membangun sebuah aplikasi yang tergantung dengan library/paket yang dikelola oleh pihak ketiga, programmer seringkali menggunakan PEAR ataupun PECL, Composer bekerja seperti PEAR dan PECL, hanya saja composer bekerja dengan lebih simple dimana developer melakukan konfigurasi pada satu file dengan nama composer.json dan menggunakannya untuk mencari dependency (Rees, 2013). Untuk
melakukan
instalasi,
download
Laravel
dari
https://github.com/laravel/laravel. Secara default, struktur directory dari Laravel PHP Framework adalah app, bootstrap, public seperti pada Gambar 2.7
24
Gambar 2.7 Stuktur Direktori Laravel
Laravel PHP Framework juga memiliki beberapa dependency, sehingga agar Laravel dapat berjalan dengan baik, lakukan instalasi dependency dengan masuk ke root directory dari Laravel lalu mengetikkan perintah php composer.phar install. sehingga setelah instalasi dependencies dilakukan, struktur directory Laravel akan menjadi sebagai berikut :
Gambar 2.8 Struktur directory setelah instalasi
Berikut adalah penjelasan dari struktur direktori Laravel PHP Framework : 1.
app Direktori app digunakan untuk menyediakan home directory dari proyek yang dibuat dengan kode yang custom. Ini termasuk classes yang menyediakan
25
fungsi bagi aplikasi, file-file konfigurasi, controller, model, dan view. Isi dari direktori app dapat dilihat pada Gambar 2.9.
Gambar 2.9 Isi direktori app
2.
bootstrap Direktori bootstrap berisikan beberapa file yang terkait dengan prosedur startup dari framework.
3.
vendor Direktori vendor berisikan seluruh paket composer yang digunakan oleh aplikasi yang dibangun, termasuk paket framework Laravel.
4.
public Direktori public adalah satu-satunya direktori dimana setiap file yang akan di publikasi menjadi web aplikasi, seperti CSS, Javascript, gambar, file .htaccess, dll.
2.9 MySQL Database Database atau basis data adalah sebuah aplikasi terpisah yang menyimpan sebuah koleksi data.
Masing - masing basis data memiliki satu atau lebih
Application Programming Interface (API) sebagai antarmuka antara basis data dengan aplikasi. Salah satu basis data yang didukung oleh PHP adalah MySQL,
26
PHP secara default menyediakan fungsi API untuk melakukan koneksi ke server basis data MySQL. MySQL (dibaca Mai Es Qiu Ell) adalah SQL Relational Database Management System (RDBMS) yang open source dan gratis. pada awalnya pembuat MySQL, Monty Widenius, bekerja di perusahaan IT dan konsultasi data Swedia bernama TcX. Pada saat bekerja di TcX Monty membangun UNIREG sebuah pembangun antarmuka terminal yang terkoneksi dengan data store ISAM, karena keterbatasan dari UNIREG, maka Monty dan tim lain pada TcX membangun sebuah DBMS bernama mSQL yang lalu berevolusi menjadi MySQL. Pada awal pembangunannya MySQL sempat menuai banyak kritik dikarenakan support yang tidak baik / kurangnya dukungan dari developer. Namun seiring berjalannya waktu, MySQL menemukan sekumpulan user yang antusias akibat lisensi yang liberal serta fitur yang mampu menyaingi beberapa produk komersial pada masanya (Converse dkk, 2004).
2.10 Queue Queue adalah konsep dari sturktur data yang abstrak, yang pada ilmu komputer biasanya digunakan untuk melakukan memaksa beberapa jenis disiplin akses pada obyek didalamnya.
Jika di analogikan, queue adalah sebuah
terowongan berisi antrian yang bersifat first-in-first-out (FIFO) dimana orangorang yang sedang mengantri untuk sesuatu masuk ke terowongan terseut, dan orang yang pertama kali masuk atau paling awal mengantri adalah orang yang pertama dilayani, baru setelah itu orang kedua, dan seterusnya (Converse dkk, 2004). Beanstalkd adalah program simple dan ringan untuk mengatur antrian (queue). berbasiskan teks, aplikasi mengirimkan pesan atau pekerjaan ke sebuah antrian yang kemudian dijalankan oleh worker processes. Dimana pada skripsi ini penulis mengintegrasikan queue Beanstalkd dengan Laravel PHP Framework.
2.11 Simple Mail Transfer Protocol (SMTP) Relay Simple Mail Transfer Protocol (SMTP) adalah protokol yang digunakan untuk mengirimkan dan menerima email atau surat elektronik (surel).
Yang
27
bertanggung jawab terhadap penerimaan dan pengiriman surel pada mail server disebut Mail Transfer Agent (MTA) atau SMTP Server. Masing-masing MTA akan berkomunikasi untuk dapat saling menerima surel dari server SMTP yang lain (Converse dkk, 2004). Yang dimaksud dengan SMTP Relay adalah mengirimkan surel melalui server SMTP lain. Secara default, fungsi surel aplikasi atau PHP hanya akan mengirimkan surel dengan server SMTP yang berada pada local (localhost) atau pada server aplikasi itu sendiri. Agar dapat menggunakan SMTP server lain untuk mengirimkan surel, maka pada aplikasi atau PHP perlu di buat konfigurasi yang mengarahkan Server SMTP lain diluar server aplikasi itu sendiri. Konfigurasi tersebut berisikan nama server, port, serta autentikasi yang digunakan untuk mengirimkan surel. Contoh konfigurasi surel relay pada Laravel PHP Framework dapat dilihat pada Kode 2.2 'in.mailjet.com', 'port' => 587, 'from' => array('address' => '
[email protected]', 'name' => 'Crawler App'), 'encryption' => 'tls', 'username' => 'usernameemailsaya', 'password' => 'passwordemailsaya', );
Kode 2.3 Konfigurasi surel relay pada Laravel
2.12 HTML HTML bukan hal yang tunggal atau teknologi monolitik, akan tetapi HTML merupakan kumpulan fitur, teknologi dan API yang membawa kekuatan dekstop dan pengalaman multimedia ke web
sementara
–
sehingga
meningkatkan kekuatan inti dari web yang berdasarkan konektifitas dan interaktivitas. Dokumen HTML diawali dengan tag dan di akhiri tag . Untuk awal konten dokumen biasanya diawali dan di akhiri juga dengan tag yang
dengan
dengan tag
letaknya di antara tag
28
awal dan akhir dokumen HTML. Contoh dokumen HTML dapat di lihat pada Kode 2.3
sample Ini adalah contoh dokumen HTML.
Kode 2.4 Dokumen HTML
2.13 Bootstrap Awalnya dibuat oleh desainer dan pengembang di Twitter, Bootstrap telah menjadi salah satu kerangka kerja front-end open source yang paling populer di dunia. Bootstrap diciptakan di Twitter pada pertengahan 2010 oleh @mdo dan @fat. Sebelum menjadi kerangka open-source, Bootstrap dikenal sebagai Twitter Blueprint. Beberapa bulan ke dalam pembangunan, Twitter menyelenggarakan acara Hack Week untuk pertama kalinya dan proyek ini meledak karena berbagai tingkat keahlian dari para pengembang turut serta dalam acara ini. Awalnya dirilis pada Jumat, 19 Agustus, 2011, Bootstrap sudah sejak memiliki lebih dari dua puluh rilis, termasuk dua penulisan ulang secara besar besaran dengan v2 dan v3. Dengan Bootstrap 2 dan 3, diharapkan fungsi dapat menjadi responsif terhadap seluruh kerangka sebagai stylesheet opsional (getbootstrap.com,2015). 2.1.4 Aggregator Pencarian Barang Secara terminologi, aggregator adalah sebuah sistem atau layanan yang menggabungkan data atau barang dengan karakteristik yang sama (wilayah geografis, target pasar, ukuran, dll) ke dalam entitas yang lebih besar. (TermWiki.com, 2014).
29
Aggregator Pencarian Barang sendiri adalah sebuah sistem atau layanan yang menggabungkan data untuk pencarian barang dari beberapa sumber yang berbeda, namun memiliki karakteristik yang sama, yaitu pencarian pada situs jual beli barang dan jasa. Untuk melakukan pencarian barang seseorang bisa menggunakan beberapa cara untuk mendapatkan produk yang diiginkan, diantaranya dengan mengunjugi situs pasar online atau menggunakan search engine. Cara kerja kedua alternatif tersebut sebagai berikut : a.
Mengunjungi situs pasar online, dalam ini pengunjung akan menghabiskan banyak banyak waktu karena harus mengunjungi situs pasar online tersebut dan bisa menjadikan pekerjaan sia-sia karena belum tertentu situs tersebut terdapat barang yang diinginkan.
b.
Menggunakan search engine, dalam hal ini pengunjug mendapatkan informasi barang secara instan, namun kekurangan dengan cara ini adalah informasi yang ditampilkan oleh search engine tidak real time, atau terkadang di arahkan pada situs phising. Kedua alternatif di atas mempunyai kelebihannya masing-masing. Jika
pengguna mengunjungi situs pasar online secara langsung, maka pengguna dapat langsung melakukan pencarian barang yang terdapat pada situs pasar daring tersebut namun semua dilakukan secara manual dan sering kali barang sudah laku terjual jika pengguna tidak sering melakukan pencarian pada situs pasar daring tersebut. Sedangkan jika pengguna menggunakan search engine, pengguna dapat mendapatkan petunjuk penjualan barang dari beberapa situs pasar daring sekaligus, namun berisiko di arahkan juga ke situs phising. Dari kedua alternatif di atas, maka penulis ingin memberikan alternatif lain sebagai metode pencarian barang di situs pasar online. Dengan memanfaatkan Laravel PHP Framework untuk membuat aplikasi Agregator Pencarian Barang untuk melakukan pencarian barang berdasarkan kata kunci dari pengguna dan mengirimkan surel kepada pengguna tersebut jika kata kunci ditemukan pada pasar daring secara realtime. Laravel PHP Framework juga sudah memiliki paket yang dapat langsung dimanfaatkan untuk queue serta dikonfigurasi untuk
30
mengirimkan surel ke pengguna melalui server SMTP (surel relay) lain sehingga penulis tidak perlu membangun server SMTP sendiri.