KELOMPOK
:
Citra Sari Dini Rohaeni Ema Nur Luthfiyani Krisyanti Amalia Ratih Rahmawati
(0607127) (0607131) (0607263) (060641) (060541)
TUGAS RISET OPERASI
JURNAL MODEL JARINGAN
Analisis dan Perancang Perancangan an Prototipe Aplikasi E-Commer E-Commerce ce
Abstrak
Aplikasi perangkat lunak komputer dan Internet telah berkembang pesat pada dasawarsa ini, demikian pula dengan aplikasi web dan browser internet maupun intranet. Aplikasi Apl ikasi E-C E-Comm ommerce erce tela telah h lam lamaa berke berkembang mbang diawali deng dengan an EDI (Ele (Electro ctronic nic Data Interchange) yang telah berkembang dalam lingkup internasional. Dalam makalah ini diurai diu raikan kan me menge ngenai nai ars arsite itektu kturr sis sistem tem,, too tooll dan kon konfig figura urasi si ya yang ng dip diperl erluka ukan n unt untuk uk mengimplementasi mengimpl ementasi aplikasi web e-commerc e-commerce, e, konsiderasi masalah keamanan sistem, juga perancangan dari sisi diagram alur aplikasi dan perancangan basis data. Digunakan bahasa pemrograman pemrogram an PHP karena kemudahan dalam pemrograman, dan kelengkapa kelengkapan n fitur untuk mengi me ngimpl mplem ement entasi asi sis sistem tem e-c e-com ommer merce, ce, kem kemamp ampuan uan unt untuk uk cro cross ss pla platfo tform rm,, ser serta ta kemudahan untuk deployment bagi pengembang aplikasi.
1. Pendahuluan
Definisi E-Commerce ( Electronic Commerce) : E-commerce merupakan suatu cara berbelanja atau berdagang secara online atau direct selling yang memanfaatkan fasilita fasi litass Inter Internet net dim dimana ana terda terdapat pat web website site yang dapat men menyedi yediakan akan laya layanan nan “ge “gett and delive del iver“. r“. EE-com comme merce rce aka akan n me merub rubah ah se semua mua keg kegiat iatan an ma marke rketi ting ng dan jug jugaa sek sekal aligu iguss memangkas memang kas biaya-biaya operasional untuk kegiatan trading (perdagangan) . Proses yang ada dalam E-commerce adalah sebagai berikut :
Presentasi electronis (Pembuatan (Pembuatan Web site) untuk produk dan layanan.
Pemesanan Pemesana n secara langsung dan tersedianya tagihan.
1
Otomasi account Pelanggan secara aman (baik nomor rekening maupun nomor Kartu Kredit).
Pembayaran Pembaya ran yang dilakukan secara Langsung (online) dan penanganan transaksi
Keuntungan yang diperoleh dengan menggunakan transaksi melalui E-commerce bagi suatu perusahaan adalah sebagai berikut :
Meningkatkan pendapatan dengan menggunakan online channel yang biayanya lebih murah.
Mengurangii biaya-biaya yang berhubungan dengan kertas, seperti biaya pos surat, Mengurang pencetakan, report, dan sebagainya sebagainya..
Mengurangi keterlambatan dengan mengunakan transfer elektronik / pembayaran yang tepat waktu dan dapat langsung dicek.
Mempercepat Memperc epat pelayanan ke pelanggan, dan pelayanan lebih responsif.
Gambar 1. Contoh Aplikasi E-Commerce : Pembelian CD dengan Kartu Kredit
2
Gambar 2. Arsitektur Client/Server 2. Arsitektur dan Konfigurasi Sistem
Arsitektu Arsi tekturr dasa dasarr dari aplikasi web ini adal adalah ah arsi arsitektu tekturr clie client/se nt/server rver.. Arti Artinya nya pemrosesan aplikasi ini dijalankan melibatkan kedua sisi yakni sisi mesin server pusat dan sisi client. Hal ini berbeda dengan misalnya aplikasi Microsoft Word yang hanya melibatkan satu sisi saja yaitu sisi client. Atau bagi pengguna mesin VAX yang hanya menggunakan sisi server saja sedangkan sisi client hanya dumb terminal saja yang tidak melakukan pemrosesan pemrosesan apapun di sisi client. Arsitektur Client/Se Client/Server rver Gambar 2. Arsitektur Client/Server
2.1 Stateless Web Server
Untuk Un tuk apl aplika ikasi si EE-Co Comm mmerc ercee ini we web b ser server ver har harus us dap dapat at me mengi nginga ngatt sia siapa pa / identitas pengguna yang sedang melakukan browsing setiap halaman. Pada dasarnya aplikasi web dan protokol HTTP adalah stateless. Artinya setiap merespon sebuah request HTTP, server akan selesai bekerja (complete) dan tidak melakukan pencatatan apa yang telah dilakukan oleh pengguna sebelumnya dan terhadap siapa identitas pengguna. Server memperl mem perlakuka akukan n infor informasi masi perm perminta intaan an (req (request uest)) seca secara ra seri serial, al, satu pers persatu atu pada saat request masuk. Tidak ada koneksi permanen (persistence) yang berjalan setelah sebuah halaman telah selesai dilayani / dikerjakan.
3
Gambar 3. Perbandingan State dalam Sistem Aplikasi: A.State yang kontinyu dalam aplikasi desktop, dan B.State B.Stateless less protokol dalam aplikasi web
Agar sebuah situs web mempunyai memori / state, dalam hal ini aplikasi ini mamp ma mpu u me mengi nginga ngatt sia siapa pa me meme mesa san n apa be beber berapa apa inf infor orma masi si ya yang ng me mengi ngide denti ntifik fikasi asi pengguna harus dikirim dengan setiap request halaman web. Informasi tersebut disimpan dengan menggunakan session. Session tersebut dipergunakan untuk merekam / tracking aktivitas pengguna yang melalui sejumlah halaman pada website, misalnya pada jenis aplikasi Shopping Cart
4
(kereta belanja). Direkam pula informasi identitas pengguna yang memiliki kereta belanja tersebut. Dengan Deng an PHP PHP,, untuk peng penggunaa gunaan n sess session ion ini mula mula-mul -mulaa dila dilakuka kukan n peng pengatura aturan n pada pada fil filee php php.i .ini ni ya yang ng me menun nunjuk jukkan kan se sessi ssion on dim dimula ulaii (st (start art). ). De Denga ngan n ini PH PHP P aka akan n membuatt suatu identifier unik dan file yang berkaitan, yang disimpan di server (lokasinya membua di atur di php.ini dan nilai defaultnya di direktori /tmp). Kemudian pada saat pengguna berkunjung pada halaman-halaman halaman-halaman situs web, semua informasi variabel yang dipilih oleh pengguna akan disimpan dalam file pada server, dan semua script yang dibutuhkan untuk melacak sebagai identifier unik. Impleme Impl ementasi ntasi sess session ion dapa dapatt mem memperg pergunaka unakan n cook cookie ie yang disi disimpa mpan n pada sisi client, atau dipropagasikan melalui alamat URL. Untuk penggunaan cookie, yaitu dengan passing variabel melalui cookie yang meny me nyim impan pan inf inform ormasi asi sem semua ua el elem emen en bar barang ang bel belanj anjaa dan har harga ganya nya.. Na Namu mun n hal ini memiliki
keterbatasan
yaitu
dari
(http://www.netscape. (http://www .netscape.com/newsre com/newsref/std/cookie_spec f/std/cookie_spec.html) .html) mengenai spesifikasi cookie yang hanya mengijinkan 20 cookie per domain dan berukuran hanya 4 bytes per cookie. Cara Ca ra lai lain n ada adalah lah den denga gan n me membe mberi ri ide identi ntitas tas / ide identi ntifie fierr uni unik k pad padaa ma masin sing-m g-masi asing ng pengguna, suatu nilai unik yang mengidentifikasi siapa pengguna tersebut. Sehingga pada saat pengguna menambahkan satu item pada kereta belanja, informasi yang berkaitan dengan identifier unik tadi disimpan di komputer server. Jika mengguna menggunakan kan cookie untuk fungsi penyimpan informasi tadi, diperlukan membuat string unik yang akan diletakkan dalam cookie, dalam direktori di server akan terdapat sebuah file yang memiliki nama yang sama sebagai ID pengguna yang unik. Dalam file tersebut dapat disimpan semua variabel yang berkaitan dengan pengguna. Contohnya terdapat array berisi item-item barang yang ditambahkan oleh seorang pengguna ke dalam kereta belanjanya. Terdapat keterbatasan penggunaan cookie, yakni bila browser pengguna di atur untuk menolak (reject) cookie. Metode lain yang dapat digunakan adalah dengan propagasi URL, yaitu dengan mengakti meng aktifkan fkan flag – –enabl enable-tra e-trans-si ns-sid d dala dalam m konfi konfigura gurasi si PHP PHP,, hal ini berg berguna una agar sessio ses sion n id aka akan n sec secara ara oto otoma matis tis dit ditam ambah bahkan kan ke set setia iap p rel relati ative ve lin link k pad padaa hal halam amananhalaman web setiap kali session telah dimulai.
2.2 Konfigurasi Sistem dan Tool Yang Digunakan Di gunakan
Masa Ma sala lah h la lain in da dala lam m ap apli lika kasi si in inii ad adal alah ah me meng ngen enai ai as aspe pek k ke keam aman anan an da dala lam m memperoleh informasi dari pengguna, terutama data mengenai penggunaan kartu kredit. 5
Inform Inf ormasi asi ini per perlu lu div diveri erifik fikasi asi ole oleh h ins instit titusi usi ya yang ng ber berkua kuali lifik fikasi asi da dan n me meme merlu rluka kan n pengaturan konfigurasi serta penggunaan beberapa macam tool. Dalam Da lam me memba mbangu ngun n apl aplika ikasi si ini dip diperg erguna unaka kan n alg algori oritma tma unt untuk uk me meme melih lihara ara (mai (m ainta ntain in))
stat st ate, e, pe peng ngam ambi bila lan n
info in form rmas asii
seca se cara ra se secu cure re te terh rhad adap ap ka kart rtu u
kred kr edit it,,
menggunakan menggunaka n kode pemrogra pemrograman man khusus dan penggunaan opsi instalasi khusus. Di bawah ini akan dibahas mengenai teori dasar enkripsi dan sekuriti Web. Kemudian akan dibahas tool mandatory untuk instalasi web server Apache.
2.2.1 Enkripsi Public-Key / Private-Key
Mesin di web menggunakan skema keamanan Public-key/Private-key. Artinya komputer yang akan berkomunikasi menggunakan data terenkripsi harus memiliki dua buah kunci untuk mengenkripsi data dan mendekripsinya. Pertama, public-key tersedia bagi siapa saja yang ingin melakukan komunikasi terhadapnya. Sehingga siapapun yang ingin melakukan komunikasi terhadap sebuah mesin secara secure akan memiliki salinan dari da ri Pu Publ blic ic ke key y me mesi sin n te ters rseb ebut ut.. Na Namu mun n pu publ blic ic ke key y in inii ti tida dak k cu cuku kup p un untu tuk k da dapa patt mendekripsi data, masih dibutuhkan Private key yang bersifat rahasia. Misalnya pada pemrosesan kartu kredit dengan sebuah bank, nasabah memiliki Public key bank tersebut dimana ia dapat melakukan dekripsi informasi, namun masih diperlukan Private key yang disimpan oleh bank tersebut, untuk dapat melakuka melakukan n dekripsi data. Pengiriman Data Terenkripsi antara Pengguna dengan Server E-Commerce
Gambar 4. Pengiriman Data Terenkripsi antara Pengguna dengan Server E-Commerce
2.2.2 Sertifikat
Meski masalah keamanan sudah ditangani dengan keberadaan Public key / Private key, masih ada masalah yang perlu diperhatikan yakni pesan / data yang diperoleh adalah benar dari pihak yang memiliki otorisasi, bukan dari pihak lain yang tidak berkepentingan atau yang menyalahgunakan. Untuk itu dibutuhkan pihak ketiga untuk memverifikasi pesan yang datang. Pesa Pe san n te tere renk nkri rips psii ya yang ng di diki kiri rim m da dan n di dite teri rima ma ak akan an me memi mili liki ki se sema maca cam m â €˜signature’,, dan verifikasi selanjutnya dilakukan terhadap ‘signature’ tersebut. €˜signature’ 6
Untuk itu, organisasi yang akan mempergunakan komunikasi melalui web memerlukan kerjasama kerja sama denga dengan n orga organisas nisasii lain yang meng mengelua eluarkan rkan serti sertifikat fikat yang mem memveri verifika fikasi si pengirim pesan. Organisasi ini pulalah yang memberikan Publik key dan Private key. Salah satu contoh organisasi yang menerbitkan sertifikat sekuriti adalah VeriSig VeriSign. n.
2.2.3 Secure Protocol
Protokol HTTP secara alamiah bersifat terbuka terhadap penyusupan. Paket-paket data yang melintas melalui router Internet dapat disadap dan dibaca. Namun informasi kartu kredit diinginkan agar tidak mudah terbaca. Untuk itu dibutuhkan penggunaan Secure Socket Layer atau SSL. SSL adalah protokol tambahan dimana key dan sertifikat dari suatu situs e-commerce akan ditransfer ke browser atau ke server lain. Melalui SSL, browser akan dapat memverifikasi sertifikat dari situs tersebut sehingga dapat mengetahui identitas pengirim sebenarnya. Tata cara enkripsi ini masih mengandung kelemahan kelemahan yakni pada aspek sumber daya manusia apabila kurang jujur, yakni apabila terjadi akses tidak sah dilakukan oleh orang yang sudah berada dalam sistem.
2.2.4 Enkripsi dan Tool Sekuriti Untuk web server Apache, ditambahkan modul SSL pada saat instalasinya. Untuk dapat melakukan autorisasi kartu kredit, diperlukan sertifikat. Contoh yang paling sering digunakan adalah VeriSign, yang memiliki layanan PayfloPro. Sete Se tela lah h Apa pach chee di diko konfi nfigu gura rasi si de deng ngan an SS SSL, L, ma maka ka we webs bsit itee ap apli lika kasi si da dapa patt berkomunikasi dengan browser secara secure. Cirinya: URL dimulai dengan https:// , browser akan mencari Port 443 dan mencari serifikat. Dalam PHP, banyak fitur yang dapat digunakan untuk dapat berhubungan dengan situs lain. Misalnya fungsi fopen(). Namun fungsi-fungsi berhubungan dengan filesystem atau URL tidak mendukung bekerja dengan SSL, sehingga diperlukan kumpulan fungsi khusus atau program diluar PHP. Opsi-opsi dalam PHP4 dapat mendukung layanan proses pembayaran.
Komunikasi Antar Situs dalam Aplikasi E-Commerce
7
Gambar 5. Komunikasi Antar Situs dalam Aplikasi E-Commerce
2.2.5 Penggunaan Firewall
Firewa Fir ewall ll digu digunakan nakan untuk mel melindun indungi gi jari jaringan ngan loka lokall dari serangan serangan luar luar.. Ada beberapa pilihan untuk menempatkan web server :
web server ditempatkan di luar dari Firewall (lihat gambar 6), adapun keuntungan denga den gan n me menem nempat patkan kan ser server ver dil diluar uar dar darii fir firew ewal alll ada adalah lah bah bahwa wa we web b ser server ver mungkin saja menjadi subject penyerangan dari pihak luar; maka mereka “sniffer” tidak akan dapat meningkatkan serangan berikutnya untuk merusak server-server lainnya. Dengan kata lain web server tidak akan dapat keuntungan dari segala macam bentuk pelindungan yang di usahakan firewall.
Web Server di Luar Firewall
8
Gambar 6. Web Server di Luar Firewall
Web server di dalam firewall (lihat gambar 7). Jika diterapkan seperti ini, perlu dikonfigurasi firewall menjadi akan melewatkan melewatkan transaksi pada TCP port 80, atau denga den gan n me memb mbole olehka hkan n sec secara ara la langs ngsung ung me mele lewa watka tkan n pak paket et ma maupu upun n den denga gan n menggunakan mekanisme proxy. Keuntungan dari menempatkan web server di dalam firewall yaitu firewall akan memblok akses dari luar yang menggunakan layanan Internet lainnya, seperti Telnet, FTP. Tetapi apabila penyusup “sniffer” ters te rseb ebut ut me meng nggu guna naka kan n ke kesa sala laha han n da dari ri pr prog ogra ram m CG CGII sc scri ript pt,, me mere reka ka ak akan an mempunyai akses tak terbatas ke jaringan lokal.
Web Server yang Diletakkan Di dalam Firewall
Gambar 7. Web Server yang Diletakkan Di dalam Firewall
Pilihan ketiga, yang paling baik, yaitu menggunakan dua firewall: satu untuk melindungi jaringan internal / lokal dan yang satunya lagi untuk melindungi web server (lihat gambar 8).
Webserver yang Diletakkan di Antara Internal Firewall dan External Firewall 9
Gambar 8. Webserver yang Diletakkan di Antara Internal Firewall dan External Firewall
2.2.6 PayFloPro dan Cybercash
Untuk penggunaan VeriSign untuk pemrosesan kartu kredit, diperlukan instalasi pustaka kode ( code library) yang diperoleh dari VeriSign. Selanjutnya Selanjutnya dikompilasi ulang dengan PHP sehingga akan dapat mengenali fungsi-fungsi fungsi-fungsi tersebut (fungsi-fungsi pfpro) . Fungsi-fungsi tersebut akan memproses permintaan (request) dan akan mengembalikan jawaban (response). Setelah itu response tersebut akan dibandingkan dengan kode yang telah diketahui, setelah itu akan diketahui apakah transaksi tersebut sukses atau tidak. Selain PayFloPro, dapat juga digunakan Cybercash, yang diinstal sebagai pustaka / library pada PHP (fungsi-fungsi cybercash).
2.2.7 CURL
Merupakan akronim dari fungsi-fungsi pustaka Client URL. Kode pustaka ini dipergunakan untuk berkomunikasi melalui Internet menggunakan sembarang protokol di sisi lawan. Kode ini mendukung Gopher, Gopher, Telnet, dan HTTP HTTPS. S. Untuk dapat menggunaka menggunakan n fungsi ini, konfigurasi instalasi PHP harus menyertakan flag –with-curl.
2.3 Pemrosesan Kartu Kredit
Pemr Pe mrose osesan san kar kartu tu kre kredit dit dil dilaku akukan kan ole oleh h per perusa usahaa haan n ya yang ng khu khusus sus unt untuk uk itu itu,, terdapat terda pat bebe beberapa rapa nama perusahaan perusahaan yang cukup dike dikenal, nal, nam namun un sem semuany uanyaa mem memili iliki ki kesamaan cara kerja. Mula-mula dikirim permintaan / request dengan informasi kartu kredit: nomor, tanggal kadaluarsa, alamat, dan sebagainya, dan kemudian perusahaan tersebut akan mengirimkan kode kembalian sebagai respon. Kode PHP di sini adalah berfu berfungs ngsii unt untuk uk me memb mband anding ingkan kan kod kodee ya yang ng dit diteri erima ma den denga gan n nil nilai ai ya yang ng did didapa apatt
10
sebelumnya dari agen pemrosesan. Untuk aplikasi ini dipergunakan Authorizenet.com sebagai pemroses kartu kredit.
3. Rancangan Aplikasi E-Commer E-Commerce ce
Gamba Ga mbaran ran apl aplika ikasi si e-c e-com omme merce rce aka akan n diu diurai raikan kan seb sebag agai ai ber beriku ikut. t. Mul Mula-m a-mula ula aplikasi akan menampilkan daftar barang yang tersedia. Lalu pengguna dapat memilih beberapa item yang ingin dibeli. Pada saat pengguna memilih suatu item barang, identitas barang tersebut dicatat, dan selanjutnya user dapat melanjutkan berbelanja / memilih item yang ya ng lai lain. n. Se Serve rverr me mengi nginga ngatt ite item m apa saj sajaa ya yang ng tel telah ah dip dipesa esan. n. Pa Pada da saa saatt pen pengg gguna una melanjutkan browsing, browsing, server memelihara track pengguna tersebut dan pengguna tersebut dapat melakukan check out terhadap item-item yang telah dipesan. Untuk dapat melaksanakan hal ini, digunakan metode untuk memelihara state seperti yang telah dibahas di bagian sebelum ini.
3.1 Rancangan Layar
Setiap halaman pada aplikasi ini memiliki tombol yang memungkinkan memungkinkan pengguna untuk langsung melakukan checkout. Pada halaman yang menampilkan daftar barang terdapat kumpulan form yang memungkin pengguna untuk memberi indikasi item mana yang akan dibeli. Setiap item dapat ditentukan secara lebih spesifik sesuai jenis barang yang ada, misalnya untuk aplikasi toko furniture online terlebih dahulu ditentukan jenis furniture meja, terdiri atas meja bulat, meja kotak, meja tulis, dan sebagainya. Form untuk pemesanan menggunakan kotak teks untuk jumlah pesanan, dan tombol ‘Order’, yang pada contoh meja tadi dicantumkan untuk masing-masing jenis meja. Selanjutnya ditampilkan satu halaman yang berisi daftar semua item yang sedang berada dalam dal am ker kereta eta bel belanj anjaa (sh (shop oppin ping g car cart). t). Ha Halam laman an ini me memu mungk ngkink inkan an pen pengg gguna una unt untuk uk menam me namba bah h ata atau u me mengu nguran rangi gi jum jumla lah h ite item m ya yang ng dip dipesa esan, n, dan me mengh nghapu apuss sua suatu tu ite item m pesanan. Pada Pa da akh akhir ir pro proses ses pem pemesa esanan nan,, dit ditam ampil pilkan kan hal halama aman n ya yang ng me mengu ngump mpulk ulkan an informasi pengguna, preferensi, dan halaman untuk memulai pemrosesan kartu kredit. Halam Ha laman an ini jug jugaa me menun nunjuk jukkan kan pe pesan san bil bilaa ada kes kesala alahan han inf inform ormasi asi ata atau u ter terdap dapat at penolakan autorisasi kartu kredit oleh agen pemroses. Selanjut Sel anjutnya nya,, sete setelah lah tran transaksi saksi sele selesai sai dipr diproses, oses, terd terdapat apat tanda teri terima ma tran transaks saksii yang mengkonfirmasi pesanan dan menyampaikan nomor id pesanan kepada pengguna.
11
Yang penti penting ng dipe diperhati rhatikan kan untu untuk k penge pengemba mbangan ngan apli aplikasi kasi e-co e-commr mmrce ce adal adalah ah informasi nomor kartu kredit dan informasi personal lainnya harus aman dan tidak mudah dilihat oleh orang yang tidak berhak.
Diagram Alir Penggunaan Aplikasi E-Commerce
12
13
Gambar 9. Diagram Alir Penggunaan Aplikasi E-Commerce
Rancangan Layar Halaman Depan Web E-Commerce
Gambar 10. Rancangan Layar Halaman Depan Web E-Commerce
Rancangan Layar Halaman Daftar Barang
Gambar 11. Rancangan Layar Halaman Daftar Barang
Rancangan Layar Halaman Daftar Pesanan
14
Gambar 12. Rancangan Layar Halaman Daftar Pesanan
Rancangan Layar Halaman Pemrosesan Kartu Kredit
Gambar 13. Rancangan Layar Halaman Pemrosesan Kartu Kredit
3.2 Rancangan Basis Data
15
Rancangan Basis Data Aplikasi Web E-Commerce Gambar 14. Rancangan Basis Data Aplikasi Web E-Commerce
Tabel Ta bel uta utama ma ya yang ng dig diguna unakan kan dal dalam am apl aplika ikasi si ini ada adala lah h tab tabel el Pe Pesa sanan nan,, ya yang ng mencatat order pemesanan. Tabel-tabel lain berelasi dengan tabel ini. Tabel Pesanan menyimpan informasi id_user, id_alamat, dan semua informasi yang dibutuhkan untuk pembayaran. Tabel Pesanan ini memiliki relasi one-to-many dengan tabel Item yang berisi informasi item-item barang yang terdapat dalam sebuah order. Informasi mengenai pengguna dan alamat pengguna dipisahkan, seorang pengguna dapat didentifikasi dari alamat e-mail yang dimilikinya, dan alamat terdiri atas alamat kantor dan rumah. Tabel Pengirim Peng iriman an beri berisi si infor informasi masi opsi yang diberikan diberikan untu untuk k peng pengirim iriman an bara barang. ng. Mis Misalny alnyaa terdapat pilihan menggunakan UPS, DHL, TIKI, Pos, dan sebagainya. Tabel Status berisi catatan mengenai status pesanan, yaitu dapat berupa status dikembalikan (backordered), dikirim diki rim (shi (shipped pped), ), atau diba dibatalka talkan n (can (cancell celled). ed). Ter Terdapa dapatt pula tabe tabell Jeni Jenis_Ka s_Kartu rtu untuk menyimpan informasi jenis kartu kredit seperti Visa, Mastercard, dan sebagainya.Tabel 1.
Tabel 1. Alamat Field
Jenis
Id_Alamat Int(11) Id_User
Kosong Ekstra
Tidak
Varchar(40) Tidak
Keterangan
Auto_increment PRIMARY KEY KEY 16
Alamat
Varchar(40) Ya Ya
Alamat2
Varchar(40) Ya
Kotaa Kot
Varchar Varc har(40 (40)) Ya
Prop
Varchar(40) Ya
Kod odeP ePos os
Var arch chaar( r(10 10)) Ya Ya
Negaraa Negar
Varchar(2 Varcha r(20) 0) Ya
Telepon
Varchar(20) Ya
Fax Fa x
Varch Va rchar( ar(20) 20) Ya
Tabel 2. Tabel Jenis_Kartu Field
Jenis
Kosong Ekstra Keterangan
Kode_Jenis_Kartu Ch Char(3) Jenis_Kartu
Tidak
Varchar(30) Tidak
Tabel 3. Tabel Pesanan Tinyint(4) Field
Jenis
Kosong De Default
Id_pesanan
double
Tidak
Id_user
Int(11)
Tidak
Id_alamat
Int(11)
Tidak
Id_status
Tinyint(4)
Tidak
Total_harga
Double
Tidak Ti
Id_pengiriman
Tinyint(4)
Tidak
Biaya_kirim
Double
Tidak
Tahun_exp_kartu Int(11)
Tidak
Bulan_exp_kartu
Tidak
Kode_jenis_kartu Char(3)
Tidak
Tgl_buat
Ekstra
Auto_ increment
Keterangan
PRIMARY KEY KEY
‘0.00’ ‘0.00’
Timestamp(14) Ya
Tabel 4. Tabel Pengiriman Field
Jenis
Id_Pengiriman Tinyint(4)
Kosong Default
Ekstra
Tidak
Auto_ increment PRIMARY KEY
Pengiriman
Varchar(20) Tidak
Per_Order
Double
Tidak
Keterangan
‘0.00’ 17
Per_Item
Double
Tidak
‘0.00’
Tabel 5. Tabel Status Field
Jenis
Kosong Ekstra
Id_S Id _Sta tatu tuss Ti Tiny nyin int( t(4) 4) Status Sta tus
Tida Ti dak k
Keterangan
Aut uto_ o_ in incr crem emen entt PR PRIM IMAR ARY Y KE KEY Y
Varchar(20 Varchar (20)) Ti Tidak dak
Tabel 6. Tabel User Field
Jenis
Kosong Ekstra
Id_User int(11)
Tidak
email
Varchar(255) Tidak
nama
Varchar(80)
Keterangan
Auto_ increment PRIMARY KEY UNIQUE
Tidak
Tabel 7. Tabel Item Field
Jenis
Kosong Keterangan
Id_pesanan
double
Tidak
PRIMARY KEY
Kode_Katagori Tinyint(4)
Tidak
PRIMARY KEY
Nomor_Barang Double
Tidak
PRIMARY KEY
Kode_R Kod e_Reg egist ister er Va Varch rchar( ar(20) 20) Ya Kode_Lokasi
Varchar(20) Ya
Jumlah
Int(11)
Tidak
Harga
Double
Tidak
3.3 Keamanan Nomor Kartu Kredit dalam Basis Data
Nomor kartu kredit tidak disimpan di dalam basis data, karena dapat mengurangi keamanan. Perangkat komputer dapat dinilai sebagai suatu alat yang tidak aman, karena dapat diakses oleh orang lain. Bila digunakan ISP (Internet Service Provider) untuk host ho stin ing g we web b si site te in ini, i, te tent ntun unya ya ak akan an sa sang ngat at di dira ragu guka kan n ke keam aman anan anny nya, a, ka kare rena na IS ISP P meng me nggu guna naka kan n sh shar ared ed se serv rver er ya yang ng di digu guna naka kan n se seca cara ra be bers rsam ama, a, me mesk skip ipun un te tela lah h menggunakan konfigurasi secure server yang ditawarkan oleh ISP tersebut. Nomor kartu kred kr edit it ya yang ng te ters rsim impa pan n da dala lam m ba basi siss da data ta ak akan an da dapa patt di diak akse sess ol oleh eh or oran ang g la lain in ya yang ng mempunyai akses terhadap mesin server. Juga tidak ada kebutuhan untuk menyimpan nomor nom or kar kartu tu kre kredit dit dal dalam am be bentu ntuk k apa apapu pun. n. Ya Yang ng dip diperl erluka ukan n ole oleh h apl aplika ikasi si ini ada adala lah h memvalidasi nomor tersebut saja, dan segera menghapusnya dari memori setelah selesai. Jika nomor kartu kredit ini tidak pernah dituliskan ke hardisk, akan menjadi sangat aman karena akan terhindar dari kemungkinan pencurian oleh yang tidak berhak. 18
Komunikasi Antar Situs dan Penghapusan Informasi Kartu Setelah Proses Selesai
Gambar 15. Komunikasi Antar Situs dan Penghapusan Informasi Kartu Setelah Proses Selesai
4. Kode Program
Pemrogr Pem rograma aman n untuk apli aplikasi kasi e-co e-comm mmerce erce ini diim diimplem plementa entasika sikan n deng dengan an PHP PHP.. Fungsi-fungsi utama yang dipergunakan dalam kode program di sini adalah fungsi yang berhubungan dengan session dan fungsi yang berkaitan dengan pustaka cURL. Konsep pemrograman berorientasi objek digunakan dalam kode program ini. Digunakan sifat inheritance, yakni jika sebuah kelas / class mewarisi properti dan metode (properties and methods) dari kelas induk / parent class, ia memiliki akses terhadap semua metode dan properti dari induknya. Dan sebuah aplikasi dapat dibangun dengan memperluas / extending sebuah kelas berdasarkan kelas lain yang telah ada.
4.1 Fungsi Session
19
Fungs Fu ngsii ses sessio sion_r n_reg egist ister( er()) dig diguna unakan kan unt untuk uk me menya nyatak takan an me memul mulai ai ses sessio sion, n, sekaligus sekal igus dide didefini finisika sikan n vari variabel abel apa saja yang akan disimpan disimpan dala dalam m sessi session. on. Fung Fungsi si session_register() diletakkan pada baris pertama program, karena fungsi ini mengirim cookies yang merupakan salah satu tipe dari HTTP header. Jika suatu tipe header dikirim setelah teks dikirim ke browser akan mengakibatka mengakibatkan n error. session_register(“var1�); $var1 = “nilai1�; ?> Pada waktu diakses pertama kali, halaman tersebut akan memulai session. Akan dikirim cookie atau session id yang akan ditambahkan ke dalam relative link. Perintah session_register akan memerintahkan PHP untuk melakukan pencarian variabel $var1 pada file session. Jika ada, variabel tersebut akan tersedia / available secara global, atau dapat pula diakses melalui array $HTTP_SESSION_VARS. Setelah halaman tersebut diproses, nilai terakhir dari variabel yang terdaftar akan dituliskan ke file session. Fungsi-fungsi yang digunakan digunakan untuk session ini : Sessi Se ssion_ on_des destro troy( y()) : fun fungs gsii unt untuk uk me menon nonakt aktifk ifkan an ses sessio sion n dan sem semua ua var varia iabel bel ya yang ng berkaitan dengannya. Sessi Se ssion_ on_unr unreg egist ister er() () : fun fungs gsii unt untuk uk me mengh nghap apus us nil nilai ai dar darii sua suatu tu var variab iabel el dal dalam am fil filee session. Session_set_save_handler() Session_set_ save_handler() : fungsi yang memungkinkan memungkinkan untuk mengatur sendiri metode penyimpanan penyimpa nan (storing), pengamb pengambilan ilan (retrieving), dan penulisan (writing) session handler. Metode session handler yang dipilih adalah yang manajemen session berdasarkan file-b fil e-bas ased. ed. Na Namun mun me metod todee ini tid tidak ak ses sesuai uai dig diguna unakan kan unt untuk uk li lingk ngkung ungan an ter terclu cluste ster r (clustered environment) dimana beberapa mesin bekerja secara bersama untuk melayani satu situs, untuk lingkungan seperti ini tidak dapat menggunakan local filesystem. Session_encode(): Session_enco de(): fungsi untuk menuliska menuliskan n variabel ke dalam basis data, variabel tersebut harus terlebih dahulu diubah formatnya ke dalam format yang dimengerti oleh basis data. Fungsi session_encode berguna untuk mengubah format ini. $str = session_encode session_encode(string) (string) Session_decode() : fungsi untuk membalik proses encoding di atas, sehingga variabel dikembalikan kedalam representasi PHP.
4.2 Fungsi-fungsi cURL
20
Untuk aplikasi ini diperlukan komunikasi dengan layanan validasi kartu kredit, dilaku dil akukan kan de denga ngan n fun fungs gsii cU cURL RL.. Ca Cara ra ker kerja janya nya ada adalah lah mul mula-m a-mula ula fun fungs gsii ini aka akan n mengirim pesan yang secure melalui HTTPS, HTTPS, dan layanan yang memvalidasi kartu kredit tersebut terse but aka akan n meng mengemb embalik alikan an resp response onse,, yang kemudian kemudian dipro diproses ses lebi lebih h lanju lanjutt denga dengan n PHP. Fungsi cURL yang digunakan : Curl_init() : fungsi ini mengembalikan nilai integer yang serupa dengan nilai identifier kembalian yang dikembalikan oleh mysql_connect() atau pointer file yang dikembalikan oleh fopen(). Pada kasus seperti ini disebut dengan cURL handle, handle, atau ch. Pada argument tunggal pada fungsi ini diberikan URL yang akan diakses. Int curl_init ([string url]) $cc_company_url = https://secure.process.site/tr https://secure. process.site/transact.dll?exp= ansact.dll?exp=foo&cardty foo&cardtype=bar pe=bar $ch = curl_init($cc_c curl_init($cc_company_ ompany_url); url); Fungsi ini akan memulai session cURL. Panggilan pada URL ini tidak akan berfungsi hingga fungsi curl_exec dieksekusi. Curl_setopt() : sebelum komunikasi URL dieksekusi, perlu diset salah satu opsi cURL yaitu opsi CURLOPT_RETURNTRANSFER. Opsi ini untuk mengembalikan hasil dari request https ke dalam variabel PHP. Curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); Curl_exec() : fungsi ini untuk mengeksekusi transfer. Sebuah argumen digunakan yaitu berasal dari hasil kembalian fungsi curl_init() dan digunakan pula pengesetan opsi-opsi lain. Bool curl_exec (int ch) Curl_close(): fungsi ini menutup koneksi cURL menggunakan curl handle : Void curl_close (int ch) Kumpulan Kumpul an fungsi-fungsi ini yang menjalankan transaksi dan mengem mengembalikan balikan hasil ke dalam variabel $data. $ch = curl_init($au curl_init($authorize_net_url); thorize_net_url); curl_setopt($ch, CURL_RETURNTRANSFER, 1); $data = curl_exec($ch curl_exec($ch); ); curl_close($ch);
5. Hasil dan Pembahasan
21
Hasil yang diperoleh dari kegiatan ini adalah dokumen analisis dan perancangan, serta prototipe perangkat lunak. Prototipe ini dibangun menggunakan perangkat lunak open ope n sou source rce ser serta ta me memi mili liki ki kar karak akter terist istik ik cro crossss-pla platfo tform rm.. Da Dari ri has hasil il dis disku kusi si den denga gan n pengguna, diperoleh masukan mengenai kebutuhan pengguna akan perangkat lunak ecomm co mmer erce ce,, na namu mun n sp spes esif ifik ik pa pada da su suat atu u pr prod oduk uk te tert rten entu tu,, se sert rtaa ke kebu butu tuha han n un untu tuk k memperkaya memperka ya fungsi-fungsi multimedia sehingga secara visual lebih menarik. Diperlukan kerja sama dengan supplier / distributor produk komersil untuk dapat menawarkan produk-produknya melalui e-commerce. Juga jasa kurir diperlukan untuk dapat melakukan layanan antar kepada konsumen dengan cepat. Bagii lem Bag lembaga baga pene peneliti litian an atau lem lembaga baga pend pendidik idikan, an, perl perlu u juga mem memperha perhatika tikan n masal ma salah ah HK HKII dal dalam am la layan yanan an e-c e-com omme merce rce unt untuk uk pro produk duk-pr -produ oduk k kar karya ya int intel elekt ektual ual.. Diperlukan kerjasama dengan pemilik hak intelektual tersebut untuk menawarkan produk produk karya intelektual tersebut secara komersil. Dalam sebuah seminar mengenai e-commerce di Bandung dikemukakan bahwa faktor terpenting dalam aplikasi e-commerce adalah delivery. Adanya sistem distribusi multi level marketing juga diinformasikan dapat memotong jalur delivery supaya lebih cepat sampai ke tangan konsumen.
6. Kesimpulan
engembangan engembang an aplikasi e-commer e-commerce ce bagi sebuah perusahaan / lembaga merupakan proses yang cukup kompleks. Melibatkan beberapa organisasi / situs dalam penanganan sekuriti dan otorisasi. erangkat lunak ini dirancang untuk mengimplementasi sistem e-commerce dalam dunia bisnis yang mendukung pemotongan rantai distribusi sehingga konsumen dapat memperoleh suatu produk dengan harga yang lebih murah. Jenis antarmuka web dipilih dengan pertimbangan fleksibilitas implementasi implementasi perangkat lunak ini yang dapat dilakukan di jaringan intranet maupun internet, kemudahan untuk deployment, serta kemampuan cross platform. Pengembangan sistem ini masih jauh dari sempurna, namun setidaknya dapat mem embe beri rika kan n
dasa da sarr
dan da n
dapa da patt
mem embe beri rika kan n
sum su mba bang ngan an ba bag gi
pem pe mik ikir iran an un untu tuk k
pengembangan teknologi yang dapat dirasakan manfaatnya oleh masyarakat di bidang ekonomi, khususnya untuk jalannya bisnis perdagangan secara online.
22
Daftar Pustaka
1. Buyens, Jim,(2001), Web Database Development, Elex Media Komputindo , Jakarta . 2. Minoli, Daniel Mindi Emma, (1998), Web Commerce Technology Handbook, Mc Graw Hill. 3. Atkins, Dorck and Buis, Paul, (1997), Internet Security Professional Reference, New Riders. 4. Rumbaugh, James dkk., (1991), Object Oriented Modelling and Design, Prentice-Hall International.,Inc. 5. Pressman, Roger S., (1992), Software Engineering A Practitioner’s Approach, third edition. McGraw-Hill International Edition. 6. http://www.php.net 7. http://www.mysql.com 8. Greenspan,Jay, and Bulger,Brad, (2001), MySQL/PHP Database Application, M&T Books. 9. Fery Soswanto, “E-Commerce dengan memanfaatkan Sistem Operasi Linux�.
23