SlideShare a Scribd company logo
Kuliah Umum IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Pengenalan PemrogramanPengenalan Pemrograman
E-CommerceE-Commerce dengan PHP dandengan PHP dan
MySQLMySQL
Dian Andriana
dian@informatika.lipi.go.id
Abstrak
Aplikasi perangkat lunak komputer dan Internet telah berkembang pesat pada dasawarsa ini,
demikian pula dengan aplikasi web dan browser internet maupun intranet. Aplikasi E-
Commerce telah lama berkembang diawali dengan EDI (Electronic Data Interchange) yang
telah berkembang dalam lingkup internasional. Dalam makalah ini diuraikan mengenai
arsitektur sistem, tool dan konfigurasi yang diperlukan untuk mengimplementasi aplikasi web
e-commerce, konsiderasi masalah keamanan sistem, perancangan dari sisi diagram alur
aplikasi dan perancangan basis data, serta kode program PHP yang diperlukan untuk
implementasi aplikasi ini. Digunakan bahasa pemrograman PHP karena kemudahan dalam
pemrograman, dan kelengkapan fitur untuk mengimplementasi sistem e-commerce,
kemampuan untuk cross platform, serta 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 fasilitas
Internet dimana terdapat website yang dapat menyediakan layanan "get and deliver". E-
commerce akan merubah semua kegiatan marketing dan juga sekaligus memangkas biaya-
biaya operasional untuk kegiatan trading (perdagangan) .
Proses yang ada dalam E-commerce adalah sebagai berikut :
1
Lisensi Dokumen:
Copyright © 2003 IlmuKomputer.Com
Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan
secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus
atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap
dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin
terlebih dahulu dari IlmuKomputer.Com.
Kuliah Umum IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
 Presentasi electronis (Pembuatan Web site) untuk produk dan layanan.
 Pemesanan secara langsung dan tersedianya tagihan.
 Otomasi account Pelanggan secara aman (baik nomor rekening maupun nomor Kartu
Kredit).
 Pembayaran 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.
 Mengurangi biaya-biaya yang berhubungan dengan kertas, seperti biaya pos surat,
pencetakan, report, dan sebagainya.
 Mengurangi keterlambatan dengan mengunakan transfer elektronik / pembayaran
yang tepat waktu dan dapat langsung dicek.
 Mempercepat pelayanan ke pelanggan, dan pelayanan lebih responsif.
2
Kuliah Umum IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Gambar 1. Contoh Aplikasi E-Commerce : Pembelian CD dengan Kartu Kredit
2. Arsitektur dan Konfigurasi Sistem
Arsitektur dasar dari aplikasi web ini adalah arsitektur clientIserver. Artinya 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 apapun di
sisi client.
Server
Client
Request
Response
3
Kuliah Umum IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Gambar 2. Arsitektur Client/Server
2.1 Stateless Web Server
Untuk aplikasi E-Commerce ini web server harus dapat mengingat siapa / 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 memperlakukan informasi
permintaan (request) secara serial, satu persatu pada saat request masuk. Tidak ada koneksi
permanen (persistence) yang berjalan setelah sebuah halaman telah selesai dilayani /
dikerjakan.
StateStateState
S t a t e
Server
Client
Request
Response
Request Request
Response Response
Server
Client
Request
Response
Request Request
Response Response
A
B
Gambar 3. Perbandingan State dalam Sistem Aplikasi: A.State yang kontinyu dalam aplikasi
desktop, dan B.Stateless protokol dalam aplikasi web
Agar sebuah situs web mempunyai memori / state, dalam hal ini aplikasi ini mampu
mengingat ‘siapa memesan apa’, beberapa informasi yang mengidentifikasi pengguna harus
dikirim dengan setiap request halaman web. Informasi tersebut disimpan dengan
menggunakan session.
4
Kuliah Umum IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Session tersebut dipergunakan untuk merekam / tracking aktivitas pengguna yang melalui
sejumlah halaman pada website, misalnya pada jenis aplikasi Shopping Cart (kereta belanja).
Direkam pula informasi identitas pengguna yang memiliki kereta belanja tersebut.
Dengan PHP, untuk penggunaan session ini mula-mula dilakukan pengaturan pada file
php.ini yang menunjukkan session dimulai (start). Dengan ini PHP akan membuat suatu
identifier unik dan file yang berkaitan, yang disimpan di server (lokasinya di atur di php.ini
dan nilai defaultnya di direktori /tmp). Kemudian pada saat pengguna berkunjung pada
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.
Implementasi session dapat mempergunakan cookie yang disimpan pada sisi client, atau
dipropagasikan melalui alamat URL.
Untuk penggunaan cookie, yaitu dengan passing variabel melalui cookie yang menyimpan
informasi semua elemen barang belanja dan harganya. Namun hal ini memiliki keterbatasan
yaitu dari (http://www.netscape.com/newsref/std/cookie_spec.html) mengenai spesifikasi
cookie yang hanya mengijinkan 20 cookie per domain dan berukuran hanya 4 bytes per
cookie. Cara lain adalah dengan memberi identitas / identifier unik pada masing-masing
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 menggunakan 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 mengaktifkan
flag –enable-trans-sid dalam konfigurasi PHP, hal ini berguna agar session id akan secara
otomatis ditambahkan ke setiap relative link pada halaman-halaman web setiap kali session
telah dimulai.
2.2 Konfigurasi Sistem dan Tool Yang Digunakan
Masalah lain dalam aplikasi ini adalah mengenai aspek keamanan dalam memperoleh
informasi dari pengguna, terutama data mengenai penggunaan kartu kredit. Informasi ini
perlu diverifikasi oleh institusi yang berkualifikasi dan memerlukan pengaturan konfigurasi
serta penggunaan beberapa macam tool.
Dalam membangun aplikasi ini dipergunakan algoritma untuk memelihara (maintain) state,
pengambilan informasi secara secure terhadap kartu kredit, menggunakan kode pemrograman
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.
5
Kuliah Umum IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
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 Public key mesin tersebut. Namun public key ini tidak cukup untuk dapat
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 melakukan dekripsi data.
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.
Pesan terenkripsi yang dikirim dan diterima akan memiliki semacam ‘signature’, dan
verifikasi selanjutnya dilakukan terhadap ‘signature’ tersebut. Untuk itu, organisasi
yang akan mempergunakan komunikasi melalui web memerlukan kerjasama dengan
organisasi lain yang mengeluarkan sertifikat yang memverifikasi pengirim pesan.
Organisasi ini pulalah yang memberikan Publik key dan Private key. Salah satu contoh
organisasi yang menerbitkan sertifikat sekuriti adalah VeriSign.
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 yakni pada aspek sumber daya manusia apabila kurang jujur,
yakni apabila terjadi akses tidak sah dilakukan oleh orang yang sudah berada dalam
sistem.
6
Kuliah Umum IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
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.
Setelah Apache dikonfigurasi dengan SSL, maka website aplikasi dapat 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.
Toko Online
Internet
User Publik 1
User Publik 2
Modem
E-Commerce Server
Modem
Server Pemroses
Agen Pemroses Kartu Kredit
User/Operator
Server Pemroses
Organisasi Penerbit Sertifikatti
Internet
Internet
Gambar 5. Komunikasi Antar Situs dalam Aplikasi E-Commerce
2.2.5 Penggunaan Firewall
Firewall digunakan untuk melindungi jaringan lokal dari serangan luar. Ada beberapa
pilihan untuk menempatkan web server :
 web server ditempatkan di luar dari Firewall (lihat gambar 6), adapun keuntungan
dengan menempatkan server diluar dari firewall adalah bahwa web server
7
Kuliah Umum IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
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.
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 transaksi pada TCP port 80, atau
dengan membolehkan secara langsung melewatkan paket maupun dengan
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" tersebut
menggunakan kesalahan dari program CGI script, mereka akan mempunyai akses tak
terbatas ke jaringan lokal.
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).
8
Kuliah Umum IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
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 dikompilasi
ulang dengan PHP sehingga akan dapat mengenali 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, Telnet, dan HTTPS. Untuk dapat
menggunakan fungsi ini, konfigurasi instalasi PHP harus menyertakan flag –with-curl.
2.3 Pemrosesan Kartu Kredit
Pemrosesan kartu kredit dilakukan oleh perusahaan yang khusus untuk itu, terdapat beberapa
nama perusahaan yang cukup dikenal, namun semuanya memiliki 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 berfungsi untuk membandingkan kode
yang diterima dengan nilai yang didapat sebelumnya dari agen pemrosesan. Untuk aplikasi
ini dipergunakan Authorizenet.com sebagai pemroses kartu kredit.
3. Rancangan Aplikasi E-Commerce
Gambaran aplikasi e-commerce akan diuraikan sebagai berikut. Mula-mula 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,
9
Kuliah Umum IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
dan selanjutnya user dapat melanjutkan berbelanja / memilih item yang lain. Server
mengingat item apa saja yang telah dipesan. Pada saat pengguna melanjutkan 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 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 kereta belanja (shopping cart). Halaman ini memungkinkan pengguna untuk
menambah atau mengurangi jumlah item yang dipesan, dan menghapus suatu item pesanan.
Pada akhir proses pemesanan, ditampilkan halaman yang mengumpulkan informasi
pengguna, preferensi, dan halaman untuk memulai pemrosesan kartu kredit. Halaman ini juga
menunjukkan pesan bila ada kesalahan informasi atau terdapat penolakan autorisasi kartu
kredit oleh agen pemroses.
Selanjutnya, setelah transaksi selesai diproses, terdapat tanda terima transaksi yang
mengkonfirmasi pesanan dan menyampaikan nomor id pesanan kepada pengguna.
Yang penting diperhatikan untuk pengembangan aplikasi e-commrce adalah informasi nomor
kartu kredit dan informasi personal lainnya harus aman dan tidak mudah dilihat oleh orang
yang tidak berhak.
10
Kuliah Umum IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Mulai
Pilih Katagori
Pilih Item
Simpan Identitas Item
Lihat Daftar Pesanan
Cetak Daftar Pesanan
Edit Daftar Jumlah Pesanan
Check Out
Masukkan Nomor Kartu Kredit
Selesai
Validasi Kartu
Kredit oleh Pihak
Ketiga
Cetak Bukti Nomor Pemesanan
Gambar 9. Diagram Alir Penggunaan Aplikasi E-Commerce
11
Kuliah Umum IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Gambar 10. Rancangan Layar Halaman Depan Contoh Web E-Commerce
Gambar 11. Rancangan Layar Halaman Contoh Daftar Barang
12
Kuliah Umum IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Gambar 12. Rancangan Layar Halaman Contoh Daftar Pesanan
Gambar 13. Rancangan Layar Halaman Contoh Pemrosesan Kartu Kredit
13
Kuliah Umum IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
3.2 Rancangan Basis Data
Pesanan
Id_user
Id_alamat
Id_status
Total_harga
Id_pengiriman
Biaya_kirim
Thn_exp_kartu
Bln_exp_kartu
Kode_jenis_kartu
Tgl_buat
Id_Pesanan
User
email
nama
Id_user
Alamat
Id_user
Alamat
Alamat2
Kota
Prop
KodePos
Negara
Telepon
Fax
Id_alamat Jenis_Kartu
Jenis_Kartu
Kode_jenis_kartu
Pengiriman
Pengiriman
Per_Order
Per_Item
Id_pengiriman
Status
Status
Id_status
Item
Kode_Register
Kode_Lokasi
Jumlah
Harga
Id_Pesanan
Kode_Katagori
Nomor_Barang
Gambar 14. Rancangan Basis Data Aplikasi Web E-Commerce
Tabel utama yang digunakan dalam aplikasi ini adalah tabel Pesanan, yang 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 Pengiriman berisi informasi opsi yang
diberikan untuk pengiriman barang. Misalnya terdapat pilihan menggunakan UPS, DHL,
TIKI, Pos, dan sebagainya. Tabel Status berisi catatan mengenai status pesanan, yaitu dapat
berupa status dikembalikan (backordered), dikirim (shipped), atau dibatalkan (cancelled).
Terdapat pula tabel Jenis_Kartu untuk menyimpan informasi jenis kartu kredit seperti Visa,
Mastercard, dan sebagainya.
Tabel 1. Tabel Alamat
Field Jenis Kosong Ekstra Keterangan
Id_Alamat Int(11) Tidak Auto_inc
rement
PRIMARY
KEY
Id_User Varchar(40) Tidak KEY
Alamat Varchar(40) Ya
Alamat2 Varchar(40) Ya
Kota Varchar(40) Ya
Prop Varchar(40) Ya
KodePos Varchar(10) Ya
Negara Varchar(20) Ya
Telepon Varchar(20) Ya
Fax Varchar(20) Ya
14
Kuliah Umum IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Tabel 2. Tabel Jenis_Kartu
Field Jenis Kosong Ekstra Keterang
an
Kode_Jenis_K
artu
Char(3) Tidak
Jenis_Kartu Varchar(30) Tidak
Tabel 3. Tabel Pesanan
Field Jeni
s
Kosong Defaul
t
Ekstra Keterangan
Id_pesanan dou
ble
Tidak Auto_
increment
PRIMARY
KEY
Id_user Int
(11)
Tidak KEY
Id_alamat Int
(11)
Tidak
Id_status Tin
yint
(4)
Tidak
Total_harga Dou
ble
Tidak ‘0.00’
Id_pengiriman Tin
yint
(4)
Tidak
Biaya_kirim Dou
ble
Tidak ‘0.00’
Tahun_exp_kartu Int
(11)
Tidak
Bulan_exp_kartu Tin
yint
(4)
Tidak
Kode_jenis_kartu Cha
r(3)
Tidak
Tgl_buat Tim
esta
mp
(14)
Ya
Tabel 4. Tabel Pengiriman
Field Jenis Kosong Defaul
t
Ekstra Keterangan
Id_Pengirima
n
Tinyint(4) Tidak Auto_
increment
PRIMARY
KEY
Pengiriman Varchar
(20)
Tidak
Per_Order Double Tidak ‘0.00’
Per_Item Double Tidak ‘0.00’
15
Kuliah Umum IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Tabel 5. Tabel Status
Field Jenis Kosong Ekstra Keterangan
Id_Status Tinyint(4) Tidak Auto_
increment
PRIMARY
KEY
Status Varchar
(20)
Tidak
Tabel 6. Tabel User
Field Jenis Kosong Ekstra Keterangan
Id_User int(11) Tidak Auto_
increment
PRIMARY KEY
email Varchar
(255)
Tidak UNIQUE
nama Varchar(80) 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_Register Varchar(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 hosting web site ini,
tentunya akan sangat diragukan keamanannya, karena ISP menggunakan shared server yang
digunakan secara bersama, meskipun telah menggunakan konfigurasi secure server yang
ditawarkan oleh ISP tersebut. Nomor kartu kredit yang tersimpan dalam basis data akan dapat
diakses oleh orang lain yang mempunyai akses terhadap mesin server. Juga tidak ada
kebutuhan untuk menyimpan nomor kartu kredit dalam bentuk apapun. Yang diperlukan oleh
aplikasi ini adalah 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.
16
Kuliah Umum IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Server E-Commerce
Toko Online
User / Pembeli
Agen Pemroses Kartu Kredit
Nomor Kartu Kredit
Tanggal Kadaluarsa
Nama
Alamat
dsb.
Nomor Kartu Kredit
Tanggal Kadaluarsa
Nama
Alamat
dsb.
Kode
Kembalian
Membandingkan kode
kembalian dengan kode
yang sebelumnya diperoleh
dari Agen Pemroses
Konfirmasi
Bukti Pemesanan
Hapus data kartu kredit
setelah proses selesai
dilakukan
Gambar 15. Komunikasi Antar Situs dan Penghapusan Informasi Kartu Setelah Proses
Selesai
4. Kode Program
Pemrograman untuk aplikasi e-commerce ini diimplementasikan dengan 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
Fungsi session_register() digunakan untuk menyatakan memulai session, sekaligus
didefinisikan variabel apa saja yang akan disimpan dalam session. Fungsi 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 mengakibatkan error.
<?
session_register(“var1”);
$var1 = “nilai1”;
?>
17
Kuliah Umum IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
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 untuk session ini :
Session_destroy() : fungsi untuk menonaktifkan session dan semua variabel yang
berkaitan dengannya.
Session_unregister() : fungsi untuk menghapus nilai dari suatu variabel dalam file
session.
Session_set_save_handler() : fungsi yang memungkinkan untuk mengatur sendiri
metode penyimpanan (storing), pengambilan (retrieving), dan penulisan (writing)
session handler.
Metode session handler yang dipilih adalah yang manajemen session berdasarkan file-based.
Namun metode ini tidak sesuai digunakan untuk lingkungan tercluster (clustered
environment) dimana beberapa mesin bekerja secara bersama untuk melayani satu situs,
untuk lingkungan seperti ini tidak dapat menggunakan local filesystem.
Session_encode(): fungsi untuk menuliskan 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(string)
Session_decode() : fungsi untuk membalik proses encoding di atas, sehingga variabel
dikembalikan kedalam representasi PHP.
4.2 Fungsi-fungsi cURL
Untuk aplikasi ini diperlukan komunikasi dengan layanan validasi kartu kredit, dilakukan
dengan fungsi cURL. Cara kerjanya adalah mula-mula fungsi ini akan mengirim pesan yang
secure melalui HTTPS, dan layanan yang memvalidasi kartu kredit tersebut akan
mengembalikan response, yang kemudian diproses lebih lanjut dengan 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, 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/transact.dll?exp=foo&cardtype=bar
$ch = curl_init($cc_company_url);
18
Kuliah Umum IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
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 fungsi-fungsi ini yang menjalankan transaksi dan mengembalikan hasil ke
dalam variabel $data.
$ch = curl_init($authorize_net_url);
curl_setopt($ch, CURL_RETURNTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);
5. Hasil dan Pembahasan
Prototipe ini dibangun menggunakan perangkat lunak open source serta memiliki
karakteristik cross-platform. Dari hasil diskusi dengan pengguna, diperoleh masukan
mengenai kebutuhan pengguna akan perangkat lunak e-commerce, namun spesifik pada suatu
produk tertentu, serta kebutuhan untuk memperkaya 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.
Bagi lembaga penelitian atau lembaga pendidikan, perlu juga memperhatikan masalah HKI
dalam layanan e-commerce untuk produk-produk karya intelektual, misalnya untuk layanan
e-commerce dalam situs web digital library. 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.
19
Kuliah Umum IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
6. Kesimpulan
Pengembangan aplikasi e-commerce bagi sebuah perusahaan / lembaga merupakan proses
yang cukup kompleks. Melibatkan beberapa organisasi / situs dalam penanganan sekuriti dan
otorisasi.
Perangkat lunak aplikasi e-commerce dalam dunia bisnis dapat mendukung pemotongan
rantai distribusi sehingga konsumen dapat memperoleh suatu produk dengan harga yang lebih
murah. Jenis antarmuka web dipilih dengan pertimbangan fleksibilitas implementasi
perangkat lunak ini yang dapat dilakukan di jaringan intranet maupun internet, kemudahan
untuk deployment, serta kemampuan cross platform.
Dalam makalah ini telah diuraikan mengenai arsitektur sistem, tool dan konfigurasi yang
diperlukan untuk mengimplementasi aplikasi web e-commerce, konsiderasi masalah
keamanan sistem, perancangan dari sisi diagram alur aplikasi dan perancangan basis data,
serta kode program PHP yang diperlukan untuk implementasi aplikasi ini.
Daftar Pustaka
1. http://www.mysql.com
2. http://www.php.net
3. Greenspan,Jay, and Bulger,Brad, “MySQL/PHP Database Application”, M&T Books,
Foster City CA USA, 2001.
4. Fery Soswanto, “E-Commerce dengan memanfaatkan Sistem Operasi Linux”.
20
Kuliah Umum IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Biografi Penulis
Dian Andriana. Lahir di Surabaya, 10 Januari 1973. Setelah dua tahun
di SMUN 5 Surabaya, menamatkan SMU di SMU PGII 1 Bandung
tahun 1991. Menyelesaikan program S1 di Jurusan Teknik Informatika
Institut Teknologi Bandung pada tahun 1997. Saat ini bekerja sebagai
peneliti pada instansi Lembaga Ilmu Pengetahuan Indonesia (LIPI),
tepatnya di Pusat Penelitian Informatika. Kompetensi pada bidang
Software Engineering, Database dan Web Engineering. Berpengalaman
mengembangkan Sistem Informasi aplikasi database under Windows
dan Linux.
21

More Related Content

What's hot

Analisis sistem informasi pemesanan electronic ticket ppt
Analisis sistem informasi pemesanan electronic ticket pptAnalisis sistem informasi pemesanan electronic ticket ppt
Analisis sistem informasi pemesanan electronic ticket ppt
Lidya Septiani
 
(6) SIM, Nurli Hardianto, Hapzi Ali, Sistem Manajemen Database, Universitas M...
(6) SIM, Nurli Hardianto, Hapzi Ali, Sistem Manajemen Database, Universitas M...(6) SIM, Nurli Hardianto, Hapzi Ali, Sistem Manajemen Database, Universitas M...
(6) SIM, Nurli Hardianto, Hapzi Ali, Sistem Manajemen Database, Universitas M...
Nurli Hardianto
 
Sim, nur kairunnisa, prof. dr. hapzi ali, cma, ppt uas analisis dan perancang...
Sim, nur kairunnisa, prof. dr. hapzi ali, cma, ppt uas analisis dan perancang...Sim, nur kairunnisa, prof. dr. hapzi ali, cma, ppt uas analisis dan perancang...
Sim, nur kairunnisa, prof. dr. hapzi ali, cma, ppt uas analisis dan perancang...
kairunnisa
 
38441420 skripsi-aplikasi-penjualan-bab-1-5
38441420 skripsi-aplikasi-penjualan-bab-1-538441420 skripsi-aplikasi-penjualan-bab-1-5
38441420 skripsi-aplikasi-penjualan-bab-1-5
ketanmanis
 
MAKALAH SIM Berbasis Teknologi ULLY TIARA ANGELIA 201911571 KEL.8
MAKALAH SIM Berbasis Teknologi ULLY TIARA ANGELIA 201911571 KEL.8MAKALAH SIM Berbasis Teknologi ULLY TIARA ANGELIA 201911571 KEL.8
MAKALAH SIM Berbasis Teknologi ULLY TIARA ANGELIA 201911571 KEL.8
UllyTiaraAngelia
 
Totolan E-Payment
Totolan E-PaymentTotolan E-Payment
Totolan E-PaymentHendrik Ang
 
SIM, Rita Anggraeni, Prof. Dr. Ir. Hapzi Ali, MM, CMA, Sistem Manajemen Datab...
SIM, Rita Anggraeni, Prof. Dr. Ir. Hapzi Ali, MM, CMA, Sistem Manajemen Datab...SIM, Rita Anggraeni, Prof. Dr. Ir. Hapzi Ali, MM, CMA, Sistem Manajemen Datab...
SIM, Rita Anggraeni, Prof. Dr. Ir. Hapzi Ali, MM, CMA, Sistem Manajemen Datab...
Rita Anggraeni
 
Artikel Sistem Informasi Manajemen Bagaskoro Sabastian, Bayu Aji Wibisono, Ah...
Artikel Sistem Informasi Manajemen Bagaskoro Sabastian, Bayu Aji Wibisono, Ah...Artikel Sistem Informasi Manajemen Bagaskoro Sabastian, Bayu Aji Wibisono, Ah...
Artikel Sistem Informasi Manajemen Bagaskoro Sabastian, Bayu Aji Wibisono, Ah...
Bagaskoro Sabastian
 
PPT SIM Berbasis Teknologi ULLY TIARA ANGELIA 201911571 KEL.8
PPT SIM Berbasis Teknologi ULLY TIARA ANGELIA 201911571 KEL.8PPT SIM Berbasis Teknologi ULLY TIARA ANGELIA 201911571 KEL.8
PPT SIM Berbasis Teknologi ULLY TIARA ANGELIA 201911571 KEL.8
UllyTiaraAngelia
 
SISTEM INFORMASI MANAJEMEN BERBASIS TEKNOLOGI
SISTEM INFORMASI MANAJEMEN BERBASIS TEKNOLOGISISTEM INFORMASI MANAJEMEN BERBASIS TEKNOLOGI
SISTEM INFORMASI MANAJEMEN BERBASIS TEKNOLOGI
DelviaOkviAlfionita
 
Analisis sistem informasi pemesanan tiket berbasis web
Analisis sistem informasi pemesanan tiket berbasis webAnalisis sistem informasi pemesanan tiket berbasis web
Analisis sistem informasi pemesanan tiket berbasis web
Lidya Septiani
 

What's hot (13)

Analisis sistem informasi pemesanan electronic ticket ppt
Analisis sistem informasi pemesanan electronic ticket pptAnalisis sistem informasi pemesanan electronic ticket ppt
Analisis sistem informasi pemesanan electronic ticket ppt
 
Proposal aq baru
Proposal aq baruProposal aq baru
Proposal aq baru
 
(6) SIM, Nurli Hardianto, Hapzi Ali, Sistem Manajemen Database, Universitas M...
(6) SIM, Nurli Hardianto, Hapzi Ali, Sistem Manajemen Database, Universitas M...(6) SIM, Nurli Hardianto, Hapzi Ali, Sistem Manajemen Database, Universitas M...
(6) SIM, Nurli Hardianto, Hapzi Ali, Sistem Manajemen Database, Universitas M...
 
Sim, nur kairunnisa, prof. dr. hapzi ali, cma, ppt uas analisis dan perancang...
Sim, nur kairunnisa, prof. dr. hapzi ali, cma, ppt uas analisis dan perancang...Sim, nur kairunnisa, prof. dr. hapzi ali, cma, ppt uas analisis dan perancang...
Sim, nur kairunnisa, prof. dr. hapzi ali, cma, ppt uas analisis dan perancang...
 
38441420 skripsi-aplikasi-penjualan-bab-1-5
38441420 skripsi-aplikasi-penjualan-bab-1-538441420 skripsi-aplikasi-penjualan-bab-1-5
38441420 skripsi-aplikasi-penjualan-bab-1-5
 
Zpm328 sistim info
Zpm328 sistim infoZpm328 sistim info
Zpm328 sistim info
 
MAKALAH SIM Berbasis Teknologi ULLY TIARA ANGELIA 201911571 KEL.8
MAKALAH SIM Berbasis Teknologi ULLY TIARA ANGELIA 201911571 KEL.8MAKALAH SIM Berbasis Teknologi ULLY TIARA ANGELIA 201911571 KEL.8
MAKALAH SIM Berbasis Teknologi ULLY TIARA ANGELIA 201911571 KEL.8
 
Totolan E-Payment
Totolan E-PaymentTotolan E-Payment
Totolan E-Payment
 
SIM, Rita Anggraeni, Prof. Dr. Ir. Hapzi Ali, MM, CMA, Sistem Manajemen Datab...
SIM, Rita Anggraeni, Prof. Dr. Ir. Hapzi Ali, MM, CMA, Sistem Manajemen Datab...SIM, Rita Anggraeni, Prof. Dr. Ir. Hapzi Ali, MM, CMA, Sistem Manajemen Datab...
SIM, Rita Anggraeni, Prof. Dr. Ir. Hapzi Ali, MM, CMA, Sistem Manajemen Datab...
 
Artikel Sistem Informasi Manajemen Bagaskoro Sabastian, Bayu Aji Wibisono, Ah...
Artikel Sistem Informasi Manajemen Bagaskoro Sabastian, Bayu Aji Wibisono, Ah...Artikel Sistem Informasi Manajemen Bagaskoro Sabastian, Bayu Aji Wibisono, Ah...
Artikel Sistem Informasi Manajemen Bagaskoro Sabastian, Bayu Aji Wibisono, Ah...
 
PPT SIM Berbasis Teknologi ULLY TIARA ANGELIA 201911571 KEL.8
PPT SIM Berbasis Teknologi ULLY TIARA ANGELIA 201911571 KEL.8PPT SIM Berbasis Teknologi ULLY TIARA ANGELIA 201911571 KEL.8
PPT SIM Berbasis Teknologi ULLY TIARA ANGELIA 201911571 KEL.8
 
SISTEM INFORMASI MANAJEMEN BERBASIS TEKNOLOGI
SISTEM INFORMASI MANAJEMEN BERBASIS TEKNOLOGISISTEM INFORMASI MANAJEMEN BERBASIS TEKNOLOGI
SISTEM INFORMASI MANAJEMEN BERBASIS TEKNOLOGI
 
Analisis sistem informasi pemesanan tiket berbasis web
Analisis sistem informasi pemesanan tiket berbasis webAnalisis sistem informasi pemesanan tiket berbasis web
Analisis sistem informasi pemesanan tiket berbasis web
 

Viewers also liked

36683164 1
36683164 136683164 1
36683164 1GIA VER
 
Capítulo IX. Corazón de Marioneta Parte 2
Capítulo IX. Corazón de Marioneta Parte 2Capítulo IX. Corazón de Marioneta Parte 2
Capítulo IX. Corazón de Marioneta Parte 2SiulManipura
 
básico a semana 20 al 24 de junio
 básico a semana 20 al 24 de  junio básico a semana 20 al 24 de  junio
básico a semana 20 al 24 de junio
Colegio Camilo Henríquez
 
Separadosquandonasceram
SeparadosquandonasceramSeparadosquandonasceram
SeparadosquandonasceramRachel V.
 
Digicom
DigicomDigicom
Digicom
Lauren Gouin
 
Education Certificates
Education CertificatesEducation Certificates
Education CertificatesBudi Santoso
 
2º básico a semana del 06 al 10 de mayo
2º básico a   semana del 06  al 10   de mayo2º básico a   semana del 06  al 10   de mayo
2º básico a semana del 06 al 10 de mayo
Colegio Camilo Henríquez
 
Ssocial288487
Ssocial288487Ssocial288487
Ssocial288487
Cristina Vaniêr
 
Jawatankuasa pelaksana 1 murid 1 sukan
Jawatankuasa pelaksana 1 murid 1 sukanJawatankuasa pelaksana 1 murid 1 sukan
Jawatankuasa pelaksana 1 murid 1 sukan
Norasikin Mohamad
 
Unit 2 treaty of versaille and great depression notes
Unit 2  treaty of versaille and great depression notesUnit 2  treaty of versaille and great depression notes
Unit 2 treaty of versaille and great depression notes
marypardee
 
UESB Manual do-candidato-2016
UESB Manual do-candidato-2016UESB Manual do-candidato-2016
UESB Manual do-candidato-2016
Privada
 
تفسير سورة الإخلاص - ابن رجب الحنبلي
تفسير سورة الإخلاص - ابن رجب الحنبليتفسير سورة الإخلاص - ابن رجب الحنبلي

Viewers also liked (14)

36683164 1
36683164 136683164 1
36683164 1
 
Capítulo IX. Corazón de Marioneta Parte 2
Capítulo IX. Corazón de Marioneta Parte 2Capítulo IX. Corazón de Marioneta Parte 2
Capítulo IX. Corazón de Marioneta Parte 2
 
básico a semana 20 al 24 de junio
 básico a semana 20 al 24 de  junio básico a semana 20 al 24 de  junio
básico a semana 20 al 24 de junio
 
Separadosquandonasceram
SeparadosquandonasceramSeparadosquandonasceram
Separadosquandonasceram
 
Digicom
DigicomDigicom
Digicom
 
Education Certificates
Education CertificatesEducation Certificates
Education Certificates
 
2º básico a semana del 06 al 10 de mayo
2º básico a   semana del 06  al 10   de mayo2º básico a   semana del 06  al 10   de mayo
2º básico a semana del 06 al 10 de mayo
 
Ssocial288487
Ssocial288487Ssocial288487
Ssocial288487
 
Jawatankuasa pelaksana 1 murid 1 sukan
Jawatankuasa pelaksana 1 murid 1 sukanJawatankuasa pelaksana 1 murid 1 sukan
Jawatankuasa pelaksana 1 murid 1 sukan
 
William Beamesderfer Resume
William Beamesderfer ResumeWilliam Beamesderfer Resume
William Beamesderfer Resume
 
Unit 2 treaty of versaille and great depression notes
Unit 2  treaty of versaille and great depression notesUnit 2  treaty of versaille and great depression notes
Unit 2 treaty of versaille and great depression notes
 
Appendicies
AppendiciesAppendicies
Appendicies
 
UESB Manual do-candidato-2016
UESB Manual do-candidato-2016UESB Manual do-candidato-2016
UESB Manual do-candidato-2016
 
تفسير سورة الإخلاص - ابن رجب الحنبلي
تفسير سورة الإخلاص - ابن رجب الحنبليتفسير سورة الإخلاص - ابن رجب الحنبلي
تفسير سورة الإخلاص - ابن رجب الحنبلي
 

Similar to Ecomerence php

Latar belakang (1)
Latar belakang (1)Latar belakang (1)
Latar belakang (1)triedaritri
 
225-705-1-PB.pdf
225-705-1-PB.pdf225-705-1-PB.pdf
225-705-1-PB.pdf
Fajar Baskoro
 
Sistem Informasi Pencatatan Daftar Penumpang Berbasis SMS Gateway
Sistem Informasi Pencatatan Daftar Penumpang Berbasis SMS GatewaySistem Informasi Pencatatan Daftar Penumpang Berbasis SMS Gateway
Sistem Informasi Pencatatan Daftar Penumpang Berbasis SMS Gateway
Albert Mahendradata
 
SIM 5,Novia Indriani, Hapzi Ali, SUMBER DAYA KOMPUTASI DAN KOMUNIKASI, Univer...
SIM 5,Novia Indriani, Hapzi Ali, SUMBER DAYA KOMPUTASI DAN KOMUNIKASI, Univer...SIM 5,Novia Indriani, Hapzi Ali, SUMBER DAYA KOMPUTASI DAN KOMUNIKASI, Univer...
SIM 5,Novia Indriani, Hapzi Ali, SUMBER DAYA KOMPUTASI DAN KOMUNIKASI, Univer...
noviaindrn
 
111 lamaran
111 lamaran111 lamaran
111 lamaran
Agus Sulistiono
 
Proposal hampir kelar
Proposal hampir kelarProposal hampir kelar
Proposal hampir kelar
Satria Spurs
 
SIM, OCTHAVIANI ARBANIYA, HAPZI ALI, SUMBER DAYA KOMPUTASI DAN KOMUNIKASI, U...
SIM, OCTHAVIANI ARBANIYA, HAPZI  ALI, SUMBER DAYA KOMPUTASI DAN KOMUNIKASI, U...SIM, OCTHAVIANI ARBANIYA, HAPZI  ALI, SUMBER DAYA KOMPUTASI DAN KOMUNIKASI, U...
SIM, OCTHAVIANI ARBANIYA, HAPZI ALI, SUMBER DAYA KOMPUTASI DAN KOMUNIKASI, U...
Octhaviani Arbaniya
 
SIM, OCTHAVIANI ARBANIYA, HAPZI ALI, SUMBER DAYA KOMPUTASI DAN KOMUNIKASI, UN...
SIM, OCTHAVIANI ARBANIYA, HAPZI ALI, SUMBER DAYA KOMPUTASI DAN KOMUNIKASI, UN...SIM, OCTHAVIANI ARBANIYA, HAPZI ALI, SUMBER DAYA KOMPUTASI DAN KOMUNIKASI, UN...
SIM, OCTHAVIANI ARBANIYA, HAPZI ALI, SUMBER DAYA KOMPUTASI DAN KOMUNIKASI, UN...
Octhaviani Arbaniya
 
Keamanan_E_Commerce_perdagangan elektronik.ppt
Keamanan_E_Commerce_perdagangan elektronik.pptKeamanan_E_Commerce_perdagangan elektronik.ppt
Keamanan_E_Commerce_perdagangan elektronik.ppt
CaturIswahyudi
 
Sim, Syifa Khairunnisa, Hapzi Ali, Sumber Daya Komputasi dan Komunikasi, Univ...
Sim, Syifa Khairunnisa, Hapzi Ali, Sumber Daya Komputasi dan Komunikasi, Univ...Sim, Syifa Khairunnisa, Hapzi Ali, Sumber Daya Komputasi dan Komunikasi, Univ...
Sim, Syifa Khairunnisa, Hapzi Ali, Sumber Daya Komputasi dan Komunikasi, Univ...
syifalalalala
 
Cloud compiting
Cloud compitingCloud compiting
Cloud compiting
ucienmapcu
 
Sim, rahma pradina putri, prof. dr. hapzi ali, cma,forum 4 , universitas mer...
Sim, rahma pradina putri, prof. dr.  hapzi ali, cma,forum 4 , universitas mer...Sim, rahma pradina putri, prof. dr.  hapzi ali, cma,forum 4 , universitas mer...
Sim, rahma pradina putri, prof. dr. hapzi ali, cma,forum 4 , universitas mer...
Rahma Pradina
 
Rekap el sim (sblm UTS)
Rekap el sim (sblm UTS)Rekap el sim (sblm UTS)
Rekap el sim (sblm UTS)
widyaaryanti123
 
adoc.pub_proposal-penawaran-jasa-pembuatan-aplikasi-dan-sis.pdf
adoc.pub_proposal-penawaran-jasa-pembuatan-aplikasi-dan-sis.pdfadoc.pub_proposal-penawaran-jasa-pembuatan-aplikasi-dan-sis.pdf
adoc.pub_proposal-penawaran-jasa-pembuatan-aplikasi-dan-sis.pdf
SeblakUhuuuy
 
SIM, Ratna Ayu Febrianti, Hapzi Ali, Sumber Daya Komputasi dan Komunikasi, Un...
SIM, Ratna Ayu Febrianti, Hapzi Ali, Sumber Daya Komputasi dan Komunikasi, Un...SIM, Ratna Ayu Febrianti, Hapzi Ali, Sumber Daya Komputasi dan Komunikasi, Un...
SIM, Ratna Ayu Febrianti, Hapzi Ali, Sumber Daya Komputasi dan Komunikasi, Un...
Ratna Ayu Febrianti
 
Laporan pemrograman visual3
Laporan pemrograman visual3Laporan pemrograman visual3
Laporan pemrograman visual3Fenty Hidayati
 

Similar to Ecomerence php (20)

Uts mppl
Uts mpplUts mppl
Uts mppl
 
Latar belakang (1)
Latar belakang (1)Latar belakang (1)
Latar belakang (1)
 
F066255899
F066255899F066255899
F066255899
 
225-705-1-PB.pdf
225-705-1-PB.pdf225-705-1-PB.pdf
225-705-1-PB.pdf
 
Sistem Informasi Pencatatan Daftar Penumpang Berbasis SMS Gateway
Sistem Informasi Pencatatan Daftar Penumpang Berbasis SMS GatewaySistem Informasi Pencatatan Daftar Penumpang Berbasis SMS Gateway
Sistem Informasi Pencatatan Daftar Penumpang Berbasis SMS Gateway
 
SIM 5,Novia Indriani, Hapzi Ali, SUMBER DAYA KOMPUTASI DAN KOMUNIKASI, Univer...
SIM 5,Novia Indriani, Hapzi Ali, SUMBER DAYA KOMPUTASI DAN KOMUNIKASI, Univer...SIM 5,Novia Indriani, Hapzi Ali, SUMBER DAYA KOMPUTASI DAN KOMUNIKASI, Univer...
SIM 5,Novia Indriani, Hapzi Ali, SUMBER DAYA KOMPUTASI DAN KOMUNIKASI, Univer...
 
111 lamaran
111 lamaran111 lamaran
111 lamaran
 
Persentasi Ku
Persentasi Ku Persentasi Ku
Persentasi Ku
 
Proposal hampir kelar
Proposal hampir kelarProposal hampir kelar
Proposal hampir kelar
 
SIM, OCTHAVIANI ARBANIYA, HAPZI ALI, SUMBER DAYA KOMPUTASI DAN KOMUNIKASI, U...
SIM, OCTHAVIANI ARBANIYA, HAPZI  ALI, SUMBER DAYA KOMPUTASI DAN KOMUNIKASI, U...SIM, OCTHAVIANI ARBANIYA, HAPZI  ALI, SUMBER DAYA KOMPUTASI DAN KOMUNIKASI, U...
SIM, OCTHAVIANI ARBANIYA, HAPZI ALI, SUMBER DAYA KOMPUTASI DAN KOMUNIKASI, U...
 
SIM, OCTHAVIANI ARBANIYA, HAPZI ALI, SUMBER DAYA KOMPUTASI DAN KOMUNIKASI, UN...
SIM, OCTHAVIANI ARBANIYA, HAPZI ALI, SUMBER DAYA KOMPUTASI DAN KOMUNIKASI, UN...SIM, OCTHAVIANI ARBANIYA, HAPZI ALI, SUMBER DAYA KOMPUTASI DAN KOMUNIKASI, UN...
SIM, OCTHAVIANI ARBANIYA, HAPZI ALI, SUMBER DAYA KOMPUTASI DAN KOMUNIKASI, UN...
 
Keamanan_E_Commerce_perdagangan elektronik.ppt
Keamanan_E_Commerce_perdagangan elektronik.pptKeamanan_E_Commerce_perdagangan elektronik.ppt
Keamanan_E_Commerce_perdagangan elektronik.ppt
 
Sim, Syifa Khairunnisa, Hapzi Ali, Sumber Daya Komputasi dan Komunikasi, Univ...
Sim, Syifa Khairunnisa, Hapzi Ali, Sumber Daya Komputasi dan Komunikasi, Univ...Sim, Syifa Khairunnisa, Hapzi Ali, Sumber Daya Komputasi dan Komunikasi, Univ...
Sim, Syifa Khairunnisa, Hapzi Ali, Sumber Daya Komputasi dan Komunikasi, Univ...
 
Cloud compiting
Cloud compitingCloud compiting
Cloud compiting
 
Sim, rahma pradina putri, prof. dr. hapzi ali, cma,forum 4 , universitas mer...
Sim, rahma pradina putri, prof. dr.  hapzi ali, cma,forum 4 , universitas mer...Sim, rahma pradina putri, prof. dr.  hapzi ali, cma,forum 4 , universitas mer...
Sim, rahma pradina putri, prof. dr. hapzi ali, cma,forum 4 , universitas mer...
 
Uts mppl (1)
Uts mppl (1)Uts mppl (1)
Uts mppl (1)
 
Rekap el sim (sblm UTS)
Rekap el sim (sblm UTS)Rekap el sim (sblm UTS)
Rekap el sim (sblm UTS)
 
adoc.pub_proposal-penawaran-jasa-pembuatan-aplikasi-dan-sis.pdf
adoc.pub_proposal-penawaran-jasa-pembuatan-aplikasi-dan-sis.pdfadoc.pub_proposal-penawaran-jasa-pembuatan-aplikasi-dan-sis.pdf
adoc.pub_proposal-penawaran-jasa-pembuatan-aplikasi-dan-sis.pdf
 
SIM, Ratna Ayu Febrianti, Hapzi Ali, Sumber Daya Komputasi dan Komunikasi, Un...
SIM, Ratna Ayu Febrianti, Hapzi Ali, Sumber Daya Komputasi dan Komunikasi, Un...SIM, Ratna Ayu Febrianti, Hapzi Ali, Sumber Daya Komputasi dan Komunikasi, Un...
SIM, Ratna Ayu Febrianti, Hapzi Ali, Sumber Daya Komputasi dan Komunikasi, Un...
 
Laporan pemrograman visual3
Laporan pemrograman visual3Laporan pemrograman visual3
Laporan pemrograman visual3
 

More from Haswi Haswi

Wawan tutorial-zend-bagian-5
Wawan tutorial-zend-bagian-5Wawan tutorial-zend-bagian-5
Wawan tutorial-zend-bagian-5
Haswi Haswi
 
Wawan tutorial-zend-bagian-4
Wawan tutorial-zend-bagian-4Wawan tutorial-zend-bagian-4
Wawan tutorial-zend-bagian-4Haswi Haswi
 
Wawan tutorial-zend-bagian-1-3
Wawan tutorial-zend-bagian-1-3Wawan tutorial-zend-bagian-1-3
Wawan tutorial-zend-bagian-1-3Haswi Haswi
 
Php form register
Php form registerPhp form register
Php form registerHaswi Haswi
 
Php dgn frame work code ignitier
Php dgn frame work code ignitierPhp dgn frame work code ignitier
Php dgn frame work code ignitierHaswi Haswi
 
Php & mysql pundamental
Php & mysql pundamentalPhp & mysql pundamental
Php & mysql pundamentalHaswi Haswi
 
Penggunaan xampp
Penggunaan xamppPenggunaan xampp
Penggunaan xamppHaswi Haswi
 
Peer to peer dan client server
Peer to peer dan client serverPeer to peer dan client server
Peer to peer dan client serverHaswi Haswi
 
Panduan biarkan php-mengabadikannya!
Panduan biarkan php-mengabadikannya!Panduan biarkan php-mengabadikannya!
Panduan biarkan php-mengabadikannya!Haswi Haswi
 
Masuun ajarmysql5-2
Masuun ajarmysql5-2Masuun ajarmysql5-2
Masuun ajarmysql5-2Haswi Haswi
 
Manipulasi database mysql dgn php
Manipulasi database mysql dgn phpManipulasi database mysql dgn php
Manipulasi database mysql dgn phpHaswi Haswi
 

More from Haswi Haswi (20)

Wawan tutorial-zend-bagian-5
Wawan tutorial-zend-bagian-5Wawan tutorial-zend-bagian-5
Wawan tutorial-zend-bagian-5
 
Wawan tutorial-zend-bagian-4
Wawan tutorial-zend-bagian-4Wawan tutorial-zend-bagian-4
Wawan tutorial-zend-bagian-4
 
Wawan tutorial-zend-bagian-1-3
Wawan tutorial-zend-bagian-1-3Wawan tutorial-zend-bagian-1-3
Wawan tutorial-zend-bagian-1-3
 
Tutorial mysql
Tutorial mysqlTutorial mysql
Tutorial mysql
 
Tutorial php
Tutorial phpTutorial php
Tutorial php
 
Query php
Query phpQuery php
Query php
 
Php tutorial-17
Php tutorial-17Php tutorial-17
Php tutorial-17
 
Php gtk
Php gtkPhp gtk
Php gtk
 
Php form register
Php form registerPhp form register
Php form register
 
Php dgn frame work code ignitier
Php dgn frame work code ignitierPhp dgn frame work code ignitier
Php dgn frame work code ignitier
 
Php & mysql pundamental
Php & mysql pundamentalPhp & mysql pundamental
Php & mysql pundamental
 
Penggunaan xampp
Penggunaan xamppPenggunaan xampp
Penggunaan xampp
 
Pengantar mysql
Pengantar mysqlPengantar mysql
Pengantar mysql
 
Peer to peer dan client server
Peer to peer dan client serverPeer to peer dan client server
Peer to peer dan client server
 
Panduan biarkan php-mengabadikannya!
Panduan biarkan php-mengabadikannya!Panduan biarkan php-mengabadikannya!
Panduan biarkan php-mengabadikannya!
 
Modul html
Modul htmlModul html
Modul html
 
Masuun ajarmysql5-2
Masuun ajarmysql5-2Masuun ajarmysql5-2
Masuun ajarmysql5-2
 
Manipulasi database mysql dgn php
Manipulasi database mysql dgn phpManipulasi database mysql dgn php
Manipulasi database mysql dgn php
 
Instalshield
InstalshieldInstalshield
Instalshield
 
Html dasar
Html dasarHtml dasar
Html dasar
 

Ecomerence php

  • 1. Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com Pengenalan PemrogramanPengenalan Pemrograman E-CommerceE-Commerce dengan PHP dandengan PHP dan MySQLMySQL Dian Andriana dian@informatika.lipi.go.id Abstrak Aplikasi perangkat lunak komputer dan Internet telah berkembang pesat pada dasawarsa ini, demikian pula dengan aplikasi web dan browser internet maupun intranet. Aplikasi E- Commerce telah lama berkembang diawali dengan EDI (Electronic Data Interchange) yang telah berkembang dalam lingkup internasional. Dalam makalah ini diuraikan mengenai arsitektur sistem, tool dan konfigurasi yang diperlukan untuk mengimplementasi aplikasi web e-commerce, konsiderasi masalah keamanan sistem, perancangan dari sisi diagram alur aplikasi dan perancangan basis data, serta kode program PHP yang diperlukan untuk implementasi aplikasi ini. Digunakan bahasa pemrograman PHP karena kemudahan dalam pemrograman, dan kelengkapan fitur untuk mengimplementasi sistem e-commerce, kemampuan untuk cross platform, serta 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 fasilitas Internet dimana terdapat website yang dapat menyediakan layanan "get and deliver". E- commerce akan merubah semua kegiatan marketing dan juga sekaligus memangkas biaya- biaya operasional untuk kegiatan trading (perdagangan) . Proses yang ada dalam E-commerce adalah sebagai berikut : 1 Lisensi Dokumen: Copyright © 2003 IlmuKomputer.Com Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.
  • 2. Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com  Presentasi electronis (Pembuatan Web site) untuk produk dan layanan.  Pemesanan secara langsung dan tersedianya tagihan.  Otomasi account Pelanggan secara aman (baik nomor rekening maupun nomor Kartu Kredit).  Pembayaran 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.  Mengurangi biaya-biaya yang berhubungan dengan kertas, seperti biaya pos surat, pencetakan, report, dan sebagainya.  Mengurangi keterlambatan dengan mengunakan transfer elektronik / pembayaran yang tepat waktu dan dapat langsung dicek.  Mempercepat pelayanan ke pelanggan, dan pelayanan lebih responsif. 2
  • 3. Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com Gambar 1. Contoh Aplikasi E-Commerce : Pembelian CD dengan Kartu Kredit 2. Arsitektur dan Konfigurasi Sistem Arsitektur dasar dari aplikasi web ini adalah arsitektur clientIserver. Artinya 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 apapun di sisi client. Server Client Request Response 3
  • 4. Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com Gambar 2. Arsitektur Client/Server 2.1 Stateless Web Server Untuk aplikasi E-Commerce ini web server harus dapat mengingat siapa / 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 memperlakukan informasi permintaan (request) secara serial, satu persatu pada saat request masuk. Tidak ada koneksi permanen (persistence) yang berjalan setelah sebuah halaman telah selesai dilayani / dikerjakan. StateStateState S t a t e Server Client Request Response Request Request Response Response Server Client Request Response Request Request Response Response A B Gambar 3. Perbandingan State dalam Sistem Aplikasi: A.State yang kontinyu dalam aplikasi desktop, dan B.Stateless protokol dalam aplikasi web Agar sebuah situs web mempunyai memori / state, dalam hal ini aplikasi ini mampu mengingat ‘siapa memesan apa’, beberapa informasi yang mengidentifikasi pengguna harus dikirim dengan setiap request halaman web. Informasi tersebut disimpan dengan menggunakan session. 4
  • 5. Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com Session tersebut dipergunakan untuk merekam / tracking aktivitas pengguna yang melalui sejumlah halaman pada website, misalnya pada jenis aplikasi Shopping Cart (kereta belanja). Direkam pula informasi identitas pengguna yang memiliki kereta belanja tersebut. Dengan PHP, untuk penggunaan session ini mula-mula dilakukan pengaturan pada file php.ini yang menunjukkan session dimulai (start). Dengan ini PHP akan membuat suatu identifier unik dan file yang berkaitan, yang disimpan di server (lokasinya di atur di php.ini dan nilai defaultnya di direktori /tmp). Kemudian pada saat pengguna berkunjung pada 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. Implementasi session dapat mempergunakan cookie yang disimpan pada sisi client, atau dipropagasikan melalui alamat URL. Untuk penggunaan cookie, yaitu dengan passing variabel melalui cookie yang menyimpan informasi semua elemen barang belanja dan harganya. Namun hal ini memiliki keterbatasan yaitu dari (http://www.netscape.com/newsref/std/cookie_spec.html) mengenai spesifikasi cookie yang hanya mengijinkan 20 cookie per domain dan berukuran hanya 4 bytes per cookie. Cara lain adalah dengan memberi identitas / identifier unik pada masing-masing 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 menggunakan 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 mengaktifkan flag –enable-trans-sid dalam konfigurasi PHP, hal ini berguna agar session id akan secara otomatis ditambahkan ke setiap relative link pada halaman-halaman web setiap kali session telah dimulai. 2.2 Konfigurasi Sistem dan Tool Yang Digunakan Masalah lain dalam aplikasi ini adalah mengenai aspek keamanan dalam memperoleh informasi dari pengguna, terutama data mengenai penggunaan kartu kredit. Informasi ini perlu diverifikasi oleh institusi yang berkualifikasi dan memerlukan pengaturan konfigurasi serta penggunaan beberapa macam tool. Dalam membangun aplikasi ini dipergunakan algoritma untuk memelihara (maintain) state, pengambilan informasi secara secure terhadap kartu kredit, menggunakan kode pemrograman 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. 5
  • 6. Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com 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 Public key mesin tersebut. Namun public key ini tidak cukup untuk dapat 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 melakukan dekripsi data. 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. Pesan terenkripsi yang dikirim dan diterima akan memiliki semacam ‘signature’, dan verifikasi selanjutnya dilakukan terhadap ‘signature’ tersebut. Untuk itu, organisasi yang akan mempergunakan komunikasi melalui web memerlukan kerjasama dengan organisasi lain yang mengeluarkan sertifikat yang memverifikasi pengirim pesan. Organisasi ini pulalah yang memberikan Publik key dan Private key. Salah satu contoh organisasi yang menerbitkan sertifikat sekuriti adalah VeriSign. 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 yakni pada aspek sumber daya manusia apabila kurang jujur, yakni apabila terjadi akses tidak sah dilakukan oleh orang yang sudah berada dalam sistem. 6
  • 7. Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com 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. Setelah Apache dikonfigurasi dengan SSL, maka website aplikasi dapat 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. Toko Online Internet User Publik 1 User Publik 2 Modem E-Commerce Server Modem Server Pemroses Agen Pemroses Kartu Kredit User/Operator Server Pemroses Organisasi Penerbit Sertifikatti Internet Internet Gambar 5. Komunikasi Antar Situs dalam Aplikasi E-Commerce 2.2.5 Penggunaan Firewall Firewall digunakan untuk melindungi jaringan lokal dari serangan luar. Ada beberapa pilihan untuk menempatkan web server :  web server ditempatkan di luar dari Firewall (lihat gambar 6), adapun keuntungan dengan menempatkan server diluar dari firewall adalah bahwa web server 7
  • 8. Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com 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. 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 transaksi pada TCP port 80, atau dengan membolehkan secara langsung melewatkan paket maupun dengan 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" tersebut menggunakan kesalahan dari program CGI script, mereka akan mempunyai akses tak terbatas ke jaringan lokal. 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). 8
  • 9. Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com 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 dikompilasi ulang dengan PHP sehingga akan dapat mengenali 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, Telnet, dan HTTPS. Untuk dapat menggunakan fungsi ini, konfigurasi instalasi PHP harus menyertakan flag –with-curl. 2.3 Pemrosesan Kartu Kredit Pemrosesan kartu kredit dilakukan oleh perusahaan yang khusus untuk itu, terdapat beberapa nama perusahaan yang cukup dikenal, namun semuanya memiliki 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 berfungsi untuk membandingkan kode yang diterima dengan nilai yang didapat sebelumnya dari agen pemrosesan. Untuk aplikasi ini dipergunakan Authorizenet.com sebagai pemroses kartu kredit. 3. Rancangan Aplikasi E-Commerce Gambaran aplikasi e-commerce akan diuraikan sebagai berikut. Mula-mula 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, 9
  • 10. Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com dan selanjutnya user dapat melanjutkan berbelanja / memilih item yang lain. Server mengingat item apa saja yang telah dipesan. Pada saat pengguna melanjutkan 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 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 kereta belanja (shopping cart). Halaman ini memungkinkan pengguna untuk menambah atau mengurangi jumlah item yang dipesan, dan menghapus suatu item pesanan. Pada akhir proses pemesanan, ditampilkan halaman yang mengumpulkan informasi pengguna, preferensi, dan halaman untuk memulai pemrosesan kartu kredit. Halaman ini juga menunjukkan pesan bila ada kesalahan informasi atau terdapat penolakan autorisasi kartu kredit oleh agen pemroses. Selanjutnya, setelah transaksi selesai diproses, terdapat tanda terima transaksi yang mengkonfirmasi pesanan dan menyampaikan nomor id pesanan kepada pengguna. Yang penting diperhatikan untuk pengembangan aplikasi e-commrce adalah informasi nomor kartu kredit dan informasi personal lainnya harus aman dan tidak mudah dilihat oleh orang yang tidak berhak. 10
  • 11. Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com Mulai Pilih Katagori Pilih Item Simpan Identitas Item Lihat Daftar Pesanan Cetak Daftar Pesanan Edit Daftar Jumlah Pesanan Check Out Masukkan Nomor Kartu Kredit Selesai Validasi Kartu Kredit oleh Pihak Ketiga Cetak Bukti Nomor Pemesanan Gambar 9. Diagram Alir Penggunaan Aplikasi E-Commerce 11
  • 12. Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com Gambar 10. Rancangan Layar Halaman Depan Contoh Web E-Commerce Gambar 11. Rancangan Layar Halaman Contoh Daftar Barang 12
  • 13. Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com Gambar 12. Rancangan Layar Halaman Contoh Daftar Pesanan Gambar 13. Rancangan Layar Halaman Contoh Pemrosesan Kartu Kredit 13
  • 14. Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com 3.2 Rancangan Basis Data Pesanan Id_user Id_alamat Id_status Total_harga Id_pengiriman Biaya_kirim Thn_exp_kartu Bln_exp_kartu Kode_jenis_kartu Tgl_buat Id_Pesanan User email nama Id_user Alamat Id_user Alamat Alamat2 Kota Prop KodePos Negara Telepon Fax Id_alamat Jenis_Kartu Jenis_Kartu Kode_jenis_kartu Pengiriman Pengiriman Per_Order Per_Item Id_pengiriman Status Status Id_status Item Kode_Register Kode_Lokasi Jumlah Harga Id_Pesanan Kode_Katagori Nomor_Barang Gambar 14. Rancangan Basis Data Aplikasi Web E-Commerce Tabel utama yang digunakan dalam aplikasi ini adalah tabel Pesanan, yang 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 Pengiriman berisi informasi opsi yang diberikan untuk pengiriman barang. Misalnya terdapat pilihan menggunakan UPS, DHL, TIKI, Pos, dan sebagainya. Tabel Status berisi catatan mengenai status pesanan, yaitu dapat berupa status dikembalikan (backordered), dikirim (shipped), atau dibatalkan (cancelled). Terdapat pula tabel Jenis_Kartu untuk menyimpan informasi jenis kartu kredit seperti Visa, Mastercard, dan sebagainya. Tabel 1. Tabel Alamat Field Jenis Kosong Ekstra Keterangan Id_Alamat Int(11) Tidak Auto_inc rement PRIMARY KEY Id_User Varchar(40) Tidak KEY Alamat Varchar(40) Ya Alamat2 Varchar(40) Ya Kota Varchar(40) Ya Prop Varchar(40) Ya KodePos Varchar(10) Ya Negara Varchar(20) Ya Telepon Varchar(20) Ya Fax Varchar(20) Ya 14
  • 15. Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com Tabel 2. Tabel Jenis_Kartu Field Jenis Kosong Ekstra Keterang an Kode_Jenis_K artu Char(3) Tidak Jenis_Kartu Varchar(30) Tidak Tabel 3. Tabel Pesanan Field Jeni s Kosong Defaul t Ekstra Keterangan Id_pesanan dou ble Tidak Auto_ increment PRIMARY KEY Id_user Int (11) Tidak KEY Id_alamat Int (11) Tidak Id_status Tin yint (4) Tidak Total_harga Dou ble Tidak ‘0.00’ Id_pengiriman Tin yint (4) Tidak Biaya_kirim Dou ble Tidak ‘0.00’ Tahun_exp_kartu Int (11) Tidak Bulan_exp_kartu Tin yint (4) Tidak Kode_jenis_kartu Cha r(3) Tidak Tgl_buat Tim esta mp (14) Ya Tabel 4. Tabel Pengiriman Field Jenis Kosong Defaul t Ekstra Keterangan Id_Pengirima n Tinyint(4) Tidak Auto_ increment PRIMARY KEY Pengiriman Varchar (20) Tidak Per_Order Double Tidak ‘0.00’ Per_Item Double Tidak ‘0.00’ 15
  • 16. Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com Tabel 5. Tabel Status Field Jenis Kosong Ekstra Keterangan Id_Status Tinyint(4) Tidak Auto_ increment PRIMARY KEY Status Varchar (20) Tidak Tabel 6. Tabel User Field Jenis Kosong Ekstra Keterangan Id_User int(11) Tidak Auto_ increment PRIMARY KEY email Varchar (255) Tidak UNIQUE nama Varchar(80) 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_Register Varchar(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 hosting web site ini, tentunya akan sangat diragukan keamanannya, karena ISP menggunakan shared server yang digunakan secara bersama, meskipun telah menggunakan konfigurasi secure server yang ditawarkan oleh ISP tersebut. Nomor kartu kredit yang tersimpan dalam basis data akan dapat diakses oleh orang lain yang mempunyai akses terhadap mesin server. Juga tidak ada kebutuhan untuk menyimpan nomor kartu kredit dalam bentuk apapun. Yang diperlukan oleh aplikasi ini adalah 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. 16
  • 17. Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com Server E-Commerce Toko Online User / Pembeli Agen Pemroses Kartu Kredit Nomor Kartu Kredit Tanggal Kadaluarsa Nama Alamat dsb. Nomor Kartu Kredit Tanggal Kadaluarsa Nama Alamat dsb. Kode Kembalian Membandingkan kode kembalian dengan kode yang sebelumnya diperoleh dari Agen Pemroses Konfirmasi Bukti Pemesanan Hapus data kartu kredit setelah proses selesai dilakukan Gambar 15. Komunikasi Antar Situs dan Penghapusan Informasi Kartu Setelah Proses Selesai 4. Kode Program Pemrograman untuk aplikasi e-commerce ini diimplementasikan dengan 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 Fungsi session_register() digunakan untuk menyatakan memulai session, sekaligus didefinisikan variabel apa saja yang akan disimpan dalam session. Fungsi 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 mengakibatkan error. <? session_register(“var1”); $var1 = “nilai1”; ?> 17
  • 18. Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com 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 untuk session ini : Session_destroy() : fungsi untuk menonaktifkan session dan semua variabel yang berkaitan dengannya. Session_unregister() : fungsi untuk menghapus nilai dari suatu variabel dalam file session. Session_set_save_handler() : fungsi yang memungkinkan untuk mengatur sendiri metode penyimpanan (storing), pengambilan (retrieving), dan penulisan (writing) session handler. Metode session handler yang dipilih adalah yang manajemen session berdasarkan file-based. Namun metode ini tidak sesuai digunakan untuk lingkungan tercluster (clustered environment) dimana beberapa mesin bekerja secara bersama untuk melayani satu situs, untuk lingkungan seperti ini tidak dapat menggunakan local filesystem. Session_encode(): fungsi untuk menuliskan 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(string) Session_decode() : fungsi untuk membalik proses encoding di atas, sehingga variabel dikembalikan kedalam representasi PHP. 4.2 Fungsi-fungsi cURL Untuk aplikasi ini diperlukan komunikasi dengan layanan validasi kartu kredit, dilakukan dengan fungsi cURL. Cara kerjanya adalah mula-mula fungsi ini akan mengirim pesan yang secure melalui HTTPS, dan layanan yang memvalidasi kartu kredit tersebut akan mengembalikan response, yang kemudian diproses lebih lanjut dengan 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, 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/transact.dll?exp=foo&cardtype=bar $ch = curl_init($cc_company_url); 18
  • 19. Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com 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 fungsi-fungsi ini yang menjalankan transaksi dan mengembalikan hasil ke dalam variabel $data. $ch = curl_init($authorize_net_url); curl_setopt($ch, CURL_RETURNTRANSFER, 1); $data = curl_exec($ch); curl_close($ch); 5. Hasil dan Pembahasan Prototipe ini dibangun menggunakan perangkat lunak open source serta memiliki karakteristik cross-platform. Dari hasil diskusi dengan pengguna, diperoleh masukan mengenai kebutuhan pengguna akan perangkat lunak e-commerce, namun spesifik pada suatu produk tertentu, serta kebutuhan untuk memperkaya 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. Bagi lembaga penelitian atau lembaga pendidikan, perlu juga memperhatikan masalah HKI dalam layanan e-commerce untuk produk-produk karya intelektual, misalnya untuk layanan e-commerce dalam situs web digital library. 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. 19
  • 20. Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com 6. Kesimpulan Pengembangan aplikasi e-commerce bagi sebuah perusahaan / lembaga merupakan proses yang cukup kompleks. Melibatkan beberapa organisasi / situs dalam penanganan sekuriti dan otorisasi. Perangkat lunak aplikasi e-commerce dalam dunia bisnis dapat mendukung pemotongan rantai distribusi sehingga konsumen dapat memperoleh suatu produk dengan harga yang lebih murah. Jenis antarmuka web dipilih dengan pertimbangan fleksibilitas implementasi perangkat lunak ini yang dapat dilakukan di jaringan intranet maupun internet, kemudahan untuk deployment, serta kemampuan cross platform. Dalam makalah ini telah diuraikan mengenai arsitektur sistem, tool dan konfigurasi yang diperlukan untuk mengimplementasi aplikasi web e-commerce, konsiderasi masalah keamanan sistem, perancangan dari sisi diagram alur aplikasi dan perancangan basis data, serta kode program PHP yang diperlukan untuk implementasi aplikasi ini. Daftar Pustaka 1. http://www.mysql.com 2. http://www.php.net 3. Greenspan,Jay, and Bulger,Brad, “MySQL/PHP Database Application”, M&T Books, Foster City CA USA, 2001. 4. Fery Soswanto, “E-Commerce dengan memanfaatkan Sistem Operasi Linux”. 20
  • 21. Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com Biografi Penulis Dian Andriana. Lahir di Surabaya, 10 Januari 1973. Setelah dua tahun di SMUN 5 Surabaya, menamatkan SMU di SMU PGII 1 Bandung tahun 1991. Menyelesaikan program S1 di Jurusan Teknik Informatika Institut Teknologi Bandung pada tahun 1997. Saat ini bekerja sebagai peneliti pada instansi Lembaga Ilmu Pengetahuan Indonesia (LIPI), tepatnya di Pusat Penelitian Informatika. Kompetensi pada bidang Software Engineering, Database dan Web Engineering. Berpengalaman mengembangkan Sistem Informasi aplikasi database under Windows dan Linux. 21