In Country Training 2002 Electronic Commerce (E-Commerce) In Country Training 2002 E-Commerce Hal. 1 In Country Training 2002 Oleh : Tessy Badriyah Nana Ramadijanti POLITEKNIK ELEKTRONIKA NEGERI SURABAYA INSTITUT TEKNOLOGI SEPULUH NOPEMBER Surabaya, Pebruari 2002 E-Commerce Hal. 2 In Country Training 2002 DAFTAR ISI Bab I : E-Commerce 1 1.1. Pendahuluan 4 1.2. Mekanisme E-Commerce 5 1.3. Software untuk Pembuatan E-Commerce 5 1.4. Mekanisme Pembayaran untuk E-Commerce 6 1.5. Keamanan di E-Commerce 7 1.6. Standart Enkripsi pada E-Commerce 9 1.7. Standart Teknologi untuk E-Commerce 5 1.8. Memulai Berjualan secara On-line 6 1.9. Mensetup sebuah E-Commerce 7 1.9.1. Keserderhanaan dan Kemudahan 9 1.9.2. Apa yang akan dijual dan bagaimana caranya ? 5 1.9.3. Pemenuhan Ekspektasi Pelanggan 6 1.9.4. Integrasi dengan sistem yang Sudah Ada 7 1.9.5. Pendekatan On-line 9 1.9.6. Pendekatan Batch/Off-line 5 1.10. 6 Masa Depan E-Commerce dan Dampak Bisnisnya E-Commerce Hal. 3 In Country Training 2002 BAB I E-Commerce Pembahasan mengenai e-Commerce meliputi 2 (dua) Bab. Tujuan pembelajaran pada Bab 1 ini adalah : Memberikan pengertian dan pemahaman mengenai konsep dasar dari e-Commerce Kemudian pada bab selanjutnya akan dijelaskan mengenai desain dan implementasi eCommerce dengan dukungan bahasa pemrograman script PHP dan database MySQL. 1.1. Pendahuluan Ecommerce, atau Electronic Commerce berkembang pesat dalam dunia Internet. merupakan salah satu teknologi yang Penggunaann sistem E-Com, begitu biasanya E- commerce disingkat, menguntungkan banyak pihak, baik pihak konsumen, maupun pihak produsen dan penjual (retailer). Bagi pihak konsumen, menggunakan E-Com dapat membuat waktu berbelanja menjadi singkat. Selain itu, harga barang-barang yang dijual melalui E-Com biasanya lebih murah dibandingkan dengan harga di toko, karena jalur distribusi dari produsen barang ke pihak penjual lebih singkat dibandingkan dengan toko konvensional. Online shopping menyediakan banyak kemudahan dan kelebihan jika dibandingkan dengan cara belanja yang konvensional. Selain bisa menjadi lebih cepat, di internet telah tersedia hampir semua macam barang yang biasanya dijual secara lengkap. Selain itu, informasi tentang barang jualan tersedia secara lengkap, sehingga walaupun proses pembelian dilakukan secara on-line, akan tetapi banyak informasi penting didapatkan untuk suatu produk yang akan dibeli 1.2. Mekanisme E-Commerce Pembeli yang hendak memilih belanjaan yang akan dibeli bisa menggunakan ‘shopping cart’ untuk menyimpan data tentang barang-barang yang telah dipilih dan akan dibayar. Konsep ‘shopping cart’ ini meniru kereta belanja yang biasanya digunakan orang untuk berbelanja di pasar swalayan. ‘Shopping cart’ berupa formulir dalam web, dan dapat dibuat dengan pemrograman script (misal : PHP) dan database (misal : MySQL). Barang-barang yang sudah dimasukkan ke shopping cart masih bisa di-cancel, jika pembeli berniat untuk membatalkan membeli barang tersebut. Jika pembeli ingin membayar untuk barang yang telah dipilih, ia harus mengisi form transaksi. Form transaksi ini menanyakan identitas pembeli serta nomor kartu kredit. Karena informasi ini bisa disalahgunakan jika jatuh ke tangan yang salah, maka pihak penyedia jasa e- E-Commerce Hal. 4 In Country Training 2002 commerce telah mengusahakan agar pengiriman data-data tersebut berjalan secara aman, dengan menggunakan standar security tertentu. Setelah pembeli mengadakan transaksi, retailer akan mengirimkan barang yang dipesan melalui jasa pos langsung ke rumah pembeli. Beberapa cybershop menyediakan fasilitas bagi pembeli untuk mengecek status barang yang telah dikirim melalui internet. 1.3. Software untuk Pembuatan E-Commerce Dalam pembuatan ‘toko’ di internet (atau biasa disebut dengan istilah cybershop), diperlukan software-software tertentu untuk mengatur inventarisasi barang dan proses transaksi jual beli barang. Di pasaran, sudah terdapat software-software khusus untuk membuat sistem E-Com, seperti Intershop Online keluaran Intershop Communications, Merchant Server keluaran Microsoft Corp, dan Electronic Commerce Suite keluaran iCat. Software-software itu khusus dijual kepada pihak-pihak yang berniat membangun cybershop, dan dijual dengan harga ribuan dollar. Pada dasarnya software-software untuk pembuatan ECommerce ini menggunakan database untuk penyusunan katalog. Database misalnya DB2, Oracle, atau MySQL. 1.4. Mekanisme Pembayaran untuk E-Commerce Untuk pembayaran, e-commerce menyediakan banyak alternatif. Bentuk / cara pembayaran yang digunakan di Internet umumnya bertumpu pada sistem keuangan nasional, tapi ada juga beberapa yang mengacu kepada keuangan lokal / masyarakat. Ada beberapa metoda pembayaran yang dapat digunakan, yaitu: • Sistem pembayaran kartu kredit on-line. • Sistem pembayaran check on-line. Secara umum ada beberapa mekanisme pembayaran yang berkembang terutama yang berkaitan dengan uang yang sifatnya lokal. Beberapa di ant ara-nya adalah: • LETS http://www.gmlets.u-net.com/ sebuah model dari sistem kredit yang dibangun masyarakat cyber. • Security First Network Bank http://www.sfnb.com/ sebuah b ank di Internet. • Jika ada perasaan tidak aman dalam melakukan transaksi online, maka sistem secure800 http://www.secure800.com/ dapat membantu mekanisme pembayaran melalui telepon bagi pembelian yang dilakukan secara online. E-Commerce Hal. 5 In Country Training 2002 Selanjutnya mekanisme pembayaran online yang terkait dengan sistem kartu kredit : o Jika anda menjalankan cybercash server http://www.cybercash.com, maka orang akan mendownload dompet cybercash, dan kemudian mereka akan mengirimkan nomor kartu kredit mereka yang di enkripsi melalui Internet. • Cybersource menjalankan http://www.cybersource.com/ software.net yang dipimpin http://www.software.net/ - oleh juga orang-orang memberikan jasa yang untuk pemrosesan kartu kredit real-time http://www.cybersource.com/service/ccard.htm. Selanjutnya yang masih terkait dengan metoda pembayaran yang melibatkan pihak ke tiga sebagai perantara adalah dengan menggunakan metoda check online. Diantaranya adalah: • CheckFree http://www.checkfree.com/ adalah sebuah sistem pembayaran secara elektronik yang telah dikembangkan sejak 1981, sistem tersebut mempunyai sebuah pembayaran tanpa check (checkless) yang dapat digunakan dari sebuah PC. • PaymentNet http://www.paymentnet.com/Home.htm akan membantu anda dalam menghandle transaksi melalui kartu kredit maupun kartu debit secara online. Referensi lebih lanjutnya untuk mekanisme pembayaran pada e-commerce dapat dibaca di beberapa tempat seperti: • Tulisan Roy Davis tentang Money--Past, Present, and Future dari http://www.ex.ac.uk/~RDavies/arian/money.html. • Tulisan tentang payment mechanisms designed for the internet yang di publihasikan oleh Network Payment Mechanisms and Digital Cash page bisa diperoleh di http://ganges.cs.tcd.ie/mepeirce/Project/oninternet.html. • http://www.transaction.net/ 1.5. Keamanan di E-Commerce Banyak pendapat yang mengatakan bahwa transaksi di Internet tidak aman karena banyaknya kasus tentang pembobolan sistem keamanan Internet. Hal yang paling berat adalah meyakinkan para pembeli bahwa e-commerce adalah aman untuk mereka. Sebenarnya sebagian besar dari pencurian kartu kredit terjadi di sebabkan oleh pegawai sales yang menghandle nomor kartu kredit tersebut. Sistem e-commerce sebetulnya menghilangkan keinginan mencuri tadi dengan cara meng-enkripsi nomor kartu kredit tersebut di server perusahaan. Para pakar e-commerce mengatakan bahwa transaksi e-commerce jauh lebih aman daripada pembelian kartu kredit biasa. Karena setiap kali dilakukan pembayaran dengan menggunakan kartu kredit – dan setiap kali resi pembelian kartu kredit tersebut dibuang – maka sebetulnya telah terbuka informasi kartu kredit tersebut dapat dicuri. Transaksi dengan E-Commerce Hal. 6 In Country Training 2002 kartu kredit dapat di enkripsi menggunakan http://www.builder.com/Business/Ecommerce20/ss05.html, Secure Sockets sebuah protokol Layer yang (SSL) akan mengamankan saluran komunikasi ke server, memproteksi data pada saat dikirimkan melalui Internet. SSL menggunakan public key encryption, salah satu metoda enkripsi yang cukup kuat saat ini. Untuk melihat apakah sebuah Web site di amankan menggunakan SSL dapat dilihat pada awal URL digunakan https bukan http. Pembuat browser dan perusahaan kartu kredit saat ini mempromosikan sebuah standar tambahan bagi keamanan di namakan Secure http://www.builder.com/Business/Ecommerce20/ss05.html. Electronic SET akan Transaction (SET) mengenkode nomor kartu kredit yang ada di server vendor di Internet – yang hanya dapat membaca nomor kartu kredit tersebut hanya bank dan perusahaan kartu kredit – artinya pegawai vendor / merchant tidak bisa membaca sama sekali sehingga kemungkinan terjadi pencurian oleh vendor menjadi tidak mungkin. Dalam prakteknya, berbelanja di web memerlukan koneksi ke internet dan browser yang mendukung transaksi elektronik yang aman, seperti Microsoft Internet Explorer dan Netscape Navigator. Microsoft dan Netscape, bekerja sama dengan perusahaan kartu kredit (Visa dan MasterCard), serta perusahaan-perusahaan internet security (seperti VeriSign), telah membuat standar enkripsi khusus yang membuat transaksi melalui web menjadi sangat aman. Yang menandakan suatu retailer web site aman atau tidak adalah adanya tanda khusus yang muncul di status bar di bagian bawah layar browser. Pada IE, tanda yang muncul adalah tanda gembok terkunci di pojok kanan status bar. Sedangkan pengguna Netscape Navigator, akan melihat tanda kunci di pojok kiri status bar. Jika tanda-tanda tersebut muncul, berarti Anda sedang ter-connect pada server yang aman. Walaupun begitu, karena standar yang dipakai untuk secure connection ini relatif baru, belum semua cybershop menggunakan standar ini. Kumpulan dari banyak cybershop yang telah terintegrasi dinamakan cybermall. Beberapa cybermall akan mengecek terlebih dahulu legitimasi dari cybershop yang akan masuk, sehingga dapat menghindari adanya cybershop yang palsu. Beberapa cybermall juga menyediakan jasa-jasa tambahan, seperti billing atau tagihan yang tersentralisasi, menjadikan proses belanja menjadi lebih mudah dan aman. 1.6. Standart Enkripsi pada e-Commerce Standar enkripsi yang digunakan dalam e-commerce pada saat ini adalah SET (Secure Electronic Transaction). Selain digunakan untuk pembayaran dengan credit card, SET juga digunakan untuk pembayaran dengan smartcard. Dengan menggunakan SET, kerahasiaan informasi custo mer (berupa nama dan nomor kartunya) bisa dijaga. SET juga bisa menjaga autotentifikasi atau identitas penjual dan customer, sehingga tidak bisa disalahgunakan oleh sembarang orang. E-Commerce Hal. 7 In Country Training 2002 1.7. Standart Teknologi untuk E-Commerce Di samping berbagai standar yang digunakan di Intenet, e-commerce juga menggunakan standar yang digunakan sendiri, umumnya digunakan dalam transaksi bisnis-kebisnis. Beberapa diantara yang sering digunakan adalah: Secure Socket Layer (SSL): Protokol ini di disain untuk membangun sebuah saluran yang aman ke server. SSL menggunakan teknik enkripsi public key untuk memproteksi data yang di kirimkan melalui Internet. SSL dibuat oleh Netscape tapi sekarang telah di publikasikan di public domain. Secure Electronic Transactions (SET): SET akan mengenkodekan nomor kartu kredit yang di simpan di server merchant. Standar ini di buat oleh Visa dan MasterCard, sehingga akan langsung di dukung oleh masyarakat perbankan. Ujicoba pertama kali dari SET di ecommerce dilakukan di Asia. 1.8. Memulai Berjualan secara On-Line Saat ini banyak sekali produk-produk yang memungkinkan kita mensetup situs ecommerce dan langsung berjualan dalam waktu beberapa hari / minggu, mulai dari yang simple, murah hingga mahal dan kompleks. Para pengusaha kecil mungkin harus melihat jauh diluar ISP-nya untuk melihat solusisolusi murah tadi. Contohnya, Forman interactive http://www.formaninteractive.com/ memberikan produk Internet creator seharga kurang dari US$150. Perangkat lunak tersebut menggunakan beberapa wizard untuk menolong anda membuat halaman web yang aman untuk menjual produk anda. Bahkan jika meletakan halaman web tersebut di server Forman, mereka akan membantu menangani pembayaran melalui CheckFree http://www.checkfree.com/. Solusi-solusi yang murah dan menarik ini juga tampaknya juga diberikan oleh indosatcom sebuah anak perusahaan dari Indosat yang memfokuskan diri di e-commerce. Salah satu produk indosatcom adalah EDIWeb menjadi menarik untuk para pengusaha kecil yang hanya bermodal akses ke WARNET. Telkom juga meluncurkan plasa.com belum terhitung inisiatif lain seperti Wasantara dll. Untuk mulai berjualan secara on-line, terlebih dahulu terdapat beberapa istilah yang perlu diketahui beberapa diantara-nya adalah: • Digital atau electronic cash: juga dikenal sebagai e-cash, istilah ini ditujukan untuk beberapa pola / metoda yang memungkinkan seseorang untuk membeli barang atau jasa dengan cara mengirimkan nomor dari satu komputer ke komputer yang lain. Salah satu kelebihan yang dibawa oleh digital cash adalah sifatnya yang anonymous dan dapat di pakai ulang, seperti uang cash biasa. Hal ini merupakan perbedaan utama antara e-cash dengan transaksi kartu kredit melalui Internet. Untuk informasi lebih E-Commerce Hal. 8 In Country Training 2002 lanjut dapat dilihat di PC Webopaedia http://www.sandybay.com/pc- web/digital_cash.htm. • Digital money: adalah terminologi global untuk berbagai e-cash dan mekanisme pembayaran elektronik di Internet. • Disintermediation: adalah proses untuk memotong jalur perantara. Kira-kira pada saat perusahaan yang berbasiskan web membypass kanal retail tradisional dan menjual secara langsung ke pelanggan / pembeli, maka perantara tradisional – seperti toko dan jasa mail order – akan kehilangan pekerjaan. • Electronic checks: pada saat ini sedang di ujicoba oleh CyberCash http://www.cybercash.com/ • Electronic wallet : Pola pembayaran – seperti CyberCash Internet Wallet http://www.cybercash.com/, akan menyimpan nomor kartu kredit anda di harddisk anda dalam bentuk terenkripsi yang aman. • Extranet: adalah sebuah kelanjutan dari intranet perusahaan yang mengkaitkan jaringan internal satu perusahaan dengan jaringan internal supplier mereka maupun pelanggan mereka. Dengan cara itu sangat mungkin untuk mengembangkan aplikasi ecommerce yang memungkinkan menyambungkan semua aspek bisnis, dari proses pemesanan hingga pembayaran. • Micropaymet adalah transaksi dalam jumlah kecil antara beberapa ratus rupiah hingga puluhan ribu rupiah, misalnya untuk mengambil / mengakses grafik, game maupun informasi. Pay-as-you-go micropayment seharusnya akan membuat revolusi di dunia ecommerce. Contohnya ESPN SportsZone http://espn.sportszone.com/ menggunakan CyberCoin untuk membayar US$1 untuk mengaskses situs mereka selama satu hari – tanpa perlu membayar penuh langganan bulanan. 1.9. Mensetup sebuah e-Commerce Seperti dijelaskan sebelumnya, sebuah e-commerce berbeda dengan situs web biasa karena perbedaan objektif diantara mereka. Yang satu diarahkan untuk memperoleh pemasukan secara langsung dari penjualan, sedang sebuah situs web tradisional lebih di orientasikan kepada komunikasi. Hal ini selanjutnya akan menyebabkan beberapa perbedaan teknis dalam mensetup sebuah situs. Beberapa hal yang berkaitan dengan e-commerce akan dicoba dibahas berikut ini. E-Commerce Hal. 9 In Country Training 2002 1.9.1. Kesederhanaan dan Kemudahan Bila dibandingkan sebuah katalog dengan brosur atau bentuk media marketing lainnya yang biasa digunakan di dunia konvensional. Katalog biasanya mempunyai struktur yang berbeda. Katalog biasanya mempunyai index untuk kecepatan akses ke informasi, usaha yang serius biasanya diberikan untuk menjamin agar layout sebuah katalog menjadi jelas dan mudah dibaca. Secara alamiah, katalog lebih repetitif - ada elemen-elemen grafik yang di ulang di setiap halaman untuk memberikan petunjuk kepada pembaca halaman web. Hal yang digunakan dalam katalog di dunia konvensional akan digunakan juga di dunia elektronik. Mereka mempunyai tujuan yang sangat berbeda dengan situs web yang murni untuk public relation, hal tersebut harus nampak pada layout situs. Situs dapat menggunakan pola situs multimedia seperti animasi, suara, dan aplet Java. Karena sebuah e-commerce harus melayani pembeli yang akan membeli secara langsung, maka sebuah e-commerce harus bersih dan effisien agar dapat dibaca dengan cepat. Yang menjadi penekanan adalah kejelasan dan kemudahan penggunaan. Grafik sebaiknya kecil dan repetitif. Penggunaan tombol dan label harus jelas dan mudah dimengerti. Tombol dengan teks lebih disukai. Pemrograman HTML harus dilakukan secara efisien. Contohnya untuk menampilkan hasil searching dalam bentuk tabel. Umumnya browser akan lambat untuk menampilkan tabel; browser harus men-download seluruh content sebelum bisa menampilkan tabel-nya. Oleh karena itu akan lebih effisien untuk menggunakan multiple / beberapa tabel. 1.9.2. Apa yang akan dijual dan bagaimana caranya Kebanyakan e-commerce di Internet menjual barang yang relatif murah, seperti barang konsumen biasa (seperti buku dan CD) atau barang operasional (seperti pena dan bloknote). Pembeli dapat browse atau memilih barang, memasukan barang yang dipilih ke virtual shopping cart. Setelah mereka selesai berbelanja, mereka perlu registrasi, membayar dengan kartu kredit atau bentuk e-uang yang lain, dan barang akan dikirimkan kepada mereka melalui kurir - atau, pada software, e-buku, e-artikel, e-lagu, mereka bisa mendownload produk tersebut secara langsung. Sebetulnya e-commerce tidak terbatas pada barang berharga murah, jasa telah terbukti sangat populer. Banyak bank telah membuka cabang elektronik-nya. Berbagai industri jasa mulai bergerak online. Contoh, 1-800-MYLOGO <http://www.1800mylogo.com/> sebuah jasa disain telah memungkinkan logo di pesan secara online. Barang berharga tinggi seperti mobil dan rumah memang belum dapat dijual secara baik melalui media online. Akan tetapi media online dapat menjadi kanal pre-sales yang sangat baik sehingga merupakan versi enhanced dari situs pemasaran tradisional. E-Commerce Hal. 10 In Country Training 2002 Program katalog pada e-commerce dapat berupa kombinasi script di server (PHP, CGI, servlets dan lainnya) dengan feature utama seperti shopping cart, fasilitas search, browsing yang effisien, dan registrasi user (yang mungkin termasuk didalamnya validasi kartu kredit). 1.9.3. Pemenuhan Ekspektasi Pelanggan Perusahaan mapan yang melakukan migrasi ke e-commerce biasanya harus menghadapi masalah tambahan yaitu harus dapat memenuhi ekspektasi customer based mereka yang sudah ada. Sebuah strategi e-commerce yang sukses akan bertumpu pada kekuatan yang sudah ada di perusahaan dan meng-enhance apa yang dapat perusahaan itu berikan. Penanganan yang spesial diberikan untuk menjamin agar pelanggan yang sudah ada dapat dengan mudah mengakses produk-produk yang sudah familiar bagi mereka. Yang lebih penting lagi, penanganan yang hati-hati harus di perhatikan agar servis level yang sama dapat diberikan secara online seperti hal-nya secara offline. Ada dua (2) pendekatan yang sering digunakan untuk memberikan jasa personal yang online. Pertama adalah membuka kepakaran internal perusahaan secara online melalui sistem pakar (expert system). Cara yang ke dua adalah menggunakan agen software yang cerdas . Agen software tersebut dapat juga memberitahukan pembeli jika produk yang dia sukai muncul. Pada dasarnya apapun pendekatan yang dipakai, semua sistem yang di sebutkan di atas mudah untuk di integrasikan dengan standar merchant toolkit. Yang penting adalah kita harus menyadari bahwa pembeli hanya akan kembali ke sebuah e-commerce karena beberapa sebab seperti harga, kualitas jasa, convenience, dan sebagainya. 1.9.4. Integrasi dengan sistem yang sudah ada Yang paling sulit adalah proses integrasi e-commerce dengan sistem yang sudah ada. E-commerce tidak berdiri sendiri, dia di dukung oleh beberapa sistem informasi seperti billing, manajemen stok, accounting, dan manajemen panggilan dari pembeli (kalau anda melakukan direct sales menggunakan telepon). Kombinasi dari sistem ini dikenal sebagai back-end. Mengintegrasikan aplikasi yang sudah lama ada dengan sistem web adalah pekerjaanpekerjaan yang seringkali harus dilakukan oleh intranet developer. Setiap organisasi telah mengembangkan sistem accounting dan billing yang unik yang merefleksikan budaya dan pasar dari organisasi tersebut. Back-end telah dikembangkan dalam waktu yang lama. Back-end berkembang dengan perusahaan, biasanya back-end tidak di disain untuk online commerce. Mengadaptasi sistem seperti ini biasanya memerlukan kemampuan untuk memecahkan beberapa masalah di bidang responsiveness, keamanan, konversi format, scalability dan banyak lagi. Di atas semua pekerjaan tersebut biasanya ada saja hal-hal kecil yang menjengkelkan. Contohnya, sebuah perusahaan tidak dapat memberikan nomor referensi E-Commerce Hal. 11 In Country Training 2002 kepada pembeli online tanpa harus mengubah secara drastis back-end sistem mereka. Tentunya mereka akan sangat berkeberatan untuk melakukan perubahan tersebut. Solusi yang ditempuh akhirnya memberikan nomor referensi yang sifatnya sementara kepada pembeli online, dan mengkonfirmasikan kemudian melalui e-mail dengan nomor referensi yang sesungguhnya yang sudah di konfirmasikan ke back-end. Untuk menghindari kebingungan akhirnya digunakan kata "confirmation number" untuk membedakan nomor referensi yang sifatnya sementara tadi. Kejadian seperti akan banyak terjadi pada sistem back-end yang mapan. Secara umum ada dua pola utama pada saat kita mengintegrasikan sebuah sistem : • Membuat sistem back -end dapat diakses secara online melalui e-commerce, atau • Putuskan sama sekali e-commerce dari back-end dan duplikasi data dari e-commerce ke back -end dan sebaliknya secara batch. Tentunya, pilihan yang paling tepat akan sangat tergantung pada sistem yang ada. Umumnya perusahaan-perusahaan menginginkan back-end mereka dapat di akses secara online, akan tetapi mereka umumnya lebih suka solusi kedua yang memutuskan back-end dari online e-commerce -nya karena lebih murah dan lebih mudah di implementasikan. 1.9.5. Pendekatan Online Pada pendekatan online, e-commerce mempunyai akses langsung ke database di back- end. Hal ini mempunya dua keuntungan utama yaitu: • Sangat mungkin untuk memberikan servis yang lebih baik, seperti informasi stok yang real -time. • Sangat menekan biaya operasi sistem, karena tidak dibutuhkan intervensi manusia untuk menerima pesanan atau update harga. Kesulitan utama dalam pendekatan online ini adalah biaya dan keamanan. Keamanan adalah isu yang paling penting dalam pendekatan online. Sedang dukungan back-end tidak hanya untuk e-commerce-nya tapi juga untuk seluruh bagian dari perusahaan; oleh karena sangat penting artinya agar e-commerce tersebut dapat diakses secara aman. Hal lain yang akan membuat faktor biaya menjadi naik karena cepatnya obsolete perangkat lunak: back-end perlu secara periodik di upgrade dan di modifikasi. Responsiveness, seperti diterangkan terdahulu, sangat penting dalam e-commerce; oleh karena itu back-end harus dapat mengirim data secepatnya. Jika e-commerce sukses, atau back-end sudah mulai overload karena banyak digunakan maka upgrade dan perubahan di back-end harus di lakukan supaya semua berjalan secara lancar efisien. Yang terakhir, pendekatan online memerlukan cukup banyak pekerjaan yang mahal terutama untuk customisasi. E-Commerce Hal. 12 In Country Training 2002 1.9.6. Pendekatan batch / offline Oleh karena hal-hal yang di sebutkan di atas, banyak perusahaan akhirnya memilih untuk memisahkan e-commerce mereka dengan back-end. Data, seperti deskripsi produk dan informasi pesanan, di duplikasi di kedua lingkungan tersebut. Setiap sistem mempunya database masing-masing yang di optimasi untuk kebutuhan-nya. Keuntungan utama dari pendekatan off-line ini adalah masing-masing dapat berjalan dan berkembang sesuai dengan kebutuhan. Tidak ada kebutuhan untuk mengadaptasi back-end ke e-commerce. Dalam kasus-kasus yang simpel bahkan data dapat di duplikasi secara manual. Proses manual cocok untuk jumlah produk yang kecil dan tetap (statik), untuk jumlah produk yang lebih besar dan dinamik (berubah-ubah) dibutuhkan pendekatan yang lebih otomatis. Alternatif yang populer adalah membangun proses meng-copy yang sifatnya batch secara periodik, proses ini akan secara otomatis melakukan resinkonisasi antara e-commerce dengan database di back-end. 1.10. Masa Depan e-Commerce dan Dampak Bisnisnya Tampaknya e-commerce mempunyai masa depan yang cerah. Jika berbagai detail dari perdagangan online ini dapat di selesaikan maka bukan mustahil e-commerce dan Internet akan mengubah struktur dunia usaha secara global. Dengan perkembangan masyarakat virtual yang demikian besar – banyak orang yang berpartisipasi dalam berbagai interest group online – memperlihatkan pergeseran paradigma dari kekuatan ekonomi yang bertumpu pada pembuat / manufacturer ke kekuatan pasar. Perusahaan kecil dengan produk yang lebih baik dan customer service yang baik akan dapat menggunakan masyarakat virtual ini untuk mengalahkan perusahaan besar – sesuatu yang cukup sulit dimengerti di dunia nyata. Perusahaan yang akan secara langsung dirugikan oleh E-Commerce adalah agen perjalanan, tiket bioskop, katalog mail-order, dan toko retail – terutama toko perangkat lunak. Mungkin kalau di Indonesia yang terasa hanya bagi agen perjalanan & bisnis sekitar turis. Cerita sukses e-commerce, seperti amazon.com http://www.amazon.com/, sebetulnya merupakan bentuk lain dari sebuah proses perantara. Amazon.com tidak menerbitkan buku. Mereka semua umumnya hanyalah sebuah distributor online saja. E-middleman harus membuktikan bahwa ada nilai tambah yang diberikan pada proses pembelian secara online, melalui marketing, customer service, juga metoda-metoda lain. Kalau tidak maka pelanggan akan memutuskan modem-nya dan tidak akan menggunakan jasa mereka lagi. E-Commerce Hal. 13 In Country Training 2002 BAB II DESAIN DAN IMPLEMENTASI ONLINE-BOOKSTORE Tujuan pembelajaran pada Bab 2 ini adalah : Membangun kerangka aplikasi pemrograman database berbasis Web dengan kasus toko buku online (online-bookstore), dengan dukungan bahasa pemrograman script PHP dan database MySQL. 2.1. Alur Aplikasi Online-Bookstore Secara umum suatu online-bookstore memiliki proses bisnis sebagai berikut : • Halaman depan yang harus dipilih oleh user adalah kategori produk yang menampilkan jenis buku yang dijual, misal : software, elektronik, komputer, unix, dan sebagainya. • Jika user selesai memilih kategori produk, kemudian berikutnya akan ditampilkan katalog produk dari kategori yang dipilih • Pada katalog produk, jika user selesai mengklik salah satu judul buku yang ada maka akan muncul halaman detail tentang buku tersebut yang meliputi judul buku yang dipilih, harga dan gambar covernya. Pada halaman ini, juga ditampilkan tombol pemesanan dan jumlah buku yang dipesan yang akan diproses pada bagian “keranjang belanja” • Pada keranjang belanja, resume buku yang dipesan akan ditampilkan dan terdapat link untuk kembali ke halaman depan (kategori produk), katalog produk, maupun halaman pembayaran (checkout). 2.2. Desain Sistem dan Perancangan Database Katalog Bagian ini akan menjelaskan sistem katalog yang dipergun akan oleh tiap kategori produk, yang meliputi perancangan skema database, pembuatan database dan tabel di MySQL, fungsi koneksi ke database dan halaman kategori serta halaman detail. 2.2.1. Skema Database Katalog Desain skema database yang digunakan untuk sistem katalog ini meliputi 3 (tiga) buah tabel yaitu tabel penerbit, tabel judulbuku dan tabel tipe_kategori. Ketiga buah tabel tersebut disimpan dalam sebuah database yang diberi nama toko_online. Berikut ini akan ditampilkan struktur masing-masing tabel pada database toko_online, beserta kegunaannya. E-Commerce Hal. 14 In Country Training 2002 Halaman Utama untuk memilih Kategori Barang Halaman Katalog Produk dari Kategori Barang yang dipilih Detail dari produk yang dipilih * Fasilitas untuk : - memasukkan ke keranjan belanja - menentukan jumlah item Halaman Keranjang Belanja Fasilitas untuk : - Menambah jumlah item - membatalkan pemesanan, dll Halaman Check-Out (pembayaran) Gambar 2.1. : Alur aplikasi Online -Bookstore Struktur Tabel tipe_kategori Kegunaan : Menyimpan informasi kategori buku yang dijual. Field Tipe Panjang Keterangan Tipe_Ctg Char 4 Tipe dari kategori produk Nama_Ctg Char 40 Nama dari kategori produk Primary key (kunci utama) dari tabel tipe_kategori diatas adalah field Tipe_Ctg yang akan menjadi foreign key pada tabel judulbuku. E-Commerce Hal. 15 In Country Training 2002 Struktur Tabel penerbit Kegunaan : Menyimpan data penerbit. Field Tipe Panjang Keterangan Char 4 Nomor identifikasi penerbit Nama_Pen varchar 40 Nama penerbit Alamat_Pen varchar 50 Alamat penerbit ID_Pen Primary key dari tabel penerbit ini adalah field ID_Pen yang menyimpan nomer identifikasi dari penerbit. Struktur Tabel judulbuku Kegunaan : Menyimpan judul buku yang disediakan Field ID_Judul Judul Tipe_Ctg Tipe Panjang Keterangan Char 4 Nomer identifikasi judul buku varchar 40 Judul Buku Char 4 Tipe kategori buku (foreign key dari tabel tipe_kategori) ID_Pen Char 4 Nomer identifikasi penerbit (foreign key dari tabel penerbit) Harga Integer - Harga Buku Th_terbit Integer - Tahun penerbitan buku Char 100 Keterangan mengenai buku yang Note bersangkutan Pada tabel judulbuku ini yang menjadi primary key (kunci utama) adalah field ID_Judul yang merupakan nomer identifikasi buku. Dan terdapat dua foreign key yaitu Tipe_Ctg (tipe kategori buku) yang berasal dari tabel tipe_kategori dan ID_Pen (nomer identifikasi penerbit) yang berasal dari tabel penerbit. E-Commerce Hal. 16 In Country Training 2002 Pada tabel penerbit dan judulbuku ada beberapa field yang dipilih sebagai informasi yang akan ditampilkan pada halaman detail setiap buku yang dijual. Field-field tersebut yaitu : 1. Pada tabel penerbit : ID_Pen (identifikasi penerbit) dan Nama_Pen (nama penerbit). 2. Pada tabel judubuku : ID_Judul (nomer identifikasi buku), Judul (judul buku), ID_Pen (identifikasi penerbit), Harga (harga buku), Note (keterangan), Th_terbit (tahun penerbitan). 2.2.2. Membuat Database dan Tabel di MySQL Pada bagian ini akan dijelaskan cara pembuatan database dan tabel di MySQL. Langkah-langkah pembuatan database di MySQL adalah : 1. Pada Windows Explorer, di sub directory dimana executable file dari MySQL berada (misal di C:\MySQL\bin) E-Commerce klik dua kali winmysqladmin Hal. 17 In Country Training 2002 MySQLAdmin akan aktif ditandai dengan icon rambu lalu lintas dengan warna hijau di pojok kanan bawah layar monitor seperti ini : 2. Setelah itu keluar ke MS-DOS Prompt. Dan dari windows directory, arahkan menuju ke subdirectory MySQL dengan perintah berikut : C:\WINDOWS>cd c:\mysql\bin 3. Lakukan koneksi ke server database MySQL dengan perintah : C:\mysql\bin>mysql –h localhost Akan keluar tampilan, misal seperti ini (akan berbeda untuk sistem lain) : Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 to server version : 3.23.47 Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer. mysql> 4. Kemudian berikan perintah untuk membuat database toko_online mysql>create database toko_online; Jangan lupa untuk memberi tanda titik koma (;) pada akhir perintah. Akhirnya, database toko_online telah selesai dibuat : Query OK, 1 row affected (0.05 sec) Berikutnya, akan dijelaskan langkah pembuatan tabel di MySQL : 1. Untuk membuat tabel di MySQL, aktifkan terlebih dahulu database apa yang akan digunakan. Dalam contoh impelementasi kita, yang digunakan adalah database toko_online. mysql>use toko_online; kemudian akan tampil : Database changed. 2. Kemudian buat tabel tipe_kategori dengan struktur seperti yang sudah didefinisikan sebelumnya : mysql>create table tipe_kategori(Tipe_Ctg char(4), Nama_Ctg varchar(40)); 3. Akhirnya tabel tipe_kategori telah selesai dibuat : Query OK, 0 row affected (0.05 sec) Lakukan cara yang sama untuk tabel yang lain. E-Commerce Hal. 18 In Country Training 2002 2.2.3. Fungsi Koneksi Database SQL Pada bagian ini akan dijelaskan fungsi koneksi ke database MySQL. Fungsi-fungsi yang akan dipergunakan untuk melakukan koneksi ke database server akan disimpan ke dalam sebuah file. Nantinya file yang menyimpan fungsi ini (konek.inc) bisa disisipkan (embedded) ke file lain yang melakukan koneksi. File konek.inc berikut ini berisi perintah-perintah fungsi yang dipergunakan untuk melakukan koneksi ke database MySQL, termasuk variabel-variabel yang dapat dipergunakan oleh file yang akan meng-include-kan file ini. <? // deklarasi variabel untuk koneksi ke server database $database=”toko_online”; $hostname=”localhost”; // lakukan koneksi if (!$sambung=mysql_connect($hostname,””,””)) echo mysql_error(); // pilih database untuk diaktifkan mysql_select_db($database,$sambung); ?> 2.2.4. Halaman Pilihan Kategori Setelah selesai dilakukan pembahasan tentang konsep desain dan alur proses dari persoalan yang akan diimplementasikan, maka berikutnya akan diberikan pembahasan mengenai implementasi halaman-halaman script PHP. Halaman pertama yang akan dibangun adalah halaman menu utama yang berisi kategori produk yang menampilkan jenis buku yang dijual. Pada halaman ini terdapat link ke halaman katalog produk untuk suatu kategori yang dipilih oleh user yang ditentukan oleh nilai field Tipe_Ctg untuk kategori tersebut. Berikut ini adalah implementasi dari halaman menu utama yang disimpan sebagai file indek.php <html> <head> <title>Menu Utama </title> </head> <body> <center> <h2>Online BookStore EEPIS-ITS </h2> </center> <br> <p>Pililh kategori buku : <br> <p> E-Commerce Hal. 19 In Country Training 2002 <table width=300> <? # sisipkan koneksi ke server database include “konek.inc”; # menampilkan daftar kategori $kategori=”Select Tipe_Ctg, Nama_Ctg From tipe_kategori”; # eksekusi query if (!$hasil=mysql_query($kategori, $sambung)) { echo mysql_error(); exit(); } // menampilkan semua record pada tabel tipe_kategori while ($baris=mysql_fetch_row($hasil)) { echo “<tr>”; // tampilkan kategori echo “<td><a href=kategori.php?tipe=$baris [0]>$baris [1]</a>”; } ?> </table> </body> </html> 2.2.5. Halaman Kategori Halaman menu utama (indek.php) memiliki link ke halaman yang katalog produk (kategori.php) dengan mengirimkan satu variabel dengan nama Tipe_Ctg sesuai dengan kate gori yang dipilih oleh user pada halaman menu utama. Setelah itu pada halaman kategori.php akan terdapat variabel dengan nama $tipe yang berisi kode kategori sesuai dengan yang dipilih oleh user. Halaman katalog produk (kategori.php) akan menampilkan selu ruh judul buku pada tabel judulbuku dengan nilai kolom Tipe_Ctg yang sama dengan isi variabel $type yang dibawa dari halaman kategori (indek.php). Berikut ini adalah implementasi dari halaman katalog produk yang disimpan sebagai file kategori.php E-Commerce Hal. 20 In Country Training 2002 <html> <head> <? include “konek.inc”; // ambil infomasi kategori yang dipilih $kategori=”Select Tipe_Ctg,Nama_Ctg From tipe_kategori where Tipe_Ctg=$tipe”; // eksekusi query if (!$hasil=mysql_query($kategori,$sambung)) { echo mysql_error(); exit(); } $baris=mysql_fetch_row($hasil); // sekarang $baris[0] berisi tipe kategori yang dipilih, // $baris[1] berisi nama kategori yang dipilih ?> <body> <center> <? // tampilkan tipe kategori <h2>echo $baris[0]; // tampilkan nama kategori echo $baris[1]; </h2> </center> <p> Pilih salah satu buku yang tersedia <p> <table width=640> <? // lakukan query untuk mendapatkan semua judul buku dari nama kategori // yang ditentukan $buku=”Select * from judulbuku where Tipe_Ctg=$tipe”; // laksanakan query if (!$hasil=mysql_query($buku,$sambung)) { echo mysql_error(); exit(); } // tampilkan hasil query dengan menampung hasil record pada $baris // $baris[0] berisi ID_Judul, $baris[1] berisi Judul, dst. While (!$baris=mysql_fetch_row($hasil)) { echo “<tr>”; // tampilkan judul buku yang dapat di-link E-Commerce Hal. 21 In Country Training 2002 echo “<td><a href=detail.php?ID_Judul=$baris[0]>$baris [1]</a>”; // tampilkan harga buku echo “<td>$baris[4]”; // tampilkan tahun penerbitan echo “<td>$baris[5]”; } ?> </table> <p> <a href=indek.php>Kembali ke halaman pilihan kategori</a> </body> </html> 2.2.6. Halaman Detail Halaman katalog produk (kategori.php) mempunyai link ke halaman detail (detail.php) untuk setiap judul buku yang tertampil dan tersimpan sebagai variabel ID_judul (identifikasi judul buku). Setelah itu pada halaman detail, akan terdapat suatu variabel dengan nama $ID_judul dengan isi kode judul buku sesuai dengan pilihan user pada halaman katalog produk. Halaman detail akan menampilkan informasi detail dari buku yang memiliki nilai field ID_Judul sama dengan isi variabel $ID_Judul yang dibawa dari halaman katalog produk (kategori.php). Berikut ini adalah implementasi dari halaman detail yang disimpan sebagai file detail.php <html> <head> <? Include “konek.inc”; $rinci=”Select judulbuku.ID_Judul, judulbuku.Judul, judulbuku.Notes, judulbuku.Th_terbit, judulbuku.Harga, penerbit.Nama_Pen From judulbuku, penerbit Where judulbuku.ID_judul=’$ID_Judul’ And judulbuku.th_ID_Pen=penerbit.ID_Pen”; // laksanakan query if (!$hasil=mysql_query($rinci,$sambung)) { echo mysql_error(); exit(); } $baris=mysql_fetch_row($hasil); // sekarang $baris[0] berisi field ID_Judul, $baris[1] berisi field Judul, // $baris[2] berisi field Notes, $baris[3] berisi field Th_terbit, // $baris[4] berisi fieldHarga, $baris[5] berisi Nama_Pen E-Commerce Hal. 22 In Country Training 2002 </head> <body> <h2><? Echo $baris [1] ?></h2> <center> <table width=640> <? Echo “<tr>”; Echo “<td width=100> Keterangan </td>”; Echo “<td width=150> “ . $baris[2] . “</td>”; Echo “</tr>\n”; Echo “<tr>”; Echo “<td width=100> Nama Penerbit </td>”; Echo “<td width=150> “ . $baris[5] . “</td>”; Echo “</tr>\n”; Echo “<tr>”; Echo “<td width=100> Tahun Penerbitan </td>”; Echo “<td width=150> “ . $baris[3] . “</td>”; Echo “</tr>\n”; Echo “<tr>”; Echo “<td width=100> Harga </td>”; Echo “<td width=150> “ . $baris[4] . “</td>”; Echo “</tr>\n”; ?> </table> // tampilkan form isian jumlah <form action=’keranjang.php’ method=’GET’> <input type=hidden name=ID_Judul v alue=”<? Echo $baris[0] ?>” > Quantity <input type=text size=4 name=qty> <input name=order value=ADD type=submit> </form> </body> </html> E-Commerce Hal. 23 In Country Training 2002 2.3. Bagian Keranjang Belanja (Shopping Basket) Sejauh ini telah dilakukan pembahasan mengenai sistem katalog yang digunakan untuk membangun sebuah online-bookstore. Berikutnya adalah pembahasan mengenai sistem keranjang belanja (shopping basket) yang akan melakukan pencatatan berapa buku yang telah dipesan oleh user. Ada beberapa alternatif yang dapat digunakan untuk mengimplementasikan keranjang belanja, diantaranya adalah : • Menggunakan cookies Item disimpan sebagai masing-masing cookies untuk setiap user yang sedang melakukan aktifitas belanja buku. Karena menggunakan cookie, maka user dapat melanjutkan aktifitas belanjanya di waktu yang lain pada komputer yang sama, tetapi tidak dapat dibuka pada komputer yang lain (karena komputer yang lain ini tidak menyimpan cookie dari aktifitas belanja user). • Menyimpan semua informasi belanja user pada database Dengan cara ini maka beban server menjadi semakin bertambah dikarenakan akses ke database menjadi lebih sering, namun informasi belanja yang disimpan bisa lebih banyak, dan proses belanja dapat dibuka di komputer yang lain, tentu saja dengan nama user dan password yang sama. Implementasi keranjang belanja yang akan dibahas berikut ini menggunakan cara yang kedua yaitu menyimpan semua informasi belanja user pada database. 2.3.1. Desain Database Keranjang Belanja Pada dasarnya sebuah keranjang belanja berfungsi untuk : • menambah item baru • menghapus item yang lama • mengganti jumlah item • membatalkan pemesanan • melakukan pembayaran (checkout) Untuk keperluan tersebut maka diperlukan tambahan 2 (dua) tabel lagi yaitu : • tabel order_detail tabel ini menyimpan informasi detail dari record pada tabel order. Struktur dari tabel order_detail Field Tipe Panjang Keterangan ID_Order Char 4 Nomer identifikasi pemesanan (foreign key dari tabel order) Urut_Order Char 40 Nomer urut item yang dipesan pada keranjang belanja ID_Judul Char 4 Nomer identifikasi buku (foreign key dari table judulbuku) Qty Char 4 Alamat dari pembeli E-Commerce Hal. 24 In Country Training 2002 • tabel order tabel ini akan menyimpan seluruh informasi yang umum dari pesanan user Struktur dari tabel order : Field Tipe Panjang Keterangan ID_Order Char 4 Nomer identifikasi pemesanan Status_Order Char 40 Status pemesanan (baru atau sudah checkout) Pembeli Char 4 Nama Pembeli Alamat Char 4 Alamat dari pembeli Kota Integer - Nama kota asal pembeli KodePos Integer - Kode pos dari alamat pembeli Char 100 Total pembelian Total_Order Pajak Pajak pembelian 2.3.2. Halaman Keranjang Belanja Implementasi dari halaman keranjang belanja (shopping basket) merupakan bagian yang paling kompleks dari aplikasi online-bookstore. Pada dasarnya fasilitas sederhana atau yang paling dasar dari shopping basket adalah menambah item belanja dan membatalkan pemesanan, sedangkan aktifitas lainnya seperti menghapus item, mengganti jumlah pesanan dan implementasi user name dan password, tidak dibahas disini. Berikut ini implementasi dari halaman keranjang belanja yang disimpan dalam file keranjang.php : <? Include “db.inc”; # tambahkan item baru ke dalam keranjang belanja if ($ID_Judul!=”” && $order==”ADD”) { # Buat satu, jika belum ada order # $ID_Order adalah sebuah cookie if ($ID_Order==””) { $sqlorder=”Select max(ID_Order) from orders”; if (!hasil=mysql_query($sqlorder,$sambung)) { echo mysql_error(); exit(); } $baris=mysql_fetch_row($hasil); $ID_Order=$baris[0]; $ID_Order++; E-Commerce Hal. 25 In Country Training 2002 $sqltambah=”insert into orders(ID_Order,Status_Order) values ($ID_Order,’N’); if (!mysql_query($sqltambah,$sambung)) { echo mysql_error(); exit(); } # simpan session $ID_Order setcookie(“ID_Order”,$ID_Order); } # sisipkan item ke dalam order $orderinsert=”Select max(Urut_Order) From Order_details Where ID_Order=$ID_Order”; If (!$hasil=mysql_query($orderinsert,$sambung)) { echo mysql_error(); exit(); } $baris=mysql_fetch_row($hasil); $Urut_Order=$baris[0]; $Urut_Order++; $sqltambah=”Insert into order_details (ID_Order,Urut_Order,ID_Judul,Qty) Values ($ID_Order,$Urut_Order,’$ID_Judul’,’$Qty’)”; If (!mysql_query($sqltambah,$sambung)) { echo mysql_error(); exit(); } } else if ($order==”cancel”) { $sqlhapus=”Delete from order_details where ID_Order=$ID_Order”; mysql_query($sqlhapus,$sambung); $sqlhapus=”Delete from order where ID_Order=$ID_Order”; mysql_query($sqlhapus,$sambung); # hapus variabel session setcookie(“ID_Order”); } ?> <h1>Keranjang Belanja </h1> <? If ($ID_Order!=””) { # tampilkan semua item dalam keranjang belanja E-Commerce Hal. 26 In Country Training 2002 $sqltampil=”Select judulbuku.ID_Judul, judulbuku.Judul, (judulbuku.Harga * order_details.Qty), order_details.Qty, judulbuku.Harga, order_details.ID_Order From order_details, judulbuku Where order_details.ID_Judul=judulbuku.ID_Judul And order_details.ID_Order=$ID_Order”; If (!$hasil=mysql_query($sqltampil,$sambung)) { echo mysql_error(); exit(); } echo (“<table width=500>\n”); while ($baris=mysql_fetch_row($hasil)) { echo (“<tr>”); echo (“<td width=200> $baris[1]”); echo (“<td width=100> $baris[4]”); echo (“<td width=100> $baris[3]”); echo (“<td width=100> $baris[2]”); } echo (“</table>\n”); # hitung sub total $sqltotal=”Select sum(judulbuku.Harga*order_details.Qty From order_details, judulbuku Where order_details.ID_Judul=judulbuku.ID_Judul And order_details.ID_Order=$ID_Order”; If (!$hasil=mysql_query($sqltotal,$sambung)) { echo mysql_error(); exit(); } $baris=mysql_fetch_row($hasil); echo (“Sub total pemesanan = $baris[0]<br>\n”); echo (“<p>”); echo (“<a href=’checkout.php’>Pembayaran Pesanan</a><br>\n”); echo (“<a href=’keranjang.php?order=cancel’>Hapus Pesanan</a><br>\n”); echo (“<a href=indek.php’>Lanjutkan Proses Belanja</a>\n”); } else { echo (“<center><h3> Tidak ada item dlm Keranjang Belanja</h3></center>\n”); } E-Commerce Hal. 27 In Country Training 2002 ?> Keterangan untuk tiap perintah dalam script keranjang.php diatas : • Awalnya akan dilakukan koneksi ke database • Kemudian variabel $ID_Judul diperiksa, selanjutnya buku dengan judul ini akan ditempatkan ke keranjang belanja dengan memeriksa variabel $order. • Jika perlu dilakukan penambahan item belanja ke dalam keranjang belanja, maka perlu dipastikan atau diperiksa pesanan yang sedang aktif (current_order). Hal ini dilakukan dengan memeriksa variabel cookie ID_Order. • Jika ID_Order belum ada, maka pesanan baru akan dibuat. Pesanan baru ini akan dicatat dalam tabel order, dan session pemesanan akan dicatat dalam cookie $ID_Order. • Kemudian item yang dipesan ditambahkan ke dalam daftar detail pesanan, yaitu pada tabel order_details • Jika item $ID_Judul tidak sedang ditambahkan ke daftar detail pesanan (tabel order_detail) maka akan diperiksa apakah ada permintaan pembatalan pesanan yang ditandai dengan isi variabel $order. • Jika terdapat pembatalan, maka pesanan dihapus dari database dan session belanja ini dihapus dengan menghapus cookie $ID_Order. • Dan yang terakhir seluruh item keranjang belanja akan ditampilkan ke user beserta sub total pemesanan. • 2.4. Pada bagian bawah halaman keranjang belanja, terdapat tiga link yaitu : o Untuk melakukan pembayaran (checkout) o Untuk pembatalan pesanan o Link ke halaman depan atau menu utama (indek.php ). Bagian Pembayaran (Check Out) Ada beberapa alternatif yang dapat digunakan untuk mengimplementasikan proses pembayaran pada online-bookstore, meliputi beberapa aspek yang menjadi pilihan implementasi. 2.4.1. Beberapa Alternatif Proses Check Out Pada aplikasi online-bookstore, proses checkout meminta informasi pesanan pembeli. Informasi yang diperlukan meliputi alamat, nomor credit card, dan informasi belanja yang dilakukan user. Hal pertama yang dilakukan adalah mendesain fungsionalitas pembayaran dengan menyediakan transfer data yang aman melalui SSL (secure socket layer). Pada umumnya toko-toko online akan membawa user ke web server yang aman pada waktu melakukan proses pembayaran (checkout). dahulu Untuk melakukan hal ini, maka pertama harus meminta terlebih perijinan/certificate, E-Commerce missal dari VeriSign (http://www.verisign.com) kemudian Hal. 28 In Country Training 2002 menginstalnya pada server yang digunakan. Proses instalasi SSL bergantung pada web server yang digunakan. Kemudian hal kedua yang perlu mendapat perhatian adalah data apa saja yang diperlukan yang didapat dari informasi pembeli pada saat melakukan pembayaran. Misalnya apakah pembeli diijinkan untuk memiliki alamat penagihan dan pengiriman yang berbeda. Hal terpenting lainnya adalah bagaimana aplikasi online anda menyediakan pemrosesan pembayaran, misal menawarkan pembayaran dengan kartu kredit, juga adanya hubungan antara online katalog dengan bank yang diperlukan untuk melakukan pemrosesan pembayaran.Proses pembayaran (checkout) yang diimplementasikan pada pembahasan ini meliputi hal yang sangat sederhana berikut ini : • Pembeli hanya boleh memiliki alamat penagihan yang sama dengan alamat pengiriman • Setelah itu akan ditampilkan total pesanan • Kemudian pembeli diminta mengisi informasi pembayaran • Tampilan terakhir adalah ucapan terima kasih dan nomer identifikasi pemesanan. • Sedangkan SSL dan pemrosesan kartu kredit tidak diimplementasikan. 2.4.2. Desain Database untuk Pembayaran (Checkout) Untuk memproses pembayaran (checkout) diperlukan tabel tambahan menyimpan seluruh informasi untuk pesanan yang dilakukan oleh pembeli. untuk Tabel tersebut dinamakan order_payments. Berikut ini struktur dari table order_payments Struktur table order_payments Field Tipe Panjang Keterangan ID_Order Char 4 Foreign Key dari tabel orders ID_Credit_card Char 40 Nomer credit card pembeli Exp_Credit_card Char 4 Expiration date dari credit card Tipe_Credit_card Char 4 Tipe dari credit card (Visa, Master Card, dll). Integer - Nama pembeli yang tercantum di credit card Nama_Credit_card Primary key dari tabel order_payments tersebut adalah ID_Credit_card yang merupakan identifikasi nomer card dari pembeli. E-Commerce Hal. 29 In Country Training 2002 2.4.3. Halaman Checkout pertama Halaman pertama untuk proses pembayaran berupa suatu form yang meminta pembeli untuk memasukkan informasi alamatnya. Belum dilakukan pemrosesan pada halaman ini. Berikut ini adalah listing file checkout.php : <html> <head> <title>Checkout</title> </head> <body> <center> <h2> Checkout </h2> <form action=”checkout2.php” method=”POST”>Nama Pembeli : <br> <input type=”text” name=”Pembeli” maxlength=”60”> <br> Alamat : <br> <input type=”text” name=”alamat” maxlength=6”60”> <br> Kota : <br> <input type=”text” name=”kota” maxlength=6”60”> <br> Kode pos : <br> <input type=”text” name=”KodePos” maxlength=6”60”> <br><br> <input type=”submit” values=”Next”> </form> <p> </body> </html> 2.4.4. Halaman Checkout Kedua Halaman Pembayaran yang berikutnya yaitu chekout2.php melakukan validasi terhadap informasi yang dimasukkan oleh pembeli pada form pembayaran. Semua field harus terisi. Kemudian setelah itu dilakukan penghitungan total pembelian dan besarnya pajak. Setelah itu baru pembeli diminta untuk mengisi informasi credit card-nya. Berikut ini adalah isi file checkout2.php : <html> <head> <title>Checkout</title> </head> <body> <center><h2>Checkout</h2></center> <? Include “konek.inc”; E-Commerce Hal. 30 In Country Training 2002 If ($ID_Order!=””) { if ($Pembeli==””) $errStr+=”Nama pembeli belum diisi<br>”; if ($Alamat==””) $errStr+=”Alamat pembeli belum diisi<br>”; if ($Kota==””) $errStr+=”Kota pembeli belum diisi<br>”; if ($KodePos==””) $errStr+=”Kode pos dari alamat belum diisi<br>”; if (errStr!=””) echo (“$errStr<br>”); # Hitung total pembelian dan pajaknya $total=”Select sum((judulbuku.Harga*order_details.qty)) From order_details, judulbuku Where order_details.ID_Judul=judulbuku.ID_Judul And order_details.ID_Order=$ID_Order”; If (! Mysql_query($total, $sambung) { echo mysql_error(); exit(); } $baris=mysql_fetch_row($hasil); # pajak = 10% $taxrate=0.1; $pajak=$baris[0] * $taxrate; $total=$baris[0]+$pajak; # Lakukan update pada data $perintah=”Update order set Pembeli=’$Pembeli’,Alamat=’$Alamat’, Kota=’$Kota’,KodePos=’$KodePos’,Total_Order=’$Total_Order’, Pajak=’$Pajak Where ID_Order=’$ID_Order’ “; If (! Mysql_query($perintah, $sambung) { echo mysql_error(); exit(); } echo (“Total pembelian = $Total_Order<br>\n”); echo (“Pajak pembelian = $Pajak<br>\n”); ?> <form action=”checkout3.php” method=”POST”> Nomer Credit Card: <br> <input type=text name=”ID_credit_card” size=16 maxlength=16><br> Tipe Credit Card: <br> <select name=”Tipe_credit_card”> <option value=’Visa’>Visa <option value=’Master Card’>Master Card E-Commerce Hal. 31 In Country Training 2002 <option value=’Dinner’s Club >Dinner’s Club </select> <br> Experation Date: <br> <input type=text name=”Exp_Credit_card” size=5 maxlength=5> <br> <input type=submit value=”Next”> </form> <? } else echo(“<center><h3>Order tidak valid</h3></center>\n”); ?> </body> </html> 2.4.5. Halaman Checkout Ketiga Yang dikerjakan pada halaman pembayaran selanjutnya yaitu checkout3.php adalah: melakukan validasi informasi credit card, setelah valid, kemudian tabel orders diupdate dengan menggunakan informasi ini dan status order ditandai dengan “checked out” (CO). Yang terakhir pembeli diberi nomer pemesanan untuk melengkapi transaksi pembelian yang sudah dilakukan. <? Include “konek.inc”; If (ID_Order!=””) { if (ID_Credit_card==””) $errStr+=”Nomer credit card belum diisi<br>”; if (Tipe_Credit_card==””) $errStr+=”Tipe credit card belum diisi<br>”; if (Exp_Credit_card==””) $errStr+=”Expired Date credit card belum diisi<br>”; if (Nama_Credit_card==””) $errStr+=”Nama pemilik credit card belum diisi<br>”; if ($errStr!=””) echo (“$errStr<br>”); else { $sqlsisip=”Insert into order_payments(ID_Order, ID_Credit_card, Tipe_credit_card, Exp_credit_card, Nama_credit_card) Values ($ID_Order, ‘$ID_Credit_card’, ‘$Tipe_credit_card’, ‘$Exp_Credit_card’, ‘$Nama_Credit_card’) “; if (! Mysql_query($sqlsisip,$sambung) { echo mysql_error(); exit(); } $sqlubah=”Update orders Set Status_Order=’CO’ Where ID_Order=$ID_Order”; if (! Mysql_query($sqlsisip,$sambung) E-Commerce Hal. 32 In Country Training 2002 { echo mysql_error(); } setcookie(“ID_Order”); exit(); ?> <html> <head> <title>Checkout</title> </head> <body> <center> <h2> Checkout </h2> </center> <? Echo (“Terima kasih atas Pembelian yang telah anda lakukan<br>\n”); Echo (“Beli lagi lain waktu …see you …”); Echo (“Nomer pemesanan anda : $ID_Order”); } } else echo (“<center><h3>Nomer Order tidak valid</h3></center>”); ?> <p> <a href=indek.php>Halaman Utama</a> </body> </html> 2.4.6. Penyelesaian Fungsionalitas Online BookStore Fungsi dari sebuah toko buku online (online bookstore) telah selesai dilakukan. Selanjutnya adalah melakukan pengerjaan pada database katalog sekaligus melakukan perencanaan maintenance katalog. 2.5. Pemeliharaan Katalog Yang pertama harus dilakukan dalam membangun aplikasi pemeliharaan (maintenance) katalog adalah hal-hal apa yang harus dilakukan, siapa yang melakukan, perubahan apa yang dibutuhkan terhadap data, Aplikasi pemeliharaan katalog yang direncanakan meliputi : • penambahan judul buku • memodifikasi judul buku • penghapusan judul buku Aplikasi tersebut dikerjakan oleh staff yang bertanggung jawab terhadap stok barang (bagian inventory). 2.5.1. Halaman Daftar (List) Judul Buku E-Commerce Hal. 33 In Country Training 2002 Halaman ini menyediakan fasilitas penambahan buku baru dengan menekan tombol Add. User juga dapat memodifikasi ataupun menghapus buku dengan tombol Modify dan Delete. Berikut ini adalah listing file mt_list.php : <html> <head> <title>Pemeliharaan Katalog</title> </head> <h2>Pemeliharaan Katalog </h2> <body> Pilih Operasi Maintenance yang akan dilakukan : <p> <form action=’mt_edit.php’ method=POST> <select name=ID_Judul size=10> <? Include “konek.inc”; $sqljudul=”Select Judul, ID_Judul From judulbuku”; if (! Mysql_query($sqljudul,$sambung)) { echo mysql_error(); exit(); } while ($baris=mysql_fetch_row($sqljudul)) { echo (“<option value=$baris [1]>$baris[0] \n”); } ?> </select> <p> <input type=submit name=action_type value=Add> <input type=submit name=action_type value=Modify> <input type=submit name=action_type value=Delete> </form> <p> <a href=indek.php>Ke Halaman Utama</a> </body> </html> 2.5.2. Penambahan dan Perubahan Judul Buku Berikutnya adalah pembahasan fungsionalitas halaman web untuk melakukan penambahan dan perubahan pada stok buku. Operasi yang dilakukan sesuai yang dipilih oleh E-Commerce Hal. 34 In Country Training 2002 user pada halaman sebelumnya (Add, Modify atau Delete). Pertama kali akan dideklarasikan semua variabel yang digunakan untuk operasi yang dimaksud. Variabel action type pada listing program berikut merupakan variabel hidden yang akan ditransfer ke halaman berikutnya. Berikut ini listing dari file mt_edit.php : <html> <head> <title>Pemeliharaan Data</title> </head> <body> <? Include “konek.inc”; If ($action_type==”Add”) { // tambahkan judul buku baru $Tipe_Ctg=””; $ID_Judul=””; $Judul=””; $Harga=””; $Notes=””; $Th_terbit=””; $ID_Pen=””; } else { // judul buku telah ada $sqljudul=”Select * From judulbuku Where ID_Judul=’$ID_Judul’ “; if (! Mysql_query($sqljudul,$sambung)) { echo mysql_error(); exit(); } $baris=mysql_fetch_row($sqljudul); $ID_Judul=$baris[0]; $Judul=$baris[1]; $Tipe=$baris[2]; $ID_Pen=$baris[3]; $Harga=$baris[4]; $Th_terbit=$baris[5]; $Note=$baris[6]; } echo (“<center><h3> Pemeliharaan Katalog </h3> </center>\n”); echo (“<p><p>”); echo (“<form action=’mt_commit.php’ method=POST>”); E-Commerce Hal. 35 In Country Training 2002 # Pilih Kategori $sqlkategori=”Select Tipe_Ctg, Nama_Ctg From tipe_kategori”; if (! Mysql_query($sqlkategori,$sambung)) { echo mysql_error(); exit(); } echo (“Tipe : <br>\n”); while ($baris=mysql_query($sqlkategori,$sambung)) { echo (“value=’$baris[0]’>$baris[1] \n”); } echo (“Judul : <br>\n”); echo (“<input type=text name=Judul size=30 maxlength=80 values=’$Judul’><br>\n”); echo (“Harga : <br>\n”); echo (“<input type=text name=Harga size=10 maxlength=10 values=’$Harga><br>\n”); echo (“Tahun terbit : <br>\n”); echo (“<input type=text name=Th_terbit size=10 maxlength=10 values=’$Th_terbit><br>\n”); echo (“Keterangan : <br>\n”); echo (“<textarea name=notes cols=40 rows=5>\n”); echo (“$notes</textarea><br>\n”); echo (“<input type=hidden name=action_type value=’$action_type’>\n”); echo (“<p><p>\n”); echo (<input type=submit value=’Perubahan telah dilakukan’>\n”); ?> </body> </html> 2.5.3. Pelaksanaan Modifikasi Stok Barang Semua perubahan yang diset pada halaman sebelumnya akan dilaksanakan pada halaman ini. Operasi Query dengan perintah SQL yang dilakukan sesuai dengan operasi yang dipilih oleh user (Add, Modify atau Delete). Dengan demikian selesailah sudah semua tahapan implementasi yang dibuat untuk toko buku online. <html> <head> <title>Pemeliharaan Katalog</title> E-Commerce Hal. 36 In Country Training 2002 </head> <center> <h3>Pemeliharaan Katalog</h3> <? Include “konek.inc”; If ($action_type==”Add”) { $perintah=”Insert into judulbuku(ID_Judul, Judul, ID_Pen, Harga, Notes, Th_terbit, tipe) values (‘$ID_Judul’, ‘$Judul’, ’$ID_Pen’, ‘$Harga’, ‘$Notes’, ‘$Th_terbit’, ’$tipe’)”; if (! mysql_query($perintah, $sambung) { echo mysql_error(); exit(); } echo (“Record buku telah ditambahkan<br>\n”); } else if ($action_type=”Modify”) { $perintah=”Update judulbuku set Judul=’$Judul’, ID_Pen=’$ID_Pen’, Harga=’$Harga’, Notes=’$Harga’, Th_terbit=’$Th_terbit’, Tipe=’$Tipe’ Where ID_Judul=’$ID_Judul’ “; if (! mysql_query($perintah, $sambung) { echo mysql_error(); exit(); } echo (“Record buku telah diubah<br>\n”); } else if ($action_type=”Delete”) { $perintah=”Delete judulbuku Where ID_Judul=’$ID_Judul’ “; if (! mysql_query($perintah, $sambung) { echo mysql_error(); exit(); } echo (“Record buku telah dihapus<br>\n”); } ?> <p> <a href=mt_list.php>Back</a> </body> E-Commerce Hal. 37 In Country Training 2002 </html> E-Commerce Hal. 38
© Copyright 2024 Paperzz