Paper Riset Operassional Febri Irawan 05091002006

51
PAPER RISET OPERASIONAL Tentang PEMILIHAN METODE JARINGAN ( NETWORK ) DALAM ANALISIS dan PERANCANGAN PROTOTIPE APLIKASI E-COMMERCE PADA PERANGKAT LUNAK KOMPUTER dan INTERNET DISUSUN OLEH : FEBRI IRAWAN 05091002006 PROGRAM STUDI TEKNIK PERTANIAN JURUSAN TEKNOLOGI PERTANIAN FAKULTAS PERTANIAN UNIVERSITAS SRIWIJAYA INDERALAYA

Transcript of Paper Riset Operassional Febri Irawan 05091002006

Page 1: Paper Riset Operassional Febri Irawan 05091002006

PAPER RISET OPERASIONAL

Tentang

PEMILIHAN METODE JARINGAN ( NETWORK ) DALAM

ANALISIS dan PERANCANGAN PROTOTIPE APLIKASI E-

COMMERCE PADA PERANGKAT LUNAK KOMPUTER dan

INTERNET

DISUSUN OLEH :

FEBRI IRAWAN

05091002006

PROGRAM STUDI TEKNIK PERTANIAN

JURUSAN TEKNOLOGI PERTANIAN

FAKULTAS PERTANIAN

UNIVERSITAS SRIWIJAYA

INDERALAYA

2010

Page 2: Paper Riset Operassional Febri Irawan 05091002006

KATA  PENGANTAR

           Segala puji bagi Tuhan yang telah menolong hamba-Nya menyelesaikan Paper ini

dengan penuh kemudahan. Tanpa pertolongan Dia mungkin penyusun tidak akan sanggup

menyelesaikan dengan baik.

Paper ini disusun agar pembaca dapat memperluas ilmu tentang riset operasional,

yang saya sajikan berdasarkan dari berbagai sumber. Paper ini di susun oleh penyusun

dengan berbagai rintangan. Baik itu yang datang dari diri penyusun maupun yang datang dari

luar. Namun dengan penuh kesabaran dan terutama pertolongan dari Tuhan akhirnya paper

ini dapat terselesaikan.

Paper ini memuat tentang “PEMILIHAN METODE JARINGAN DALAM

ANALISIS dan PERANCANGAN PROTOTIPE APLIKASI E-COMMERCE PADA

PERANGKAT LUNAK KOMPUTER dan INTERNET ”.

Walaupun paper ini mungkin kurang sempurna tapi juga memiliki detail yang cukup

jelas bagi pembaca.

Semoga paper ini dapat memberikan wawasan yang lebih luas kepada pembaca.

Walaupun paper ini memiliki kelebihan dan kekurangan. Penyusun mohon untuk saran dan

kritiknya. Terima kasih.

Palembang, Desember 2010

Penyusun

Page 3: Paper Riset Operassional Febri Irawan 05091002006

DAFTAR ISI

COVER…..………………………………………………………........................…. 1

KATA PENGANTAR………………………………………………………………. 2

DAFTAR ISI ……………………………………………...………………………… 3

BAB I PENDAHULUAN ……………………………..…………………………… 4

A. Latar Belakang…………………………………….………………………… 4

B. Tujuan ………….…………………………………………………………… 9

BAB II TINJAUAN PUSTAKA…………………………………………………… 10

BAB III PEMBAHASAN……………………………………………….….……… 15

BAB IV PENUTUP………………………………………………………………… 36

DAFTAR PUSTAKA………………………………………………………………. 37

Page 4: Paper Riset Operassional Febri Irawan 05091002006

BAB I

PENDAHULUAN

A. Latar Belakang

Pengelolaan proyek-proyek berskala besar yang berhasil memerlukan perencanaan,

penjadwalan, dan pengordinasian yang hati-hati dari berbagai aktivitas yang saling berkaitan.

Untuk itu kemudian dikembangkan prosedur-prosedur formal yang didasarkan atas

penggunaan jaringan kerja (network) dan teknik-teknik network.

Analisa jaringan kerja merupakan suatu perpaduan pemikiran yang logis,

digambarkan dengan suatu jaringan yang berisi lintasan-lintasan kegiatan dan memungkinkan

pengolahan secara analitis. Analisa jaringan kerja memungkinkan suatu perencanaan yang

efektif dari suatu rangkaian yang mempunyai interaktivitas. Keuntungan dari penggunaan

analisa jaringan kerja adalah:

1. Dapat merencanakan suatu proyek secara keseluruhan.

2. Penjadwalan pekerjaan dalam urutan yang praktis dan efisien.

3. Pengadaan pengawasan dan pembagian kerja maupun biaya.

4. Penjadwalan ulang untuk mengatasi hambatan dan keterlambatan.

5. Menentukan kemungkinan pertukaran antara waktu dan biaya.

Salah satu prosedur yang telah dikembangkan berdasarkan jaringan kerja untuk

mengatasi permasalahan pengelolaan suatu proyek adalah PERT (Program Evaluation and

Review Technique) dan CPM (Critical Path Method), yang sebenarnya di antara keduanya

terdapat perbedaan penting, yaitu:

1. CPM menggunakan satu jenis waktu untuk taksiran waktu kegiatan sedangkan PERT

menggunakan tiga jenis waktu, yaitu: prakiraan waktu teroptimis, termungkin, dan

terpesimis.

2. CPM digunakan kala taksiran waktu pengerjaan setiap aktivitas diketahui dengan jelas

dimana deviasi relatif kecil atau dapat diabaikan sedangkan PERT digunakan saat

Page 5: Paper Riset Operassional Febri Irawan 05091002006

taksiran waktu aktivitas tidak dapat dipastikan seperti aktivitas tersebut belum pernah

dilakukan atau bervariasi waktu yang besar.

3. CPM digunakan untuk memperkiraan waktu kegiatan suatu proyek dengan

pendekatan deterministik, sementara PERT direkayasa untuk menghadapi situasi

dengan kadar ketidakpastian yang tinggi pada aspek kurun waktu kegiatan..

Meskipun terdapat perbedaan-perbedaan seperti di atas, namun kecenderungan

dewasa ini adalah menggabungkan kedua pendekatan tersebut menjadi PERT-type system.

PERT-type system dirancang untuk membantu dalam perencanaan dan pengendalian,

sehingga tidak langsung terlibat dalam dalam optimasi. Tujuan sistem ini adalah:

1. Untuk menentukan probabilitas kemungkinan tercapainya batas waktu proyek.

2. Untuk menetapkan kegiatan mana (dari suatu proyek) yang merupakan bottlenecks

(menentukan waktu penyelesaian seluruh proyek) sehingga dapat diketahui pada

kegiatan mana kita harus bekerja keras agar jadwal terpenuhi.

3. Untuk mengevaluasi akibat dari perubahan-perubahan program.

4. Untuk mengevaluasi akibat dari terjadinya penyimpangan pada jadwal proyek.

Simbol-simbol yang digunakan

Dalam menggambarkan suatu jaringan kerja digunakan tiga buah simbol sebagai

berikut:

1. Anak panah (arrow), menyatakan sebuah kegiatan atau aktivitas. Kegiatan di sini

didefinisikan sebagai hal yang memerlukan jangka waktu tertentu dalam pemakaian

sejumlah sumber daya (sumber tenaga, peralatan, material, biaya)

2. Lingkaran kecil (node), menyatakan sebuah kejadian atau peristiwa atau event.

Kejadian didefinisikan sebagai ujung atau pertemuan dari satu atau beberapa kegiatan.

3. Anak panah terputus-putus, menyatakan kegiatan semu atau dummy . Dummy tidak

mempunyai jangka waktu tertentu, karena tidak memakai sejumlah sumber daya.

Penggunaan simbol-simbol ini mengikuti aturan-aturan sebagai berikut:

1. Di antara dua event yang sama, hanya boleh digambarkan satu anak panah.

2. Nama suatu aktivitas dinyatakan dengan huruf atau nomor urut event.

Page 6: Paper Riset Operassional Febri Irawan 05091002006

3. Aktivitas harus mengalir dari event bernomor rendah ke event bernomor tinggi.

4. Diagram hanya memiliki sebuah initial evet dan sebuah terminal event.

Dummy

Aktivitas dummy adalah aktivitas yang sebenarnya tidak ada, sehingga tidak

memerlukan pemakaian sumber daya.. Dummy terjadi karena:

a. Terdapat lebih dari satu kegiatan yang mulai dan selesai pada event yang sama..

Untuk membedakan ketiga kegiatan tersebut, maka harus digunakan dummy seperti

berikut:

a. Apabila suatu kegiatan, misal A dan B, harus selesai sebelum kegiatan C dapat

dimulai, tetapi kegiatan D sudah dapat dimulai bila kegiatan B sudah selesai, maka:

Penentuan Waktu

Setelah jaringan kerja dapat digambarkan, kemudian diestimasikan waktu yang

diperlukan untuk menyelesaikan masing-masing aktivitas, dan menganalisis seluruh diagram

network untuk menentukan waktu terjadinya masing-masing event.

Dalam mengestimasi dan menganalisis waktu ini, akan terdapat satu atau beberapa

lintasan tertentu dari kegiatan-kegiatan pada jaringan kerja tersebut yang menentukan jangka

waktu penyelesaian seluruh proyek. Lintasan ini disebut lintasan kritis (critical path). Jalur

Page 7: Paper Riset Operassional Febri Irawan 05091002006

kritis adalah jalur yang memiliki rangkaian komponen kegiatan dengan total jumlah waktu

terlama dan menunjukkan kurun waktu penyelesaian yang tercepat. Pada jalur ini terletak

kegiatan-kegiatan yang bila pelaksanaannya terlambat akan menyebabkan keterlambatan

proyek secara keseluruhan

Selain lintasan kritis, terdapat lintasan-lintasan lain yang mempunyai jangka waktu

yang lebih pendek daripada lintasan kritis. Dengan demikian, maka lintasan yang tidak kritis

ini mempunyai jangka waktu untuk bisa terlambat, yang disebut float/slack.

Float/slack memberikan sejumlah kelonggaran waktu dan elastisitas pada sebuah

jaringan kerja, dan ini dipakai pada waktu penggunaan network dalam praktek, atau

digunakan pada waktu mengerjakan penentuan jumlah material, peralatan, dan tenaga kerja.

Float terbagi menjadi dua jenis, yaitu:

a. Total float/slack, jumlah waktu di mana waktu penyelesaian suatu aktivitas dapat

diundur tanpa mempengaruhi saat paling cepat dari penyelesaian proyek secara

keseluruhan

b. Free float/slack, jumlah waktu di mana penyelesaian suatu aktivitas dapat diukur tanpa

mempengaruhi saat paling cepat dari dimulainya aktivitas yang lain atau saat paling

cepat terjadinya event lain pada network.

Notasi yang digunakan

Untuk mempermudah perhitungan penentuan waktu digunakan notasi-notasi sebagai

berikut:

TE = earliest event occurrence time, yaitu saat tercepat terjadinya event.

TL = latest event occurrence time, yaitu saat paling lambat terjadinya event.

ES = earliest activity start time, yaitu saat paling cepat dimulainya aktivitas.

EF = earliest activity finish time, yaitu saat paling cepat diselesaikannya aktivitas.

LS = latest activity start time, yaitu saat paling lambat dimulainya aktivitas.

Page 8: Paper Riset Operassional Febri Irawan 05091002006

LF = latest activity finish time, yaitu saat paling lambat diselesaikannya aktivitas.

t = activity duration time, yaitu waktu yang diperlukan untuk menyelesaikan suatu aktivitas.

S = total slack/float

SF = free slack/float

Asumsi dan perhitungan

Asumsi yang digunakan dalam melakukan perhitungan adalah:

1. Proyek hanya memiliki satu initial event dan satu terminal event.

2. Saat tercepat terjadinya initial event adalah hari ke-nol

3. Saat paling lambat terjadinya terminal event adalah TL = TE untuk event ini.

Adapun cara perhitungan yang harus dilakukan terdiri atas dua cara, yaitu:

1. Perhitungan maju (forward computation)

Pada perhitungan ini, perhitungan bergerak dari initial event menuju ke terminal

event. Tujuannya adalah untuk menghitung saat yang paling cepat terjadinya events

dan saat paling cepat dimulainya serta diselesaikannya aktivitas-aktivitas.

2. Perhitungan mundur (backward computation)

Pada perhitungan ini, perhitungan bergerak dari terminal event menuju ke initial

event. Tujuannya adalah untuk menghitung saat paling lambat terjadinya events dan

saat paling lambat dimulainya dan diselesaikannya aktivitas-aktivitas.

Untuk melakukan perhitungan maju dan perhitungan mundur, lingkaran event di bagi atas

tiga bagian.

Keterangan:

a = nomor event

Page 9: Paper Riset Operassional Febri Irawan 05091002006

b = saat tercepat terjadinya event, yang merupakan hasil perhitungan maju

c = saat paling lambat terjadinya event, yang merupakan hasil perhitungan mundur

Setelah kedua perhitungan di atas selesai, kemudian dilakukan perhitungan untuk mencari nilai slack/float. Adapun cara perhitungannya adalah sebagai berikut:

1. Total float/slack dihitung dengan cara mencari selisih antara saat paling lambat dimulainya

aktivitas dengan saat paling cepat dimulainya aktivitas, atau dengan mencari selisih

antara saat paling lambat diselesaikannya aktivitas dengan saat paling cepat

diselesaikannya aktivitas.

2. Free float/slack aktivitas dihitung dengan cara mencari selisih antara saat tercepat

terjadinya event di ujung aktivitas dengan saat tercepat diselesaikannya aktivitas tersebut.

B. Tujuan

Penulisan paper ini bertujuan untuk mengetahui langkah-langkah dalam menentukan

penyelesaian optimal masalah jaringan ( network ) yang mencangkup adanya variabel yang

dibatasi dengan menggunakan metode jaringan kerja untuk variabel yang dibatasi.

Page 10: Paper Riset Operassional Febri Irawan 05091002006

BAB II

TINJAUAN PUSTAKA

I. Definisi Jaringan

Sebuah jaringan terdiri dari sekelompok node yang dihubungkan oleh busur

atau cabang. Suatu jenis arus tertentu berkaitan dengan setiap busur. Notasi standar untuk

menggambarkan sebuah jaringan G adalah G = (N,A), dimana N adalah himpunan node dan

A adalah himpunan busur. Suatu jenis arus tertentu berkaitan dengan setiap jaringan.

Pada umumnya, arus dalam sebuah busur dibatasi oleh kapasitasnya, yang dapat terbatas

atau tidak terbatas. Sebuah busur dikatakan terarah atau terorientasi jika busur tersebut

memungkinkan arus positif dalam satu arah dan arus nol dalam arah yang berlawanan.

Karena itu, jaringan yang terarah adalah jaringan dengan semua busur yang terarah.

Jalur adalah urutan busur-busur tertentu yang menghubungajan dua node

tanpa bergantung pada orientasi busur-busur tersebut secara individual. Jalur akan

membentuk sebuah loop atau siklus jika jalur itu menghubungkan sebuah node dengan

dirinya sendiri. Sebuah loop yang terarah (atau sebuah sirkuit) adalah sebuah loop di mana

semua busur-busurnya memiliki arah atau orientasi yang sama.

Jaringan yang berhubungan adalah sebuah jaringan dimana setiap dua node

dihubungkan dengan sebuah jalur. Pohon adalah sebuah jaringan yang berhubungan yang

dapat hanya melibatkan sebagian dari node dan sebuah pohon perentangan adalah

sebuah jaringan yang berhubngan yang mencakup semua node dalam jaringan tersebut

tanpa loop.

I. Masalah Pohon Pertentangan

Model yang dihasilkan adalah model khas dari masalah pohon perentangan

minimal, dimana kita menginginkan pohon perentangan yang menghasilkan jumlah terkecil

dari busur-busur penghubung. Akibatnya pohon perentangan minimal menangani penemuan

yang paling “efisien” diantar semua node dalam jaringan, yang berdasarkan definisinya, tidak

dapat mencakup loop atau siklus apapun.

Algoritma pohon perentangan minimal memerlukan awal dari salah satu node

Page 11: Paper Riset Operassional Febri Irawan 05091002006

manapun dan menghubungkannya dengan node terdekat dalam jaringan tersebut. Dua node

yang dihasilkan lalu membentuk himpunan yang dihubungkan, C, dengan node sisanya

membentuk node yang tidak dihubungkan, C. Selanjutnya, kita memilih sebuah node dari

himpunan yang tidak dihubngkan yang terdekat (memiliki panjang busur terpendek)

ke salah satu node dalam himpunan yang dihubungkan. Node yang dipilih tersebut lalu

disingkirkan dari himpunan yang tidak dihubungkan dan dimasukkan ke dalam himpunan

yang dihubungkan. Proses ini diulangi sampai himpunan yang tidak dihubungkan kosong

(atau dengan kata lain, sampai semua node dipindahkan dari C ke himpunan C). Jarak

terdekat yang sama dapat dipilih secara sembarang. Tetapi, jarak yang sama tersebut

menunjukkan adanya pemecahan alternatif.

II. Masalah Rute Terdekat

Masalah rute terdekat berkaitan dengan penentuan busur-busur yang dihubungakan

dalam sebuah jaringan transportasi yang secara bersama – sama membentuk jarak terdekat

diantara sumber dan tujuan. Penerapan tersebut juga diikuti dengan penyajian algoritma

pemecahan.

Contoh Penerapan rute terdekat

Sebuah perusahaan penyewaan mobil sedang mengembangkan sebuah rencana

penggantian armadanya dalam 5 tahun mendatang. Sebuah mobil harus dipergunakan

setidakanya 1 tahun sebelum penggantian dapat dipertimbangkan. Tabel 1 meringkas biaya

penggantian per mobil (dalam ribuan dollar) sebagai fungsi dari waktu dan jumlah

tahun operasi. Biaya ini mencakup pembelian, nilai sisa, biaya operasio, dan perawatan.

Masalah ini dapat direpresentasikan dengan sebuah jaringan sebagai berikut. Setiap tahun

diwakili dengan sebuah node. “Panjang” sebuah busur yang menghubungkan dua node sama

dengan biaya penggantian yang bersangkutan seperti yang diberikan dalm tabel 1. Gambar

1 memperlihatkan jaringan ini. Masalahnya jadi menemukan “rute” terdekat dari node 1 ke

node 5.

”Rute” terdekat dapat ditentukan dengan menggunakan algoritma yang akan kami sajikan dalam bagian selanjutnya.

Page 12: Paper Riset Operassional Febri Irawan 05091002006

ALGORITMA RUTE TERDEKAT

A. Algoritma Asiklis

Algoritma Asiklis di dasari oleh penggunaan perhitungan rekursif, yang merupakan dasar

dari perhitungan pemprograman dinamis. Langkah – langkah dari algoritma ini diterangkan

melalui contoh numerik.

Contoh

Node 1 adalah node awal (sumber atau asal) dan node 7 adalah titik terminal (tujuan).

Jarak dij antara node i dan j diberikan secara lagsung untuk setiap busur. Misalnya d12 = 2.

Jaringan ini bersifat asiklis karena mencakup loop.

Anggaplah

uj = jarak terdekat dari node 1 ke node j

Dimana node u1 = 0 berdasarkan definisinya. Nilai-nilai uj, j = 1, 2, …, n, dihitung

secara rekursif dengan rumus berikut ini

Page 13: Paper Riset Operassional Febri Irawan 05091002006

Rumus rekursif mengharuskan bahwa jarak terdekat uj ke node j dihitung setelah kita

menghitung jarak terdekat ui ke setiap node sebelumnya i yang dihubungkan ke

j dengan sebuah busur langsung.

Dalam pemecahan akhir dari model rute terdekat ini, kita juga harus

mengidentifikasi node-node yang ditemui sepanjang rute tersebut. Untuk mncapai

tujuan ini, kita mengggunakan prosedur pelabelan yang mengkaitkan label berikut ini

dengan node j:

label node j = [uj,n]

di mana n adalah node j yang tepat mendahuluinya, yang mengarah pada jarak terdekat uj;

yaitu

uj = min { ui + dij }

= un + dnj

Berdasarkan definisinya, label di node 1 adalah [0, -], yang menunjukkan bahwa node 1

adalah sumber

Tabel berikut memberikan urutan perhitungan yang mengarah pada pemecahan akhir.

Node j Perhitungan uj La1 u1 = 0 [0, -]

2 u2 = u1 + d12 = 0 + 2 = 2, dari 1 [2, 1]3 u3 = u1 + d13 = 0 + 4 = 4, dari 1 [4, 1]4 u4 = min { u1 + d14, u2 + d24, u3 + d34}

= min {0 + 10, 2 + 11, 4 + 3} = 7 dari 3 [7, 3]5 u5 = min { u2 + d25, u4 + d45 }

= min {2 + 5, 7 + 8} = 7 dari 2 [7, 2]6 u6 = min { u3 + d36, u4 + d46 }

= min {4 + 1, 7 + 7} = 5, dari 3 [5, 3]7 u7 = min { u5 + d57, u6 + d67 }

= min {7 + 6, 5 + 9} = 13, dari 5 [13, 5]

Rute optimum tersebut diperoleh dengan dimulai dari node 7 dan menelusuri ke

belakang dengan menggunakan informasi label. Urutan berikut ini memperlihatkan

prosedur tersebut:

Page 14: Paper Riset Operassional Febri Irawan 05091002006

Algoritma ini pada kenyataannya memberikan jarak terdekat antara node 1 dan setiap node

lainnya dalam jaringan ini.

B. Algoritma Siklis (Dijakstra)

Algoritma siklis memungkinkan sebanyak mungkin kesempatan sebagaimana yang

diperlukan untuk mengevaluasi ulang sebuah node. Ketika terlihat bahwa jarak terdekat

ke sebuah node telah dicapai, node tersebut dikeluarkan dari pertimbangan lebih lanjut.

Proses ini berakhir ketika node tujuan dievalusi. Algoritma siklis menggunakan dua jenis

label: sementara dan tetap. Dengan format [d, n], dimana d adalah jarak terdekat yang

sejauh ini tersedia untuk node saat ini, dan n adalah node yang tepat mendahuluinya

yang memungkinkan realisasi jarak d. Algoritma ini memulai dari node sumber yang

memiliki label tetap [0, -]. Selanjutnya kita mempertimbangkan semua node yang dapat

dicapai secara langsung dari node sumber tersebut dan lalu menentukan labelnya yang

sesuai. Label yang baru dibuat ini dinyatakan sebagai label sementara. Label tetap

berikutnya dipilih dari di antara semua label sementara saat ini dengan d terkecil dalam

label [d, n] yang bersangkutan (angka yang sama dipilih secara sebarang). Proses ini lalu

diulangi untuk node terakhir yang telah dinyatakan dengan label tetap. Dalam kasus

demikian, label sementara dari sebuah node hanya dapat diubah jika label baru tersebut

menghasilkan jarak d yang lebih dekat.

MASALAH RUTE TERDEKAT DIPANDANG SEBAGAI MODEL TRANSSHIPMENT

Kita dapat memandang jaringan rute terdekat sebagai sebuag model

transportasidengan satu sumber dan satu tujuan. Penawaran di sumber adalah satu unit dan

permintaan di tujuan juga satu unit. Satu unit akan mengalir dari sumber ke tujuan melalui

rute yang dapat diterima dalam jaringan tersebut. Tujuannya adalah

meminimumkan jarak yang ditempuh oleh unit tersebut sementara mengalir dari sumber ke

tujuan.

Lihat pengembangan model transshipment pada jaringan Gambar 8-12. Model

transshipment hanya menghitung jarak terdekat diantara dua node. Jadi deangan asumsi

bahwa kita tertarik untuk menentukan jarak-jarak terdekat diantara dua node 1 dan 7 ,

(Tabel 8-4) memberikan model transsphipment yang berkaitan dengan masalah ini.

Page 15: Paper Riset Operassional Febri Irawan 05091002006

Jumlah B biasanya dirujuk sebagai buffer sama dengan 1, karena disetiap saat selama

transshipment ini tidak lebih dari satu unit akan memalui setiap node dalam jaringan ini. Catat

pula bahwa node 1 tidak berfungsi sebagai tujuan, karena node ini merupakan sumber

(utama) untuk jaringan ini. demikian pula, node 7 tidak dapat bertindak sebagai sumber,

karena mewakili tujuan akhir dari arus unit tersebut. “ Biaya transportasi” sama dengan jarak

yang bersangkutan. Sel yang berwarna abu-abu berarti bawha rute yang bersangkutan tidak

tersedia dan harus diberikan biaya M yang sangat tinggi ketika memecahkan model ini.

Yang terkahir, jarak dari sebuah node ke node itu sendiri adalah nol.

Tabel 8-4 juga memberikan pemecahan optimum, yang diperoleh dari

penggunaan teknik transportasi. Tabel tersebut memperlihatkan bahwa

x12 = 1, x26 = 1, x33= =1 , x44 = 1 x57 = 1 , x56 = 1

nilai x33=x44= 1 tidak berkonstribusi bagi pemecahan,

karena keduannya menghubungkan node 3 dan 4 dengan node itu sendiri. Sehingga

x12=1, x26= 1, x65= 1, x57=1

yang memperlihatkan bahwa rute optimal adalah (kondisi

optimalitas seperti ini memperlihatkan pemecahan optimum alternatif antara node 1 dan7).

Gambar 8.12

Page 16: Paper Riset Operassional Febri Irawan 05091002006

BAB II

PEMBAHASAN

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 paper ini

diuraikan mengenai arsitektur sistem, tool dan konfigurasi yang diperlukan untuk

mengimplementasi aplikasi web e-commerce, konsiderasi masalah keamanan sistem, juga

perancangan dari sisi diagram alur aplikasi dan perancangan basis data. Digunakan bahasa

pemrograman PHP karena kemudahan dalam pemrograman, dan kelengkapan fitur untuk

mengimplementasi system e-commerce, kemampuan untuk cross platform, serta kemudahan

untuk deployment bagi pengembang aplikasi.

1. Pengertian E-Commerce

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

Page 17: Paper Riset Operassional Febri Irawan 05091002006

biaya-biaya operasional untuk kegiatan trading (perdagangan) .

Proses yang ada dalam E-commerce adalah sebagai berikut :

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.

Gambar 1. Contoh Aplikasi E-Commerce : Pembelian CD dengan Kartu Kredit

Page 18: Paper Riset Operassional Febri Irawan 05091002006

Gambar 2. Arsitektur Client/Server

2. Arsitektur dan Konfigurasi Sistem

Arsitektur dasar dari aplikasi web ini adalah arsitektur client/server. 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.

Arsitektur Client/Server

Gambar 2. Arsitektur Client/Server2.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.

Page 19: Paper Riset Operassional Febri Irawan 05091002006

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.

Session tersebut dipergunakan untuk merekam / tracking aktivitas pengguna yang

melalui sejumlah halaman pada website, misalnya pada jenis aplikasi Shopping Cart

Page 20: Paper Riset Operassional Febri Irawan 05091002006

(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

Page 21: Paper Riset Operassional Febri Irawan 05091002006

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.

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.

Pengiriman Data Terenkripsi antara Pengguna dengan Server E-Commerce

Gambar 4. Pengiriman Data Terenkripsi antara Pengguna dengan Server E- Commerce

2.2.2 Sertifikat

Meski masalah keamanan sudah ditangani dengan keberadaan Public key / Private

key, masih ada masalah yang perlu diperhatikan yakni pesan / data yang diperoleh adalah

benar dari pihak yang memiliki otorisasi, bukan dari pihak lain yang tidak berkepentingan

atau yang menyalahgunakan. Untuk itu dibutuhkan pihak ketiga untuk memverifikasi

pesan yang datang.

Pesan terenkripsi yang dikirim dan diterima akan memiliki semacam â

€˜signature’, dan verifikasi selanjutnya dilakukan terhadap ‘signature’ tersebut.

Page 22: Paper Riset Operassional Febri Irawan 05091002006

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.

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.

Komunikasi Antar Situs dalam Aplikasi E-Commerce

Page 23: Paper Riset Operassional Febri Irawan 05091002006

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

mungkin saja menjadi subject penyerangan dari pihak luar; maka mereka “sniffer”

tidak akan dapat meningkatkan serangan berikutnya untuk merusak server-server

lainnya. Dengan kata lain web server tidak akan dapat keuntungan dari segala

macam bentuk pelindungan yang di usahakan firewall.

Web Server di Luar Firewall

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.

Page 24: Paper Riset Operassional Febri Irawan 05091002006

Web Server yang Diletakkan Di dalam Firewall

Gambar 7. Web Server yang Diletakkan Di dalam Firewall

Pilihan ketiga, yang paling baik, yaitu menggunakan dua firewall: satu untuk

melindungi jaringan internal / lokal dan yang satunya lagi untuk melindungi web

server (lihat gambar 8).

Webserver yang Diletakkan di Antara Internal Firewall dan External Firewall

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

Page 25: Paper Riset Operassional Febri Irawan 05091002006

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, 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

Page 26: Paper Riset Operassional Febri Irawan 05091002006

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.

Diagram Alir Penggunaan Aplikasi E-Commerce

Page 27: Paper Riset Operassional Febri Irawan 05091002006

Gambar 9. Diagram Alir Penggunaan Aplikasi E-Commerce

Rancangan Layar Halaman Depan Web E-Commerce

Page 28: Paper Riset Operassional Febri Irawan 05091002006

Gambar 10. Rancangan Layar Halaman Depan Web E-Commerce

Rancangan Layar Halaman Daftar Barang

Gambar 11. Rancangan Layar Halaman Daftar Barang

Rancangan Layar Halaman Daftar Pesanan

Gambar 12. Rancangan Layar Halaman Daftar PesananRancangan Layar Halaman Pemrosesan Kartu Kredit

Page 29: Paper Riset Operassional Febri Irawan 05091002006

Gambar 13. Rancangan Layar Halaman Pemrosesan Kartu Kredit

3.2 Rancangan Basis Data

Rancangan Basis Data Aplikasi Web E-Commerce

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

Page 30: Paper Riset Operassional Febri Irawan 05091002006

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 1. Alamat

Field Jenis Kosong Ekstra Keterangan

Id_Alamat Int(11) Tidak Auto_increment 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

Tabel 2. Tabel Jenis_Kartu

Field Jenis Kosong Ekstra Keterangan

Kode_Jenis_Kartu Char(3) Tidak

Jenis_Kartu Varchar(30) Tidak

Tabel 3. Tabel Pesanan

Tinyint(4)

Field Jenis Kosong Default Ekstra Keterangan

Page 31: Paper Riset Operassional Febri Irawan 05091002006

Id_pesanan

double TidakAuto_

incrementPRIMARY KEY

Id_user Int(11) Tidak KEY

Id_alamat Int(11) Tidak

Id_status Tinyint(4) Tidak

Total_harga

Double Tidak ‘0.00’

Id_pengiriman

Tinyint(4) Tidak

Biaya_kirim

Double Tidak ‘0.00’

Tahun_exp_kartu

Int(11) Tidak

Bulan_exp_kartu

Tidak

Kode_jenis_kartu

Char(3) Tidak

Tgl_buat Timestamp(14) Ya

Tabel 4. Tabel Pengiriman

Field Jenis Kosong Default Ekstra Keterangan

Id_Pengiriman

Tinyint(4) Tidak Auto_ increment PRIMARY KEY

Pengiriman

Varchar(20) Tidak

Per_Order Double Tidak ‘0.00’

Per_Item

Double Tidak ‘0.00’

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

Page 32: Paper Riset Operassional Febri Irawan 05091002006

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.

Komunikasi Antar Situs dan Penghapusan Informasi Kartu Setelah Proses Selesai

Page 33: Paper Riset Operassional Febri Irawan 05091002006

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 variable apa saja yang akan disimpan dalam session. Fungsi

Page 34: Paper Riset Operassional Febri Irawan 05091002006

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�;

?>

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.

F u n g s i -f u n g s i y a ng d i gu n a k a n u n t u k s e ss i o n i ni :

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

Page 35: Paper Riset Operassional Febri Irawan 05091002006

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);

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);

Dokumen analisis dan perancangan, serta prototipe perangkat lunak. Prototipe ini

Page 36: Paper Riset Operassional Febri Irawan 05091002006

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.

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.

Page 37: Paper Riset Operassional Febri Irawan 05091002006

BAB IV

PENUTUP

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 ini dirancang untuk mengimplementasi sistem e-commerce dalam

dunia bisnis yang mendukung pemotongan rantai distribusi sehingga konsumen dapat

memperoleh suatu produk dengan harga yang lebih murah. Jenis antarmuka web dipilih

dengan pertimbangan fleksibilitas implementasi perangkat lunak ini yang dapat dilakukan di

jaringan intranet maupun internet, kemudahan untuk deployment, serta kemampuan cross

platform.

Pengembangan sistem ini masih jauh dari sempurna, namun setidaknya dapat

memberikan dasar dan dapat memberikan sumbangan bagi pemikiran untuk pengembangan

teknologi yang dapat dirasakan manfaatnya oleh masyarakat di bidang ekonomi, khususnya

untuk jalannya bisnis perdagangan secara online.

Page 38: Paper Riset Operassional Febri Irawan 05091002006

DAFTAR PUSTAKA

Atkins, Dorck and Buis, Paul. 1997. Internet Security Professional Reference. New Riders.

Buyens, Jim. 2001. Web Database Development. Elex Media Komputindo : Jakarta.

Greenspan,Jay, and Bulger,Brad. 2001. MySQL/PHP Database Application. M&T Books.

Minoli, Daniel Mindi Emma. 1998. Web Commerce Technology Handbook. Mc Graw Hill.

Pressman, Roger S. 1992. Software Engineering A Practitioner’s Approach, third edition.

McGraw-Hill International Edition.

Rumbaugh, James dkk. 1991. Object Oriented Modelling and Design, Prentice-Hall

International.,Inc.