download

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