b02. bab 2 - landasan teori -...
TRANSCRIPT
7
BAB 2
LANDASAN TEORI
2.1 Internet
2.1.1 Sejarah Internet
Berdasarkan Leiner et al (2003) Internet yang banyak digunakan
orang saat ini bermula dari jaringan komputer yang digunakan oleh
Departemen Pertahanan Amerika Serikat. Jaringan komputer tersebut
dikenal dengan nama ARPANET (Advanced Research Projects
Administration Network) yang digunakan pada saat terjadi perang dingin
antara Amerika Serikat dengan Russia. Selanjutnya ARPANET
dikembangkan menjadi jaringan yang lebih luas lagi yang disebut dengan
Internet. Perkembangan Internet menjadi sangat pesat karena banyak
fasilitas yang ditawarkan seperti e-mail, file transfer dan lain-lain.
Agar dapat mengetahui komputer mana yang akan diakses, maka
masing-masing komputer tersebut diberi sebuah alamat yang disebut
dengan internet address. Setiap alamat internet harus didaftarkan pada
network information center, dimana alamat tersebut harus unik dan
direpresentasikan dalam dua wujud yaitu nama domain dan nomor IP-
nya.
8
2.1.2 Pengertian Internet
Menurut Purbo (2000) Internet adalah kumpulan dari jaringan
komputer besar maupun kecil yang luas dan saling berhubungan
menggunakan jaringan komunikasi yang ada diseluruh dunia sebagai
medianya.
Konsep pelayanan Internet terlihat pada gambar 2.1 dibawah ini :
Gambar 2.1 Konsep Pelayanan Internet
Protokol ini secara resmi disebut TCP/IP (Transmission Transfer
Protocol/ Internet Protocol).
Gambar 2.2 Paket-paket protokol yang ada pada jaringan TCP/IP
9
2.2 Pengertian TCP/IP
TCP singkatan dari Transfer Control Protocol sedangkan IP dalah
singkatan dari Internet Protocol. Menurut Sumarno (2007), TCP/IP merupakan
protokol jaringan komputer yang terbuka yang dapat terhubung dengan berbagai
macam jenis perangkat keras maupun perangkat lunak. TCP terdiri dari beberapa
layer atau lapisan yang memiliki fungsi yang khusus dalam komunikasi data.
Setiap fungsi dari layer selain dapat bekerjasama dengan layer pada tingkat yang
lebih rendah atau lebih tinggi, juga dapat berkomunikasi dengan layer sejenis
pada remote host (peering). IP adalah inti dari TCP/IP yang memiliki peran
sebagai pembawa data yang independen. Semua dokumen TCP/IP dalam bentuk
public dokumen IEN dan RFC.
IP terbagi menjadi kelas network A, B dan C. Sedangkan kelas D yang
digunakan untuk keperluan reverse IP dapat diabaikan. IP ditulis dalam bilangan
desimal dari 0 sampai 255. Data yang mengalir antar layer atau antar host
dibungkus dan diberi header dengan tujuan agar setiap layer dapat mengenali
dan dapat memproses lebih lanjut. Sebuah host tidak mengetahui alamat IP
gateway pada jaringan yang lain, akan tetapi data tersebut mengalir menuju host
tujuan yang terdapat pada network lain melalui gateway network-nya setelah
diberi penentuan routing alamat IP. Ciri-ciri TCP/IP :
1. Network Technological Independence
2. Universal Interconnection
3. End-to-End Acknowledgement
4. Application protocol Standard
TCP/IP menjadi satu nama karena fungsinya yang selalu berkaitan satu
10
sama lain dalam proses komunikasi data. TCP/IP saat ini banyak digunakan
dalam banyak jaringan komputer lokal (Local Area Network/LAN) yang
terhubung pada koneksi Internet, karena TCP/IP memiliki sifat :
1. Merupakan protokol standar yang terbuka, gratis dan dikembangkan terpisah
dari perangkat keras komputer tertentu. Karena itu protokol ini banyak
didukung oleh vendor perangkat keras, sehingga TCP/IP merupakan
pemersatu perangkat keras dan lunak komputer yang terdiri dari berbagai
macam vendor yang berbeda.
2. Berdiri sendiri atau terpisah dari berbagai jaringan perangkat keras. Sifat ini
memungkinkan TCP/IP bergabung dengan banyak jaringan komputer yang
ada. TCP/IP dapat beroperasi melalui sebuah ethernet, token ring, maupun
sebuah saluran dial-up, dan secara virtual melalui berbagai media fisik
transmisi data.
3. Dapat dijadikan sebagai alamat umum sehingga setiap perangkat yang
menggunakan TCP/IP akan memiliki sebuah alamat yang unik dalam sebuah
jaringan komputer lokal atau jaringan komputer global seperti internet.
4. Protokol ini di-standarisasi dengan skala tinggi secara konsisten sehingga
dapat memberikan layanan kepada pengguna internet di dunia.
2.3 World Wide Web (WWW)
Banyak orang yang mempunyai pendapat bahwa internet dan World Wide
Web adalah dua hal yang sama, namun sebenarnya internet dan World Wide Web
adalah dua hal yang berbeda. Internet berfungsi sebagai mekanisme transportasi
data, sedangkan World Wide Web adalah sebuah aplikasi yang menggunakan
11
fungsi transportasi tersebut.
Menurut Turban, Rainer, dan Potter (2003, p214), Web adalah sebuah
sistem standar yang sudah disetujui secara universal, digunakan untuk
menyimpan, menerima, memformat, dan menampilkan informasi via arsitektur
client/server. Web meliputi semua tipe data informasi digital termasuk text,
hypermedia, gambar, dan suara.
World Wide Web adalah kombinasi dari 4 ide, yaitu :
1. Hypertext : sebuah format kata yang dapat menghubungkan pengguna
internet terhubung antara sebuah dokumen ke dokumen lainnya,
menggunakan koneksi internet. Biasa disebut juga dengan hyperlinks.
2. Resource Identifiers : identifikasi yang unik yang digunakan untuk
mengalokasikan file atau dokumen di dalam jaringan. Biasanya dikenal
dengan URL (Uniform Resource Locator).
3. Client-server : sebuah sistem dimana komputer klien meminta sebuah
informasi, dapat berupa data atau file kepada komputer server yang memiliki
data tersebut.
4. Markup Language : kumpulan karakter atau kode untuk mengidentifikasi
data atau teks yang dikirim.
Untuk mengakses sebuah situs web, pengguna internet harus
mengidentifikasi alamat URL, berisi spesifikasi alamat web yang dituju. Salah
satu contoh dari URL misalnya, http://www.microsoft.com/ untuk situs web
Microsoft.
12
2.4 Hypertext Transfer Protocol (HTTP)
Hypertext Transfer Protocol merupakan sebuah metode atau cara yang
digunakan untuk mengirimkan informasi di dalam World Wide Web. Digunakan
sebagai cara untuk mengirimkan dan menerima informasi Hypertext Markup
Language (HTML).
Pengembangan HTTP dikoordinasikan oleh World Wide Web Consortium
dan Internet Engineering Task Force. Titik puncaknya adalah menghasilkan
sebuah seri dari RFCs, dikenal dengan RFC 2616 (pada tahun 1999), dan untuk
selanjutnya diartikan sebagai HTTP/1.1, sebuah versi dari HTTP yang masih
digunakan sampai saat ini.
HTTP adalah protokol pengirim dan penerima antara klien dan server.
Web Browser dapat diartikan sebagai klien, dan dapat juga disebut atau diartikan
sebagai “pengguna”. Sedangkan server tujuan merupakan penyedia dan
penghasil data atau informasi, termasuk file, gambar dan lain sebagainya.
2.5 WEB 2.0
Menurut Tim Oreilly (2005), Web 2.0 adalah sebuah revolusi bisnis di
dalam industri komputer yang terjadi akibat pergerakan ke internet sebagai
platform, dan suatu usaha untuk mengerti aturan-aturan agar sukses di platform
tersebut. Aturan utamanya adalah membangun aplikasi yang memanfaatkan efek
jaringan agar lebih baik dalam mendapatkan pengguna yang lebih banyak.
Web 2.0 menjadi topik hangat dalam pembahasan web saat ini. Prinsip-
prinsip dari Web 2.0, antara lain sebagai berikut:
Web sebagai platform
13
Data sebagai pengendali utama
Effect jaringan diciptakan oleh partisipasi arsitektur
Inovasi dalam sistem rakitan dan yang menyatukan fitur dari yang
terdistribusi, pengembang yang independen
Model bisnis yg ringan yang dikembangkan dengan konten dan layanan
syndication
Akhir dari siklus adopsi perangkat lunak
2.6 Asynchronous JavaScript and XML (AJAX)
AJAX yang merupakan singkatan dari Asynchronous Javascript and XML
adalah sebuah teknik pengembangan web yang ditujukan untuk mengembangkan
web interaktif. Penggunaan AJAX bertujuan untuk menjadikan halaman-
halaman web lebih responsif dengan melakukan pertukaran kumpulan data-data
dalam jumlah sedikit dengan server sehingga keseluruhan halaman web tidak
harus di-reload setiap kali pengguna melakukan permintaan tertentu. Hal ini
tentunya akan meningkatkan interaktivitas, kecepatan, dan keleluasaan
penggunaan halaman web. (Garret, 2005)
AJAX bukanlah sebuah teknologi, melainkan suatu kumpulan teknologi-
teknologi yang berjalan di belakangnya. Teknologi-teknologi yang berada di
balik AJAX, antara lain:
1. HTML/XHTML (Hypertext/Extensible Markup Language)
2. CSS (Cascading Stylesheet)
3. DOM (Document Object Model)
4. XML (Extensible Markup Language)
14
5. XSLT
6. XMLHttp
7. JavaScript
2.6.1 Prinsip-Prinsip AJAX
Berdasarkan Zakas et al (2006, p9), sebagai awal dari
pengembangan, AJAX masih jauh dari kesempurnaan. Namun, sejumlah
web developer menganggap AJAX sebagai sebuah tantangan yang sangat
menarik. Michael Mahemof, seorang software developer
mengidentifikasi beberapa prinsip dari aplikasi AJAX yang baik, antara
lain sebagai berikut:
a. Trafik minimal
AJAX mengurangi sejumlah trafik yang dianggap tidak berguna
antara komputer server dan klien.
b. Tidak ada kejutan
Aplikasi AJAX memperkenalkan model interaksi pengguna yang
berbeda dengan aplikasi web tradisional. Berlawanan dengan standar web
click and wait, beberapa aplikasi AJAX mengimplementasikan paradigma
antarmuka pengguna yang berbeda, seperti drag and drop dan klik ganda.
c. Pengembangan yang bersifat konvensional
AJAX memanfaatkan model interaksi web tradisional maupun aplikasi
desktop untuk mengurangi waktu belajar para pengguna.
d. Tidak ada distraksi
15
AJAX tidak menggunakan elemen-elemen halaman yang
mengganggu pengguna secara visual, antara lain animasi yang berulang-
ulang, teks yang berkedip, dan lain-lain.
e. Aksesibilitas
Aplikasi AJAX yang baik harus memperhatikan kepentingan
pengguna baik pengguna primer maupun sekunder, bagaimana akses
pengguna-pengguna tersebut terhadap aplikasi AJAX. Aplikasi-aplikasi
AJAX sebaiknya tidak mengesampingkan aksesibilitas golongan kecil
pengguna-penguna tertentu. Kompatibitas terhadap browser-browser
yang lama juga berpengaruh terhadap faktor aksesibilitas ini.
f. Tidak mendownload halaman secara keseluruhan
Semua komunikasi server setelah melakukan download halaman
inisial, harus ditangani dengan baik oleh mesin AJAX.
g. Mendahulukan kepentingan pengguna
Kepentingan dan kebutuhan pengguna menjadi fokus utama
aplikasi AJAX.
2.6.2 Perbandingan Aplikasi Web Tradisional dengan Aplikasi AJAX
Cara kerja halaman web klasik sebagai berikut, ketika pengguna
melakukan permintaan HTTP kepada server, server akan melakukan
proses data, dan kemudian mengembalikan halaman HTML kepada klien.
Model seperti ini merupakan adaptasi dari penggunaan orisinal web
sebagai media hypertext. Setiap kali pengguna melakukan permintaan,
16
pengguna harus menunggu respons dari server untuk mengembalikan
permintaan halaman.
Gambar 2.3 Perbandingan Model Aplikasi Web
Aplikasi AJAX menjembatani permintaan klien dan respons
server dengan sebuah media yang disebut mesin AJAX sehingga
menjadikan aplikasi web lebih responsif dan mengurangi waktu tunggu
pengguna. Mesin AJAX ini akan mengubah sistem kerja aplikasi web
yang synchronous menjadi asynchronous dan menjadikan komunikasi
pengguna dan server menjadi independen.
17
Gambar 2.4 Perbandingan model interaksi synchronous dan
asynchrounous
2.7 Web Services
Menurut Richards (2006, p11 ) web services adalah aplikasi yang diakses
melalui internet menggunakan standar protokol internet dan menggunakan XML
sebagai format pesannya.
Menurut W3C Web Services Architecture Working Group (2004)
pengertian web services adalah suatu sistem piranti lunak yang dirancang untuk
mendukung interaksi antar mesin-mesin pada suatu jaringan, seperti internet dan
18
diakses melalui sistem jarak jauh. Sehingga yang terlibat adalah Sistem server
yang menyediakan layanan web services, kemudian client yang mengakses
fungsi dari web services tersebut.
2.8 Ruby
2.8.1 Sejarah
Ruby adalah bahasa pemograman yang dibuat oleh Yukihiro
“Matz” Matsumoto, seorang berkebangsaan Jepang pada tahun 1993.
Namun baru pada tahun 1995 diperkenalkan ke masyarakat umum. Ruby
merupakan bahasa pemograman yang memiliki fitur OOP (Object
Oriented Programming) yang sangat kuat. Ruby dibentuk sejak awal
dengan struktur OOP menggunakan bahasa C. Ruby termasuk dalam
kategori bahasa scripting. (Stewart, 2001).
Bahasa scripting adalah bahasa pemograman komputer yang
secara langsung diterjemahkan ke machine instruction serta langsung
dijalankan setiap kali kode program dijalankan. Yang menjadi perbedaan
dengan program, adalah karena program di compile menjadi binary
executable file permanen sebelum dijalankan.
Ruby awalnya dibuat untuk mewujudkan tujuan dari penciptanya
yaitu adanya suatu bahasa scripting yang memiliki fitur OOP,
sebagaimana diketahui pada saat itu hanya bahasa scripting Perl adalah
yang paling populer namun tidak mendukung OOP.
Pada tahun 2006, Ruby diterima oleh banyak orang. Dengan
komunitas pengguna Ruby yang aktif di banyak kota-kota di seluruh
19
dunia dan konferensi-konferensi beserta pertemuan Ruby terkait. Saat ini
banyak programmer profesional dari seluruh dunia serius ikut
mengembangkan Ruby.
Gambar 2.5. Ruby-Talk
Ruby-Talk, (http://www.ruby-lang.org/) milis utama untuk diskusi
Ruby telah mencapai kisaran 200 email setiap hari.
TIOBE index (http://www.tiobe.com/), yang menghitung
perkembangan bahasa-bahasa pemrograman, menempatkan Ruby pada
peringkat ke 10 diantara bahasa-bahasa pemrograman di seluruh dunia.
Melihat pada perkembangan ini, mereka memperkirakan, Kebanyakan
dari perkembangan Ruby karena terkenalnya software yang ditulis
dengan Ruby, terutama framework web Ruby on Rails.
2.8.2 Struktur Bahasa
Berikut contoh kode program menggunakan Ruby :
class Mahasiswa
def initialize(nama, nim)
@nama = nama
@nim = nim
end
20
def cetak_info
puts "Nama: #{@nama}"
puts "NIM: #{@nim}"
end
def nama=(nama_baru)
@nama = nama_baru
end
def nama
@nama
end
end
# membuat objek baru
mhs = Mahasiswa.new("Irfani","0800759274")
mhs.cetak_info #menjalankan method cetak_info
mhs.nama = "Ridwan" # mengubah nama objek mhs
mhs.cetak_info
nama = mhs.nama # method ini akan mengembalikan nilai Ridwan
puts nama #mencetak variabel nama dengan isi Ridwan
Tabel 2.1. Contoh Program Ruby
Konvensi pada bahasa ruby ada yang dibentuk dari bahasanya
sendiri dan juga ada yang dibentuk berdasarkan kesepakatan di komunitas
pengguna ruby. Beberapa konvensi tersebut adalah :
• Class Names
• Method_names and variable_names
• Methods_asking_a_question?
• Slightly_dangerous_methods!
• @instance_variables
21
• $global_variables
• SOME_CONSTANTS or OtherConstants
2.8.3 Fitur Bahasa
Ruby telah mendukung beberapa fitur-fitur terkini yang terdapat
pada bahasa-bahasa pemograman popular lainnya, beberapa diantaranya :
• Ruby memiliki fitur-fitur yang menangani exception, seperti Java atau
Python, untuk mempermudah menangani error.
• Ruby menyediakan mark-and-sweep garbage collector untuk semua
object Ruby. Sehingga object yang sudah tidak digunakan lagi tidak
akan menjadi sampah di memory.
• Menulis extension C di Ruby lebih mudah daripada di Perl ataupun di
Python, dengan API yang elegan untuk memanggil Ruby dari C. Ini
termasuk memanggil Ruby embedded di software, untuk digunakan
sebagai bahasa scripting.
• Ruby bisa load library extension secara dinamis jika Sistem Operasi
mengijinkan.
• Ruby menyediakan fitur OS threading yang independent. Maka,
untuk semua platform dimana Ruby berjalan, Anda juga punya
multithreading, terlepas dari apakah Sistem Operasi mendukung
multithreading atau tidak, bahkan pada MS-DOS sekalipun.
• Ruby sangat portable: Ruby kebanyakan dikembangkan di
GNU/Linux, tetapi juga berjalan di banyak tipe UNIX, Mac OS X,
22
Windows 95/98/Me/NT/2000/XP, DOS, BeOS, OS/2, dan lain-lain.
2.8.4 Perbandingan Ruby dengan Bahasa Lain
Untuk membandingkan bahasa Ruby dengan bahasa lain, penulis
membandingkannya dengan bahasa lain yang juga memiliki konsep OOP.
Bahasa dengan fitur OOP yang paling populer adalah Java.
Berikut ini adalah perbandingan kode program untuk
menjumlahkan dua angka dimana input diambil dari keyboard.
Kode program dalam Java:
import java.io.*;
public class Addup
{
static public void main(String args[]) throws
Exception {
InputStreamReader stdin = new
InputStreamReader(System.in);
BufferedReader console = new
BufferedReader(stdin);
int i1 = Integer.parseInt(console.readLine());
int i2 = Integer.parseInt(console.readLine());
System.out.println(i1 + i2);
}
}
Tabel 2.2. Kode Program Penjumlahan dalam Java
Anda dapat menuliskan program tersebut di Ruby sebagai berikut:
23
a = gets.to_i
b = gets.to_i
c = a + b
puts c
Tabel 2.3. Kode Program Penjumlahan dalam Ruby
Dari Java ke Ruby, bisa dipastikan source code akan
menciut/mengecil. Dan sangat besar kemungkinan bahwa untuk membuat
aplikasi di Ruby membutuhkan waktu yang jauh lebih singkat daripada
membuatnya di bahasa Java.
2.9 Ruby on Rails Web Framework (RoR)
Ruby on Rails (http://www.rubyonrails.org/) merupakan sebuah
framework web dengan penerapan pattern MVC. RoR ditulis menggunakan
bahasa pemrograman Ruby yang menerapkan konsep OOP. Di dalam
pengembangan aplikasi menggunakan RoR terdapat dua filosofi dasar yaitu
Convention Over Configuration dan Don’t Repeat Your Self. RoR memiliki
beberapa aturan-aturan yang sebaiknya diikuti. Kemudian RoR akan mengatur
segalanya baik itu database, url mapping, test unit, dan lain lain. Hal ini berbeda
dengan framework web lain seperti Struts, Spring dimana harus melakukan
langkah-langkah yang panjang dalam membuat konfigurasi agar framework
dapat berjalan.
RoR juga telah dilengkapi dengan Ajax, salah satu teknologi terkini
dalam dunia web. Fitur lainnya yaitu Object Relational Mapping (ORM)
membuat pekerjaan yang berhubungan dengan database menjadi mudah. Dimana
24
database akan di visualisasikan sebagai object yang saling berelasi. Untuk
kemudahan interaksi dengan aplikasi lain RoR juga mendukung fitur web
services.
Beberapa aplikasi yang telah dibuat dengan menggunakan RoR adalah :
1. Basecamphq.com
aplikasi manajemen proyek online
2. Yellowpages.com
Direktori telepon dan bisnis di Amerika Serikat
3. Odeo.com
Situs berbagi file audio (mp3, podcast)
2.10 E-commerce
2.10.1 Pengertian E-commerce
Menurut Turban (2002, p4), e-commerce adalah sebuah konsep
baru yang menggambarkan proses pembelian, menjualan atau pertukaran
produk, jasa dan informasi melalui jaringan komputer, termasuk melalui
internet.
Menurut Kalakota dan Robinson (2001, p4), e-commerce adalah
transaksi membeli dan menjual lewat media digital. Titik beratnya adalah
pada arus pesanan dan laba kotor. Sebagian besar adalah mempertemukan
pembeli dan penjual yang sebelumnya tidak pernah bertemu dan sebagian
kecil dari itu adalah secara sederhana melakukan transaksi yang tadinya
dilakukan melalui surat pemesanan.
25
Menurut Rayport dan Jaworski (2004, p3), definisi e-commerce
adalah pertukaran antara pihak-pihak (individu, organisasi atau
keduanya) yang dimediasi oleh teknologi, atau seperti kata electronic
yang mendahuluinya, merupakan aktivitas organisasi yang memfasilitasi
pertukaran tersebut..
Kesimpulannya e-commerce adalah pertukaran produk, jasa, dan
informasi dengan mempertemukan pihak penjual kepada konsumen akhir
melalui media elektronik seperti internet maupun media elektronik
lainnya.
2.10.2 Perbedaan E-commerce dengan E-business
E-commerce dan e-business merupakan suatu pembaharuan dalam
bisnis dengan mengunakan jaringan komputer yaitu internet. Dengan kata
lain ecommerce dan e-business adalah penjualan dan pemasaran yang
dilakukan secara online. Hal ini dilakukan untuk menciptakan
kemudahan–kemudahan bagi para pelaku bisnis terutama konsumen.
Karena konsumen merupakan kunci keberhasilan perusahaan, tanpa
adanya konsumen, perusahaan tidak dapat menjalankan bisnisnya.
Menurut Turban, Reiner dan Potter (2003, p275) E-commerce
menggambarkan proses penjualan, pembelian, dan pertukaran produk,
service (pelayanan), dan informasi melalui jaringan komputer, yaitu
internet.
E-business memiliki pengertian yang hampir sama dengan e-
commerce, tetapi tidak hanya penjualan dan pembelian saja melainkan
26
juga melakukan aktivitas pelayanan (services), kolaborasi dengan partner
bisnis, dan menjalankan transaksi elektronik dalam organisasi.
Menurut Kalakota & Robinson (2001, p.4) E-commerce
didefinisikan sebagai penjualan dan pembelian melalui media digital.
E-business tidak hanya mengenai transaksi e-commerce, tetapi
juga memperbaharui model bisnis lama dengan mengaplikasikan
teknologi didalamnya untuk memaksimalkan nilai konsumen.
2.10.3 Model E-commerce
Menurut Turban (2002, p.13–14), model-model dari e-commerce
berdasarkan transaksi yang dilakukan, adalah :
1. Business to business (B2B)
Model e-commerce yang dilakukan antar perusahaan atau
organisasi.Transaksi B2B meliputi transaksi IOS (Interorganizational
InformationSystem) dan transaksi e-market yang terjadi diantara
organisasi / perusahaan.
Berdasarkan Turban, Rainer dan Potter (2003, p.275), contoh dari
B2B adalah Wallmart dengan Wallmart Lambert.
2. Business to consumer (B2C)
Model e-commerce yang meliputi transaksi retail dengan pembeli
individual. Model ini juga biasa disebut e-tailing, contohnya seperti
Amazon.com
3. Consumer to consumer (C2C)
27
Model e-commerce dimana konsumen menjual secara langsung
kepada konsumen lainnya. Mereka menggunakan personal web pages
dan portal seperti intranet untuk mengiklankan produk atau jasanya.
4. People to people (P2P)
Model e-commerce jenis khusus dari C2C, dimana orang–orang
dapat bertukar lagu, film, software dan barang lainnya. Contohnya seperti
Kazaa, Imesh
5. Consumer to business (C2B)
Model e-commerce yang meliputi individu yang menggunakan
internet untuk menjual produk atau jasa kepada organisasi, seperti
individu yang mencari penjual, berinteraksi dengan mereka dan
melakukan transaksi online. Contohnya seperti Priceline.com
6. Intrabusines (organizational) e-commerce
Model e-commerce yang meliputi aktivitas internal perusahaan,
biasanya ditampilkan pada intranet atau corporate portal, yang
melibatkan pertukaran barang, jasa, atau informasi diantara unit–unit
yang beragam dalam perusahaan tersebut.
7. Business to employees (B2E)
Model e-commerce yang merupakan bagian dari kategori intra-
business dimana organisasi / perusahaan memberikan jasa, informasi,
atau produk kepada para karyawan.
8. Government to citizens (G2C)
28
Model e-commerce dimana pemerintah membeli, atau menjual
barang, jasa, atau informasi kepada perusahaan atau masyarakat
individual.
9. Exchange to exchange (E2E)
Model e-commerce yang berupa sistem formal yang
menghubungkan pertukaran.
10. Collaborative commerce
Model e-commerce yang merupakan aplikasi dari IOS untuk
kolaborasi elektronik diantara partner bisnis dan antara karyawan
perusahaan.
11. Mobile commerce
Model e-commerce yang dilakukan dalam lingkungan tanpa
kabel, sering disebut m-commerce.
2.11 Jejaring Sosial
2.11.1 Pengertian Jejaring Sosial
Jejaring sosial adalah struktur sosial yang terdiri dari elemen-
elemen individual atau organisasi. Jejaring ini menunjukan jalan dimana
mereka berhubungan karena kesamaan sosialitas, mulai dari mereka yang
dikenal sehari-hari sampai dengan keluarga. Istilah ini diperkenalkan oleh
profesor J.A. Barnes di tahun 1954.
Jejaring sosial adalah suatu struktur sosial yang dibentuk dari
simpul-simpul (yang umumnya adalah individu atau organisasi) yang
29
diikat dengan satu atau lebih tipe relasi spesifik seperti nilai, visi, ide,
teman, keturunan, dll.
2.11.2 Sejarah Jejaring Sosial
Sejak komputer dapat dihubungkan satu dengan lainnya dengan
adanya internet banyak upaya awal untuk mendukung jejaring sosial
melalui komunikasi antar komputer.
Situs jejaring sosial diawali oleh Classmates.com pada tahun 1995
yang berfokus pada hubungan antar mantan teman sekolah dan
SixDegrees.com pada tahun 1997 yang membuat ikatan tidak langsung.
Dua model berbeda dari jejaring sosial yang lahir sekitar pada tahun 1999
adalah berbasiskan kepercayaan yang dikembangkan oleh Epinions.com,
dan jejaring sosial yang berbasiskan pertemanan seperti yang
dikembangkan oleh Uskup Jonathan yang kemudian dipakai pada
beberapa situs UK regional di antara 1999 dan 2001. Inovasi meliputi
tidak hanya memperlihatkan siapa berteman dengan siapa, tetapi
memberikan pengguna kontrol yang lebih akan isi dan hubungan. Pada
tahun 2005, suatu layanan jejaring sosial MySpace, dilaporkan lebih
banyak diakses dibandingkan Google dengan Facebook, pesaing yang
tumbuh dengan cepat.
Jejaring sosial mulai menjadi bagian dari strategi internet bisnis
sekitar tahun 2005 ketika Yahoo meluncurkan Yahoo! 360°. Pada bulan
juli 2005 News Corporation membeli MySpace, diikuti oleh ITV (UK)
30
membeli Friends Reunited pada Desember 2005. Diperkirakan ada lebih
dari 200 situs jejaring sosial menggunakan model jejaring sosial ini.
2.11.3 Layanan Jejaring Sosial
Banyak layanan jejaring sosial berbasiskan web yang
menyediakan kumpulan cara yang beragam bagi pengguna untuk dapat
berinteraksi seperti chat, messaging, email, video, chat suara, share file,
blog, diskusi grup, dan lain-lain. Umumnya jejaring sosial memberikan
layanan untuk membuat biodata dirinya. Pengguna dapat meng-upload
foto dirinya dan dapat menjadi teman dengan pengguna lainnya.
Beberapa jejaring sosial memiliki fitur tambahan seperti pembuatan grup
untuk dapat saling sharing didalamnya.
2.12 Agile Software Development
2.12.1 Sejarah Agile Software Development
Metode pengembangan software secara Agile dikembangkan oleh
17 orang methodologis yang membentuk Agile Software Development
pada bulan Februari 2001. Kelompok ini lebih dikenal dengan sebutan
Agile Alliance (Baldwin dan Scragg, 2004).
31
2.12.2 Metode Agile Software Development
Di dalam Agile Manifesto (Agile Alliance, 2001) disebutkan
bahwa untuk mengembangkan software dengan cara yang lebih baik ada
4 manifesto utama antara lain :
1. Mementingkan komunikasi/interaksi antar individu dibandingkan
proses dan tools.
2. Mementingkan mengerjakan software dibandingkan dokumentasi
yang lengkap.
3. Kolaborasi dengan para pengguna software. Para pengguna software
dapat memberitahu seperti apa software yang mereka inginkan.
4. Respon terhadap perubahan. Dalam pengembangan software
perubahan adalah sebuah realitas yang tidak bisa dihindari. Sehingga
rencana proyek yang dibuat harus fleksibel dan memungkinkan
perubahan.
Gambar 2.6. Agile Software Development Life Cycle
32
2.13 Test Driven Development (TDD)
Test-Driven Development adalah sebuah teknik pengembangan software
yang melibatkan penulisan unit-unit test case dan kemudian
mengimplementasikannya kedalam kode yang diperlukan untuk melewati tes
tersebut. Semenjak dipublikasikan pada awal tahun 2003, TDD banyak
mendapatkan respon yang baik dari para pengembang software. (Newkirk dan
Vorontsov, 2004)
Ruby on Rails juga mendukung pengembangan aplikasi dengan
menggunakan teknik TDD ini. Rails secara otomatis membuat unit-unit test case
yang umum digunakan pada saat memulai membuat suatu proyek baru.
2.14 Model View Controller (MVC)
2.14.1 Sejarah MVC
Pada tahun 1979, Trygve Reenskaug mengembangkan sebuah
arsitektur baru untuk mengembangkan aplikasi yang interaktif. Dalam
desainnya, Trygve Reenskaug memisahkan aplikasi menjadi 3 jenis
komponen, yaitu model, views dan controllers. (Thomas, 2005, p9).
2.14.2 Pengertian MVC
MVC adalah salah satu design pattern yang terkenal untuk
pembuatan aplikasi. MVC merupakan singkatan dari Model Views
Controllers yang terdiri dari 3 komponen yang terpisah yang
mempermudah developer karena membuat aplikasi menjadi lebih
portable, scalable dan maintanable.
33
2.14.3 Komponen MVC
MVC terbagi atas 3 Komponen, yaitu :
1. Model
Model merupakan dasar dari sebuah aplikasi. Model bertanggung
jawab atas state yang ada di dalam aplikasi. State ini bisa bersifat
sementara, yang hanya digunakan untuk beberapa jenis interaksi dengan
pengguna. Terkadang state ini juga bisa bersifat permanen dan disimpan
diluar dari aplikasi tersebut, umumnya didalam database (Thomas dan
Handson, 2005, p9).
2. Views
View bertanggung jawab atas user interface (UI), yang normalnya
berdasarkan data yang ada didalam model. Contohnya, sebuah toko
online mempunya daftar produk-produk yang ingin ditampilkan di layar.
Daftar ini akan bisa diakses melewati model tetapi view-lah yang
bertanggung jawab untuk mengaksesnya dari model dan menampilkannya
sesuai format yang ingin ditampilkan kepada para pengguna. Umumnya
akses view ke model melalui perantara controller. (Thomas dan Handson,
2005, p9).
3. Controllers
Controler merupakan bagian utama dari aplikasi. Controllers
menerima event dari luar sistem (umumnya dari para pengguna), lalu
berinteraksi dengan model dan menampilkannya dengan format yang
layak untuk dilihat oleh para pengguna (Thomas dan Handson, 2005, p9).
34
Gambar 2.7. Arsitektur Model-View-Controller
2.15 Unified Modelling Languange (UML)
2.15.1 Pengertian UML
Menurut Booch (1998, p8) UML adalah sebuah bahasa visual
untuk memvisualisasikan, menspesifikasikan, membangun dan
mendokumentasikan artifak-artifak yang ada didalam sebuah system.
UML memberikan sebuah standar cara menuliskan rancang
bangun dari sebuah system, yang mencakup semua jenis konseptual
seperti bisnis proses dan fungsi dari sistem.
2.15.2 Use Case
Uses Case adalah sebuah teknik untuk merekam persyaratan
fungsional dari sebuah sistem. Use case mendeskripsikan interaksi tipikal
antara para pengguna sistem dengan sistem itu sendiri, dengan
memberikan sebuah narasi tentang bagimana sistem tersebut digunakan
(Fowler, 2004, p141).
Simbol-simbol yang digunakan dalam Use Case Diagram :
1. Use case
35
Use case adalah hasil penguraian cakupan sistem secara
fungsional kedalam bentuk-bentuk pernyataan yang lebih kecil.
Pernyataan ini digambarkan dengan simbol ellips.
Gambar 2.8. Use Case.
2. Aktor
Aktor adalah pengguna sistem. Didalam use case diagram para
pengguna sistem atau aktor digambarkan berinteraksi dengan sebuah
sistem melalui use case dan hubungan tertentu.
Gambar 2.9. Aktor.
3. Hubungan (Relasi)
Sebuah relasi digambarkan sebagai sebuah garis yang
menghubungkan aktor dengan use case yang berada di dalam sebuah
sistem. Tipe relasi dapat berbeda tergantung dari bagaimana garis
tersebut digambarkan.
36
2.15.3 Class Diagram
Class diagram menunjukan class yang terdapat dalam perangkat
lunak dan bagaimana mereka saling berhubungan Class diagram
mendeskripsikan jenis-jenis objek dalam sistem dan berbagai hubungan
statis yang terdapat diantara mereka. Class diagram juga menunjukkan
properti dan operasi sebuah kelas dan batasan-batasan yang terdapat
dalam hubungan-hubungan objek tersebut (Fowler, 2005, p53).
Simbol yang umum digunakan dalam class diagram yaitu :
• Kelas
Kelas digambarkan dengan sebuah kotak yang terbagi atas tiga
bagian, yaitu :
o Nama kelas (bagian atas)
o Attribut kelas (bagian tengah)
o Operasi kelas (bagian bawah)
Gambar 2.10 . Class Diagram
• Hubungan
Didalam class diagram terdapat 2 jenis hubungan yang umum
digunakan, yaitu :
o Asosiasi
37
Asosiasi digambarkan dengan sebuah garis lurus yang
menghubungkan dua buah kelas, berawal dari kelas sumber
menuju kelas yang dituju.
o Generalisasi
Generalisi digambarkan dengan sebuah garis yang
biasanya digambarkan secara vertikal yang menghubungkan
sebuah kelas sumber dengan subkelasnya. Kelas sumber
ditunjukkan menggunakan gambar segitiga yang menunjuk ke
arah kelas tersebut. Didalam sudut pandang software, yang
dimaksud dengan generalisasi adalah pewarisan (inheritance).
o Depedensi
depedensi ada diantara dua elemen yang saling berkaitan,
dimana perubahan definisi dari elemen yang satu (supplier) juga
menyebabkan perubahan definisi di elemen yang lainya (client).
Kelas client ditunjukkan dengan menggunakan segitiga yang
menunjuk ke arah kelas tersebut.
2.15.4 Sequence Diagram
Interaction diagram menggambarkan bagaimana sekelompok
objek saling berkolaborasi dalam beberapa behavior. UML memiliki
beberapa bentuk interaction diagram dan yang paling umum digunakan
adalah sequence diagram.
Sebuah sequence diagram secara khusus menjabarkan behavior
sebuah skenario tunggal. Diagram tersebut menunjukkan sejumlah objek
38
contoh dan pesan-pesan yang melewati objek-objek ini didalam use case
(Fowler, 2005, p81).
Gambar 2.11. Contoh Sequence Diagram.
Dalam contoh pada gambar 2.11 digambarkan proses interaksi disaat
member akan melakukan login. Sequence diagram tersebut dimulai pada saat
user mengisi form login lalu kemudian mensubmitnya, formLogin akan diterima
oleh MemberController yang kemudian melakukan proses pencarian data di
dalam objek Member.
2.15.5 UML Color Modelling
UML Color Modelling adalah sebuah tehnik pemodelan objek
yang menambahkan atribut warna untuk tiap-tiap jenis kelas tertentu.
Tiap-tiap tipe ini diwakili oleh satu warna. Tehnik pemodelan ini dapat
membantu untuk mengidentifikasikan kelas-kelas tertentu dan tanggung
jawab yang dimiliki kelas tersebut dalam logical layer. (Coad, 1999)
Dalam UML Color Modelling dikenal 4 jenis Archtypes yang
masing-masing memiliki peranan yang berbeda, yaitu :
a. Moment interval
39
Moment interval adalah sesuatu dimana seseorang
membutuhkannya untuk dapat mengerjakan suatu pekerjaan dan
mengontrol pekerjaan tersebut untuk kepentingan bisnis dan alasan-
alasan lainnya. Moment interval bersifat sementara dan hanya berlaku
untuk waktu tertentu atau jangka waktu tertentu. (Coad, 1999).
Gambar 2.12. Moment Interval
b. Role
Role adalah suatu cara untuk berpartisipasi yang dilakukan oleh
party( perorangan atau organisasi), place atau thing (Coad, 1999).
Gambar 2.13. Role
c. Party, place,or thing
Parties, places, dan things mewakili orang atau organisasi,
tempat, dan segala sesuatu yang ada dalam proses bisnis.
Gambar 2.14 . Party, Place, or Thing
40
d. Description
Description adalah sekumpulan nilai yang digunakan secara
berulang-ulang. Description juga menyediakan kumpulan behavior
dari archtypes lain yang dijelaskannya (Coad, 1999).
Gambar 2.15. Description
Untuk lebih jelasnya UML color modelling, perhatikan contoh
berikut :
Gambar 2.16. Contoh UML Color Modelling
Dari gambar diatas bisa diambil kesimpulan bahwa, terdapat suatu
peranan (role) bernama admin didalam sistem. Admin tersebut dapat
mengambil data dari session, yang biasanya berupa data login dan
autentifikasi, dan data-data ini bersifat sementara (moment interval).
41
Admin juga bisa mengakses data product (thing). Isi detail dari
product dijelaskan dibagian product detail (description).
2.16 Basis Data
2.16.1 Pengertian Database
Menurut Connolly dan Begg(2002, p14) Database adalah
kumpulan dari data-data logikal yang saling terhubung dan deskripsi dari
data-data tersebut yang didesain untuk memenuhi kebutuhan informasi
dari sebuah organisasi.
2.16.2 Entity Relationship Diagram (ERD)
Menurut Whitten, Bentley, dan Dittman (2004, pp295-307), entity
relationship diagram adalah pemodelan data yang menggunakan
beberapa notasi untuk menggambarkan data yang berhubungan dengan
entity dan hubungan (relationship) yang dideskripsikan oleh data
tersebut.
ERD merupakan diagram yang menggambarkan hubungan antar
objek data. Salah satu alternatif pembuatan ERD adalah dengan notasi
pemodelan Crow’s Feet.
Simbol-simbol yang ada digunakan dalam ERD
1. Entitas
Entitas adalah objek data representasi dari hampir semua
informasi gabungan yang harus dipahami yang direpresentasikan pada
database. (Connolly dan Begg, 2002, p15). Entitas terdiri atas beberapa
42
atribut yang merupakan properti dari entitas tersebut. Ada beberapa
macam jenis key atribut, antara lain:
• Key adalah suatu atribut, atau group atribut yang mengasumsikan
nilai unik untuk setiap instan.
• Composite key adalah group atribut yang secara unik
mengidentifikasi instan dari suatu entitas.
• Candidate key adalah suatu key yang dapat menjadi primary key dari
suatu entitas.
• Primary key adalah candidate key yang sebagian besar digunakan
untuk mengidentifikasi secara unik instan entitas tunggal
• Alternate key/Alternate key adalah candidate key yang tidak menjadi
primary key
• Foreign key adalah key utama dari suatu entitas yang digunakan pada
entitas lain untuk mengidentifikasi instan dari relationship.
Gambar 2.17. Entitas
2. Relationship
Relationship adalah hubungan asosiasi antar entitas. (Connolly
dan Begg, 2002, p15). Hubungan ini dinotasikan pada ERD dengan garis
lurus. Ada dua jenis relationship yaitu Non-identifying relationship dan
43
Identifying relationship. Non-identifying relationship adalah hubungan
dimana setiap entitas partisipan mempunyai primary key independen-nya
masing-masing. Relationship tipe ini digambarkan dengan garis putus-
putus dan biasa disebut strong entity. Sementara identifying relationship
adalah hubungan dimana setiap entitas partisipan mempunyai primary
key yang sama. Relationship tipe ini digambarkan dengan garis solid yang
tidak terputus-putus dan biasa disebut weak entity.
3. Kardinalitas
Kardinalitas merupakan suatu properties dari suatu relasi yang
mendefinisikan jumlah hubungan maksimum dari tiap entitas yang
memiliki relasi tersebut. (Connolly dan Begg, 2002, p351). Notasi
penggambaran kardinalitas pada ERD dengan pemodelan Crow’s Feet
adalah sebagai berikut:
44
Gambar 2.18. Notasi Kardinalitas
Gambar 2.19. Hubungan Antar Entitas
Gambar 2.19 diatas merupakan contoh relasi antar entitas product
category dengan product. Kardinalitas pada relasi tersebut menunjukkan bahwa
setiap produk hanya memiliki satu kategori produk dan kategori produk dapat
45
memiliki nol hingga banyak produk. Atribut name pada entitas products
merupakan atribut yang harus diisi, sedangkan atribut product_category_id
merupakan atribut foreign key yang menunjuk ke entitas product_categories.
2.16.3 Normalisasi
Menurut Connolly dan Begg(2002, p376) Normalisasi merupakan
sebuah teknik untuk menghasilkan sebuah kumpulan dari relasi-relasi
dengan atribut-atribut yang diinginkan, berdasarkan kebutuhan data
perusahaan.
Tujuan normalisasi dalam perancangan model data logikal untuk
sistem basis data relasional adalah untuk menciptakan representasi data,
hubungan antar data dan constraint yang akurat. Tahapan-tahapan
Normalisasi :
1. Unnormal Form (UNF)
Pada bentuk ini sebuah tabel masih memiliki satu atau lebih
kelompok data yang berulang. (Connolly dan Begg, 2002, p387)
2. First Normal Form (1NF)
Pada bentuk ini sebuah tabel memiliki relasi dimana pada setiap
sel (perpotongan baris dan kolom) hanya mengandung satu nilai.
(Connolly dan Begg, 2002, p388)
3. Second Normal Form (2NF)
Pada bentuk ini sebuah tabel memiliki relasi yang sama dengan
bentuk First Normal Form dan setiap attribut non-primary key tergantung
sepenuhnya pada primary key. (Connolly dan Begg, 2002, p392)
46
Dalam bentuk 2NF ini tidak boleh ada partial dependency. Jika
masih ada partial depedency, maka attribut yang memiliki functional
dependent tersebut harus dihilangkan dari sebuah relasi dengan cara
menempatkannya ke dalam sebuah relasi baru.
4. Third Normal Form (3NF)
Pada bentuk ini sebuah tabel memiliki relasi seperti yang ada
dalam 1NF dan 2NF, dan tidak ada atribut non-primary key yang
tergantung pada atribut non-primary key lainnya.
2.17 Interaksi Manusia dan Komputer
Delapan Aturan Emas Perancangan dalam hubungannya dengan Interaksi
Manusia dan Komputer
a. Berusaha keras untuk konsisten
Harus berusaha untukmenjaga konsistensi fungsi dan format tampilan
pada setiap halaman
b. Memungkinkan pengguna yang sering menggunakan shortcuts
Ketika frekuensi penggunaan meningkat, maka pengguna ingin
mengurangi jumlah interaksi dan meningkatkan kecepatan interaksi. Shorcuts
dapat membantu mempersingkat waktu dan jumlah interaksi yang dilakukan
oleh pengguna.
c. Memberikan umpan balik yang informatif
Untuk setiaip aksi pengguna, harus ada umpan balik sehingga pengguna
mengetahui apa yang telah dan akan dilakukan. Umpan balik dapat berupa
pesan, konfirmasi, informasi ataupun gambaran visual yang informatif.
47
d. Merancang dialog untuk menghasilkan keadaan akhir
Rangkaian aksi harus dikelompokkan ke dalam kelompok-kelompok
sesuai dengan fungsi nya masing-masing. Umpan balik yang informatif
setelah menyelesaikan kelompok aksi tersebut akan memberikan
penyelesaian yang memuaskan kepada pengguna, dan indikasi bahwa setiap
sistem siap untuk melakukan aksi berikutnya.
e. Memberikan pencegahan kesalahan dan penanganan kesalahan yang
sederhana
Sebisa mungkin sistem dirancang sehingga tidak memungkinkan
pengguna untuk dapat melakukan kesalahan yang serius. Jika pengguana
melakukan kesalahan, sistem harus dapat mendeteksi kesalahan dan
memberikan instruksi yang sederhana, bersifat membangun dan khusus guna
melakukan perbaikan.
f. Memungkinkan pembalikan aksi (undo) yang mudah
Sebisa mungkin sistem dirancang sehingga setiap aksi yang dilakukan
harus bisa dibalik. Fitur pembalikan aksi ini menghilangkan ketakutan
pengguna karena mereka mengetahui kesalahan yang telah dilakukan dapat
dibalikan kembali ke keadaan sebelumnya.
g. Mendukung pengendalian dari dalam
Pengguna yang berpengalaman sangat menginginkan perasaan bahwa
mereka menguasai sistem dan sistem merespon aksi mereka. Aksi sistem
yang tiba-tiba, rangkaian data yang membosankan, ketidakmampuan atau
kesulitan dalam mendapatkan informasi yang dibutuhkan menyebabkan
pengguna khawatir dan tidak puas.
48
h. Mengurangi beban ingatan jangka pendek
Keterbatasan manusia untuk mengingat dalam jangka pendek
menyebabkan tampilan harus sederhana, agar pengguna tidak kebingungan
untuk mengingat bagaimana cara menjalankan sistem atau aplikasi tersebut.