BAB II LANDASAN TEORI 2.1 Internet Internet merupakan jaringan global yang berisi berbagai macam ukuran jaringan komputer di seluruh dunia, mulai dari sebuah Personal Computer, jaringan lokal berskala kecil, menengah hingga jaringan-jaringan utama yang membentuk tulang punggung internet seperti ARPANET (Advanced Research Projects Agency), NSFnet (The US National Science Foundation), NEARnet,SURAnet dan lain-lain (I Gusti Ngurah Dwidirahmana, 2002). Jaringan-jaringan itu saling berhubungan dan berkomunikasi dalam bahasa atau protokol yang sama, disebut dengan IP atau Internet Protocol pada network layernya dan TCP (Transmission Control Protocol) atau UDP (User Datagram Protocol) pada transport layernya. Dengan adanya protokol tersebut, maka pemakai pada setiap jaringan yang terhubung pada jaringan internet dapat mengakses semua service atau layanan yang disediakan oleh jaringan lainnya Kumpulan jaringan yang terinterkoneksi disebut internetwork. 2.1.1 World Wide Web WWW atau Word Wide Web merupakan kumpulan informasi pada beberapa server komputer yang terhubung satu sama lain dalam jaringan internet (Sampurna, Elexmedia Komputindo 1996). Informasi yang ada dalam Web mempunyai link-link yang menghubungkan informasi tersebut ke informasi lain di 5 6 dalam jaringan internet. Sistem yang menghubungkan informasi melalui link ini disebut dengan nama hypertext ini kemudian berubah menjadi hypermedia, dimana link-link penghubung antarinformasi bukan lagi hanya berupa suatu teks, tetapi juga bisa berupa file multimedia seperti gambar, suara atau video. 2.1.2 Cara Kerja World Wide Web Dua cakupan penting pada web yaitu: software Web browser dan software Web server. Kedua software ini bekerja seperti sebuah sistem client server. Web browser yang bertindak sebagai client memungkinkan untuk menginterprestasikan dan melihat informasi pada Web, sedang Web Server yang bertindak sebagai server memungkinkan untuk menerima informasi yang diminta oleh browser. Jika permintaan akan suatu informasi datang, Web server mencari file yang diminta tersebut dan kemudian mengirimkan ke browser yang memintanya. 2.1.3 Protokol Internet Protokol adalah spesifikasi formal yang mendefinisikan prosedur-prosedur yang harus diikuti ketika mengirim dan menerima data (I Gusti Ngurah Dwidirahmana, 2002). Untuk mengurangi kerumitan rancangan, sebagian besar jaringan diorganisasi sebagai suatu tumpukan layer atau level (Andrew S. Tanenbaum, 1997). 2.1.4 Hypertext Transfer Protocol (HTTP) HTTP adalah suatu protokol yang menentukan aturan yang perlu diikuti oleh Web browser dalam meminta atau mengambil suatu dokumen, dan oleh Web 7 server dalam menyediakan dokumen yang diminta Web browser. Protokol ini merupakan protokol standar yang digunakan untuk mengakses dokumen HTML. 2.1.5 Uniform Resource Locator (URL) URL adalah sarana yang digunakan untuk menentukan lokasi informasi pada suatu Web server, URL dapat diibaratkan sebagai suatu alamat, dimana alamat tersebut terdiri dari: - protokol yang digunakan oleh suatu browser untuk mengambil informasi - nama dari komputer dimana informasi tersebut berada, dan - jalur/ path serta nama file dari suatu informasi. Format umum dari suatu URL adalah sebagai berikut: Protokol_transfer://nama_host/nama_file Berikut ini adalah contoh dari URL: http://mtv.com/music/index.html dengan: - http adalah protokol yang digunakan, - mtv.com adalah nama dari server komputer dimana informasi yang dicari berada, - music adalah jalur/ path dari informasi yang dicari, - index.html adalah nama file dimana informasi tersebut berada. 2.1.6 Protokol Transfer Protokol transfer adalah suatu protokol yang digunakan untuk pengiriman informasi di internet. HTTP adalah salah satu protokol transfer yang merupakan 8 standar untuk suatu dokumen Web. Selain protokol HTTP, dalam internet juga dikenal beberapa protokol lain, diantaranya adalah: - FTP (File Transfer Protokol) Protokol ini dirancang untuk memungkinkan pemakai mentransfer file dalam format text atau biner dalam suatu server komputer di internet. - Gopher Protokol ini dirancang untuk mengakses server gopher yang menyediakan informasi dengan memakai sistem menu, atau melalui hubungan ke Telnet. - News (Network News Transfer Protokol, NNTP) ini adalah protokol yang digunakan untuk mendistribusikan berita di Usenet. Usenet adalah suatu sistem yang dirancang sebagai forum diskusi dengan berdasarkan pada topiktopik yang disebut newsgroup. - Telnet Protokol ini digunakan untuk login ke suatu server komputer. 2.1.7 Domain Name System (DNS) Kompiler-kompiler di internet memakai format penamaan standar untuk memudahan pengelolaan server komputer di internet. Sistem penamaan server ini adalah Domain Name System (DNS). DNS membuat tingkatan domain yang merupakan kelompok komputer-komputer yang terhubung ke internet. 2.1.8 Homepage Setiap perusahaan atau pribadi yang memiliki informasi di World Wide Web memerlukan suatu alamat (URL) khusus yang disebut Web site. Setiap 9 informasi disimpan dalam suatu file yang berbeda-beda yang disebut Web page. Di dalam Web page inilah tersimpan berbagai informasi dan link yang menghubungkan suatu informasi ke informasi lainnya, baik itu di dalam suatu Web page yang sama ataupun dalam Web page lain pada Web site yang berbeda. Sebelum mengakses berbagai macam informasi pada suatu Web site, akan ditemui suatu Web page pembuka yang disebut sebagai home page. Home page merupakan halaman pertama dari suatu Web site yang biasanya berisi tentang apa dan siapa dari perusahaan atau organisasi pemilik Web site tersebut. 2.1.9 Browser Merupakan program untuk mengakses Web dan dirancang untuk mengambil informasi-informasi dari suatu server komputer pada jaringan internet. Informasi-informasi ini biasanya dikemas dalam page-page, dimana setiap page memiliki beberapa link yang menghubungkan Web page tersebut ke sumber informasi lainnya. Lynx adalah contoh browser teks yang hanya mampu menampilkan informasi dalam bentuk teks yang bisa digunakan pada sistem Unix dan VMS. Beberapa contoh browser lainnya adalah Nestcape Navigator, Mosaic dan Internet Explorer. 2.2 Basis Data Basis data dapat didefinisikan dalam sejumlah sudut pandang, seperti : - Himpunan kelompok data (arsip) yang saling berhubungan yang diorganisasikan sedemikian rupa agar dapat dimanfaatkan kembali dengan cepat dan mudah. 10 - Kumpulan data yang saling berhubungan yang tersimpan aecara bersama sedemikian rupa dan tanpa pengulangan (redudansi) yang tidak perlu, untuk memenuhi berbagai kebutuhan. - Kumpulan file atau tabel atau arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektronis (Fathansyah, CV Informatika 1999). Melalui penyusunan dan pengelolaan basis data akan didapatkan sejumlah tujuan berikut: (Fathansyah, CV Informatika 1999) - Kecepatan dan kemudahan (Speed) Pemanfaatan basis data memungkinkan menyimpan data atau melakukan perubahan/ manipulasi data dan menampilkan kembali data tersebut lebih cepat dan mudah. - Efisiensi Ruang Penyimpanan (Space) Karena keterkaitan erat antar kelompok data dalam sebuah basis data, maka redudansi data pasti akan selalu ada. Banyaknya redudansi ini menyebabkan pemborosan ruang penyimpanan. Melalui pemanfaatan basis data, efisiensi penggunaan ruang penyimpanan akan dapat dilakukan. - Keakuratan (Accuracy) Pemanfaatan pengkodean atau pembentukan relasi antar data bersama dengan penerapan aturan/ batasan (constraint) tipe data, domain data, keunikan data, dan sebagainya yang secara ketat dapat diterapkan dalam sebuah basis data, sangat berguna untuk menekan ketidakakuratan pemasukan/ penyimpanan data. 11 - Kelengkapan (Completeness) Lengkap atau tidaknya data yang di kelola dalam sebuah basis data bersifat relatif (baik terhadap kebutuhan pemakai maupun terhadap waktu). - Keamanan (Security) Untuk sistem yang besar, aspek keamanan diperlukan dengan menentukan siapa-siapa (pemakai) yang boleh menggunakan basis data. 2.3 SQL (Structured Query Language) Merupakan bahasa query terstruktur yang digunakan untuk melakukan manipulasi terhadap data. SQL memiliki statemen DDL (Data Definition Language) dan juga DML (Data Manipulation Language). DDL merupakan kumpulan statemen untuk mendefinisikan objek-objek basis data, seperti membuat sebauh tabel basis data. Sedangkan DML merupakan kumpulan statemen untuk memanipulasi data seperti penyimpanan data ke suatu tabel, mengubahnya, menghapusnya atau sekedar menampilkannya kembali. Sebuah ekspresi SQl dasar sebenarnya hanya terdiri dari tiga klausa, yaitu select, from dan where. - Klausa select digunakan untuk menetapkan daftar atribut (field) yang diinginkan sebagai hasil query. - Klausa form digunakan untuk menetapkan tabel atau gabungan tabel yang akan ditelusuri selama query data dilakukan. - Klausa where yang sifatnya opsional, digunakan sebagai predikat (kriteria) yang harus dipenuhi dalam memperoleh hasil query. Sintaksnya sebagai berikut: 12 Select nama_field from nama_tabel [where (kondisi)] dengan : [where (kondisi)] merupakan optional artinya boleh digunakan atau tidak. 2.4 PHP Professional Home Page atau PHP adalah bahasa scripting server side yaitu bahasa yang digunakan pada server tanpa perlu melakukan kompilasi tetapi cukup menuliskan tulisan dalan bentuk ASCII-nya saja (Mufid D Purwanto dan Muhammad Tito Herlambang, 2002). PHP disebut juga sebagai bahasa interpreter. PHP sangat mirip dengan bahasa C, juga mempunyai karakteristik yang mirip dengan Perl. Bahasa pemrograman biasanya diterjemahkan atau dikompilasi terlebih dahulu. Interpreter adalah sebuah program yang digunakan untuk membaca file yang berisi kode program yang akan dijalankan, kemudian interpreter tersebut akan meminta CPU untuk melakukan perintah yang diterimanya. Compiler adalah sebuah program yang membaca file yang berisi source code kemudian mengkompilasi source code tersebut menjadi kode biner yang dapat dieksekusi secara langsung oleh komputer. Kode biner ini tidak dapat dibaca dan dimengerti oleh kebanyakan orang kecuali oleh orang yang tahu bahasa assembler atau mesin. PHP tersedia untuk hampir semua platform termasuk Linux dan Windows. Seperti halnya dengan program open source lainnya, PHP dibuat di bawah lisensi GNU (General Public License) yang dapat di download secara gratis melalui situs http://www.php.net. 13 2.4.1 Pemanfaatan PHP dapat digunakan bersama dengan HTML sehingga memudahkan dalam membangun aplikasi web dengan cepat. PHP juga dapat digunakan untuk meng-update database, menciptakan database dan mengerjakan perhitungan matematika yang kompleks. Selain itu PHP juga dapat digunakan untuk menghapus file-file secara acak di suatu sistem komputer, tergantung pada level keamanan yang menjalankan PHP. PHP dapat membuat koneksi jaringan internet dan melayani koneksi tersebut. Karena kehandalannya, cepat, kuat, stabil dan mudah berinteraksi dengan berbagai aplikasi pendukung lainnya seperti MySQL, PostgressSQL, Interbase, ODBC, mSQL, Oracle, Sybase menjadikan PHP banyak digunakan oleh para web developer untuk membangun aplikasi web. 2.4.2 Struktur Program Seperti halnya bahasa pemrograman lainnya, PHP juga mempunyai struktur kaidah penulisan programnya agar dapat dijalankan dengan benar. 2.4.2.1 PHP dalam HTML Kode program PHP dapat ditulis menyatu dengan tag-tag HTML dalam file. Kode PHP diawali dengan tag <? Atau <?php dan ditutup dengan tag ?>. Tag tersebut disisipkan diantara tag <body> dengan tag </body> dalam tag-tag html. Isi dari tag PHP merupakan script dari PHP yang akan diproses. Script PHP dapat dibuat dengan menggunakan editor VI pada linux atau Advanced Editor dan disimpan dengan ekstensi “.php”. 14 Web server akan menjalankan PHP untuk menerjemahkan bagian halaman tersebut. Halaman Web yang dilihat oleh user dalah gabungan antara perintah HTML standar dan output dari interpreter PHP. Contoh penulisan kode PHP sebagai berikut: <HTML> <HEAD><TITLE> Coba Menuliskan PHP </TITLE> </HEAD> <BODY> <?php $username = “Feri Andi Mulyono”; echo $username; ?> </BODY> </HTML> 2.4.2.2 Komentar Program Komentar pada PHP juga mirip dengan sintaks komentar pada ‘C’. ‘C++’ maupun shell Unix. Dapat digunakan tanda // untuk komentar satu baris atau /* di akhiri */ untuk komentar lebih dari satu baris atau bahkan menggunakan tanda # di awal komentar seperti sintaks komentar pada Unix shell. 2.4.3 Tipe Data PHP mempunyai tiga dasar tipe data, yaitu integer, double dan string. Salin tipe dasar PHP juga mempunyai tipe data array, floating point dan object. 15 2.4.3.1 Tipe Data Integer Bilangan integer dalam PHP dapat dituliskan dalam bentuk sebagai berikut: - Bilangan desimal, contoh $a = 8765; - Bilangan negatif desimal, contoh $a = -354; - Bilangan octal, contoh $a = 017; sama dengan bilangan desimal 15 - Bilangan heksadesimal, contoh $a = 0x13; sama dengan bilangan desimal 19 2.4.3.2 Tipe Data Floating Point Bilangan floating point dapat dideklarasikan menggunakan sintaks berikut: $a = 0.134; atau $a = 1.34e-1; Nilai maksimum sebuah bilangan floating point adalah ~1.8e308 dengan ketelitiannya mencapai 14 digit desimal. 2.4.3.3 Tipe Data String String dapat dituliskan dengan dua cara, pertama, menggunakan tanda “ dan menggunakan tanda ‘. Cara lainnya adalah dengan mengisikan string yang dimaksud setelah tanda “<<<”. 2.4.3.4 Tipe Data Array Seperti juga dalam bahasa pemrograman lain, array atau larik pada PHP juga mengenal adanya larik multidimensi. Untuk mendefinisikan sebuah larik dapat dilakukan dengan sintak berikut ini untuk larik satu dimensi: 16 $a[0] = “satu”; $a[1] = ”dua”; $b[“satu”] = 10; Sedang untuk larik multidimensi dapat dilakukan dengan menuliskan sintaks berikut: $a[1][0] = $f ; # dua dimensi $a[“satu”][2] = $f; # larik campuran dengan index integer dan string $a[3][“dua”] = $f; # larik campuran dengan index integer dan string $a[“tiga|][4][“ayam”][0] = $f; # empat dimensi 2.4.3.5 Tipe Data Object Untuk menginisialisasikan sebuah obyek, digunakan perintah new seperti contoh berikut: Class satu{ Function hitung() { Echo “saya sedang belajar.”; } } $uji = new satu; $uji->hitung(); Program diatas akan menghasilkan tulisan “saya sedang belajar” yang dikerjakan pada bagian fungsi hitung(). 17 2.4.4 Peubah Untuk mendeklarasikan sebuah peubah digunakan tanda dollar $ yang diikuti dengan nama dari peubah tersebut. Peubah ini case-sensitive, artinya mengenal perbedaan huruf besar dan huruf kecil dalam perintah maupun penamaan peubah. Deklarasi peubah dapat dilihat: $var = “Feri” $Var = “Andi” echo “$var $Var”; // akan muncul tulisan Feri Andi 2.5 MySQL MySQL adalah database engine atau server database yang mendukung bahasa database pencarian SQL. SQL merupakan paket standar untuk berkomunikasi dengan basis data manapun untuk melakukan proses pencarian, penyimpanan dan pengambilan data (Mufid D. Purwanto, Elex Media 2002). MySQL menyimpan data dalam bentuk file-file di harddisk. Untuk dapat berjalan dengan baik, file-file yang berisi basis data dari MySQL ini harus dipasang pada harddisk lokal. Dengan menghindari pembagian basis data pada beberapa harddisk di jaringan, dapat menghindari juga penurunan kecepatan dalam pengelolaan basis data tersebut. MySQL pada mulanya dikembangkan untuk memenuhi kebutuhan pribadi. MySQL sangat handal dan sangat cepat sehingga cocok untuk aplikasi-aplikasi besar. Pembuat MySQL memiliki basis data MySQL yang menyimpan tidak kurang dari 50 juta record. Ukuran file maksimum untuk sistem file ext2 di Linux adalah kira-kira 2 GB. Oleh karena itu setiap file dibatasi sampai 2 GB jika 18 dijalankan pada sistem file ext2. Sistem basis data MySQL yang akan datang mungkin akan mampu menangani jauh lebih banyak lagi. 2.5.1 Tipe Data MySQL merupakan basis data server yang mendukung berbagai tipe data. Tipe data yang didukung tersebut dapat dilihat pada Tabel 2.1. Tabel 2.1. Tipe Data MySQL Tipe Data Numerik Tinyint Smallint Mediumint Int Bigint Float Double 2.5.2 Kisaran Data 0 – 255 0 – 65535 0 – 166777215 0 – 4294967295 0 -264 -3.402823466E38 s/d – 1.175494351E-38,0 dan 1.1754943551E-38 s/d 3.402823466E38 -1.7976931348623157E308 – 2.225073858507201E-308, 0 dan 2.225073858507201E-308 – 1.7976931348623157E308 Kebutuhan Memori 1 bytes 2 bytes 3 bytes 4 bytes 8 bytes 4 bytes 8 bytes Operasi pada Basis Data Beberapa operasi mendasar yang dapat dilakukan pada basis data server MySQL meliputi membuat dan menghapus basis data, membuat, menghapus dan mengedit tabel serta membuat dan menghapus index. Perintah yang digunakan untuk melakukan operasi tersebut adalah: create, drop dan alter. a. Membuat dan menghapus basis data Untuk membuat basis data digunakan perintah berikut: create database <nama_basis_data>; Untuk menghapus basis data digunakan perintah berikut: 19 drop database<nama_basis_data>; b. Membuat, mengedit dan menghapus tabel Untuk membuat tabel digunakan perintah berikut: create table <nama_tabel>( <field_1 tipe_data(ukuran),[<field_2 tipe_data(ukuran)>, <field_3 tipe_data(ukuran)>] ); Untuk menghapus tabel digunakan perintah berikut: drop table <nama_tabel> Untuk mengedit tabel digunakan perintah berikut: alter table<nama_tabel> change<nama_kolom> <nama_kolom_baru>[,tipe_data(ukuran)>]; c. Membuat dan menghapus index Untuk membuat index dari suatu tabel digunakan perintah berikut: create index<nama_index>on<nama_tabel>( <kolom_tabel>); Untuk menghapus index dari suatu tabel digunakan perintah berikut: drop index<nama_index>on<nama_tabel>; 2.6 Mekanisme E-Commerce Konsumen yang hendak memilih produk layanan akan dibeli bisa menggunakan ‘shopping cart’ untuk menyimpan data tentang barang-barang yang telah dipilih dan akan dibayar. Konsep ‘shopping cart’ ini meniru kereta belanja 20 yang biasanya digunakan orang untuk berbelanja di pasar swalayan. ‘Shopping cart’ biasanya berupa formulir dalam web, dan dibuat dengan kombinasi CGI, database, dan HTML. Barang-barang yang sudah dimasukkan ke shopping cart masih bisa di-cancel, jika pembeli berniat untuk membatalkan membeli barang tersebut. Jika pembeli ingin membayar untuk barang yang telah dipilih, maka harus mengisi form transaksi. Biasanya form ini menanyakan identitas pembeli serta nomor kartu kredit. Karena informasi ini bisa disalahgunakan jika jatuh ke tangan yang salah, maka pihak penyedia jasa e-commerce telah mengusahakan agar pengiriman data-data tersebut berjalan secara aman, dengan menggunakan standar security tertentu. Setelah pembeli mengadakan transaksi, akan mengirimkan barang yang dipesan melalui jasa pos langsung ke rumah pembeli. Beberapa cybershop menyediakan fasilitas bagi pembeli untuk mengecek status barang yang telah dikirim melalui internet. 2.7 Software untuk Pembuatan E-Commerce Dalam pembuatan ‘toko’ di internet (atau biasa disebut dengan istilah cybershop), diperlukan software-software tertentu untuk mengatur inventarisasi barang dan proses transaksi jual beli barang. Di pasaran, sudah terdapat softwaresoftware khusus untuk membuat sistem e-commerce, seperti Intershop Online keluaran Intershop Communications, Merchant Server keluaran Microsoft Corp, dan Electronic Commerce Suite keluaran iCat. Software-software itu khusus dijual 21 kepada pihak-pihak yang berniat membangun cybershop, dan dijual dengan harga ribuan dollar. Pada umumnya software-software untuk pembuatan E-Commerce ini menggunakan database untuk penyusunan katalog. Database yang digunakan biasanya adalah DB2, Oracle, atau SQL. 2.8 Alternatif Pembayaran untuk E-Commerce Untuk pembayaran, e-commerce menyediakan banyak alternatif. Caranya adalah dengan terlebih dahulu mendaftar sebagai customer pada web tersebut. Pembeli yang telah mempunyai kartu kredit dapat menggunakan kartu tersebut untuk pembayaran. Selain kartu kredit, alternatif lainnya adalah dengan menggunakan e-cash. E-cash sebenarnya merupakan suatu account khusus untuk pembayaran melalui internet. Account tersebut dibuka dengan menggunakan kartu kredit yang dipunyai sebelumnya. Customer hanya perlu mengisi pada account ecashnya untuk digunakan. Alternatif lain dalam pembayaran di internet adalah dengan menggunakan smartcard. Di Singapura, smartcard dikenal dengan istilah cash card. Pemakaian smartcard ini hampir sama dengan pemakaian kartu ATM yang biasa dipakai untuk berbelanja, yaitu pada saat transaksi, uangnya didebet langsung dari account di bank. Untuk pembayaran di internet, user harus memiliki ‘smart card reader’. Dalam pemakaiannya, alat khusus ini disambungkan ke port serial di komputer. Pada saat melakukan transaksi, kartu smart card harus digesekkan ke alat tersebut, sehingga chip yang terdapat di kartu dapat dibaca oleh komputer. Untuk softwarenya, digunakan software bernama ‘e-wallet’. Contoh web site yang 22 telah menyediakan smartcard untuk pembayaran adalah http://www.discvault. com. Selain dengan ketiga cara di atas, terdapat alternatif pembayaran yang relatif baru dan belum begitu populer. Alternatif ini adalah penggunaan iCheck, yaitu metode pembayaran dengan menggunakan cek. Pembayaran ini membutuhkan nomor cek milik customer. Web site yang menyediakan penjelasan mengenai cara pembayaran ini adalah http://www.icheck.com. 2.9 Keamanan di E-Commerce Dalam prakteknya, berbelanja di web memerlukan koneksi ke internet dan browser yang mendukung transaksi elektronik yang aman, seperti Microsoft Internet Explorer dan Netscape Navigator. Microsoft dan Netscape, bekerja sama dengan perusahaan kartu kredit (Visa dan MasterCard), serta perusahaanperusahaan internet security (seperti VeriSign), telah membuat standar enkripsi khusus yang membuat transaksi melalui web menjadi sangat aman. Bahkan, Visa dan MasterCard menyediakan jaminan keamanan 100% kepada pengguna credit cardnya yang menggunakan e-com. Yang menandakan suatu web site aman atau tidak adalah adanya tanda khusus yang muncul di status bar di bagian bawah layar browser. Pada IE, tanda yang muncul adalah tanda gembok terkunci di pojok kanan status bar. Sedangkan pengguna Netscape Navigator, akan melihat tanda kunci di pojok kiri status bar. Jika tanda-tanda tersebut muncul, berarti user sedang ter-connect pada server yang aman. Walaupun begitu, karena standar yang dipakai untuk secure connection ini relatif baru, belum semua cybershop menggunakan standar ini. 23 Kumpulan dari banyak cybershop yang telah terintegrasi dinamakan cybermall. Beberapa cybermall akan mengecek terlebih dahulu legitimasi dari cybershop yang akan masuk, sehingga dapat menghindari adanya cybershop yang palsu. Beberapa cybermall juga menyediakan jasa-jasa tambahan, seperti billing atau tagihan yang tersentralisasi, menjadikan proses belanja menjadi lebih mudah dan aman. 2.10 Mekanisme SET Standar enkripsi yang digunakan dalam e-commerce pada saat ini adalah SET (Secure Electronic Transaction). Selain digunakan untuk pembayaran dengan credit card, SET juga digunakan untuk pembayaran dengan smartcard. Dengan menggunakan SET, kerahasiaan informasi customer (berupa nama dan nomor kartunya) bisa dijaga. SET juga bisa menjaga autotentifikasi atau identitas penjual dan customer, sehingga tidak bisa disalahgunakan oleh sembarang orang. SET menggunakan suatu kriptografi khusus yang dinamakan asymmetric cryptography untuk menjamin keamanan suatu transaksi. Asymmetric cryptography ini juga disebut dengan nama Public-key Cryptography. Enkripsi ini menggunakan dua kunci/key (yaitu kode), satu kunci digunakan untuk mengenkripsi data, dan kunci lainnya untuk men-dekripsi data tersebut. Kedua kunci tersebut terhubung secara matematis dengan rumus tertentu, sehingga data yang telah di-enkripsi oleh suatu kunci hanya bisa di-dekripsi dengan menggunakan kunci pasangannya. Setiap user mempunyai dua kunci, yaitu public key dan private key. User dapat menyebarkan public key secara bebas. Karena adanya hubungan yang 24 khusus antara kedua kunci, user dan siapa pun yang menerima public key tersebut mendapat jaminan bahwa data yang telah dienkripsi dengan suatu public key dan dikirimkan ke user hanya bisa didekripsi oleh private key. Keamanan ini terjamin selama user dapat menjaga kerahasiaan private key. Pasangan key ini harus dibuat secara khusus oleh user. Algoritma yang biasanya digunakan untuk pembuatan key adalah algoritma RSA (dinamakan berdasarkan inisial pembuatnya, yaitu : Rivest, Shamir, dan Adleman). Artinya, suatu pihak pengelola e-commerce yang menggunakan SET, harus membuat pasangan key khusus untuk webnya. Public key akan disebarkan, dan hal ini biasanya dilakukan melalui penyebaran web browser. Public key disertakan secara gratis untuk setiap web browser, dan telah tersedia jika browser tersebut diinstall. Private key, pasangan untuk pasangan public key tersebut disimpan oleh pengelola e-com. Jika pembeli menggunakan browser untuk mengirim form transaksi, pembeli tersebut akan menggunakan public key yang telah tersedia di web browsernya. Orang lain yang tidak mempunyai private key pasangannya, tidak akan bisa men-dekripsi data form yang dikirim dengan public key tersebut. Setelah data sampai ke pengelola e-com, data tersebut akan di-dekripsi dengan menggunakan private key. Artinya, hanya pengelola e-com yang bisa mendapatkan data itu dalam bentuk yang sebenarnya, dan data identitas serta nomor kartu kredit customer tidak akan jatuh ke tangan yang tidak berhak. 25 Gambar 2.1 Sistem pembayaran dengan SET Kelebihan utama menggunakan sistem SET, yaitu tagihan pembelian dibebankan melalui kartu kredit, tetapi nomor kartu belum dimasukkan pada saat pembelian. Selain itu, pembeli/ pelanggan dan penjual harus sudah terdaftar dan memiliki sertifikat, sehingga akan mudah diidentifikasi. Sebelum sistem berfungsi, pemilik kartu kredit (pembeli) harus membayar biaya administrasi terlebih dahulu. Sama seperti pada kartu kredit, pemilik kartu kredit (pembeli) harus menandatangani perjanjian yang telah disepakati untuk dapat memakai sistem SET ini. Kemudian, pembeli akan mendapatkan software dari bank dan harus terpasang di PC yang dipakai. Saat ini , untuk setiap instansi tersedia 3 sampai 7 MB data pada sebuah CD-ROM. Untuk masa mendatang, bisa saja dikembangkan menjadi sebuah kartu chip praktis. Di komputer tersedia sebuah program, yaitu Microsoft Wallet, khusus untuk pemakai dan sebuah electronic briefcase yang dapat mengelola beberapa kartu kredit yang berbeda. Oleh karena itu pemilik kartu kredit (pembeli) tidak perlu memasukkan nomor kartu kredit setiap pemesanan, cukup hanya dengan mengklik software programnya, selain data-data barang pesanan, pembeli juga 26 harus memasukkan data sertifikatnya dan sebuah signature (tanda pengesahan) digital. Dengan prinsip key-lock system, sebuah pengenkripsian asimetris (asymmetric encryption) akan menjamin bahwa identifikasi memang valid dan tidak bertumpuk, serta data-data tidak dapat di sabotase salama proses transfer atau data-data tidak mengandung kesalahan. Pemilik kartu kredit (pembeli) juga dapat melakukan konfirmasi melalui bank. Tetapi penjual tidak akan dapat mengetahui nomor kartu kredit pembeli. Proses pemeriksaan dan penjaminan dilakukan oleh pihak bank dapat dilihat pada Gambar 2.1. Sebagai proteksi tambahan, konsumen juga harus memasukkan nomor kode. Sertifikat dan kode ini menjadi sebuah komponen ganda (dual component), sama seperti sistem pembayaran tanpa uang tunai yang biasa, sebuah kartu/ cek atau kartu/ PIN. Semua ini dilakukan demi masalah keamanan. Penjual juga harus memiliki sertifikat SET dan memakai software khusus. Saat ini, sistem SET masih terus diperluas, karena bisnis online dangan sistem SET belum begitu berkembang dan konsumen tidak dapat memesan apa-apa dengan wallet-nya. Sistem SET sudah sepatutnya menjadi standar internasional. Gambar 2.2 Rantai transaksi bisnis modern 27 Jika sekali waktu terjadi kesalahan dalam pembayaran melalui kartu kredit, pemilik kartu kredit harus tetap terlindungi dengan baik. Bagi yang sudah memesan suatu barang dengan kartu kredit, apakah melalui internet atau dengan cara lain, biasanya dapat membatalkan pemesanan melalui telepon ke penyelenggara kartu kredit (acquirer) atau ke bank yang mengeluarkannya. Tetapi konsumen harus bisa menjamin dan juga harus memberikan pernyataan di bawah sumpah bahwa konsumen tersebut tidak melakukan pembelian tersebut. Konsumen yang bersangkutan memang dapat saja mengklaimnya, tetapi prosesnya bisa memakan waktu berminggu-minggu, sampai uang tersebut kembali ke rekening. Pengaduan lewat telepon yang ditujukan pada pihak bank atau penyelenggara kartu kredit bukanlah satu-satunya cara untuk mengklaim, karena kadang-kadang bank masih menganggap hal tersebut sebagai kesalahan dan harus melakukan pemeriksaan ulang berkali-kali. Tetapi bagi yang benar-benar sudah melakukan pembelian dengan pihak penjual dengan cara ini, konsumen dapat menuntut uangnya kembali. Namun, hanya jika pembayaran tidak mencakup semua barang yang hendak dibeli. Pada kasus ini, perusahaan kartu kredit akan memberikan apa yang disebut sebagai hak pengembalian uang (chargeback right), sehingga penjual akan bersedia membayar kembali uang tersebut.