• Tidak ada hasil yang ditemukan

BAB II TINJAUAN PUSTAKA

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB II TINJAUAN PUSTAKA"

Copied!
84
0
0

Teks penuh

(1)

5 BAB II

TINJAUAN PUSTAKA

Bab ini menjelaskan tentang review singkat dari kepustakaan yang digunakan untuk menunjang perancangan dan pembuatan sistem yang dibangun.

2.1. E-commerce

E-commerce adalah tipe industri yang membeli atau menjual produk atau

layanan yang dilakukan melalui sistem elektronik seperti Internet atau jaringan komputer lainnya. E-commerce juga dapat didefinisikan sebagai suatu cara berbelanja atau berdagang secara online atau direct selling yang memanfaatkan fasilitas Internet dimana terdapat website yang dapat menyediakan layanan “get

and deliver“.

E-commerce akan merubah semua kegiatan marketing dan juga sekaligus

memangkas biaya-biaya operasional untuk kegiatan trading (perdagangan).

2.1.1. Pengertian E-Commerce menurut ahli

Menurut Kalakota dan Whinston (1996), e-Commerce didefinisikan dari beberapa perspektif yaitu:

1. Definisi menurut perspektif komunikasi menyatakan bahwa e-commerce adalah pengiriman informasi, produk dan jasa atau pembayaran melalui jaringan telepon, atau jalur komunikasi lainnya.

2. Definisi menurut perspektif proses bisnis menyatakan bahwa e-commerce adalah aplikasi teknologi menuju otomatisasi transaksi bisnis.

3. Definisi menurut perspektif pelayanan menyatakan bahwa e-commerce adalah alat yang digunakan untuk mengurangi biaya dalam pemesanan dan pengiriman barang.

(2)

4. Definisi menurut perspektif online menyatakan bahwa e-commerce adalah sistem yang menyediakan kemampuan untuk menjual dan membeli produk serta informasi melalui Internet dan jaringan jasa online lainnya.

Definisi-definisi diatas telah menyatakan bahwa e-commerce tidak hanya berfungsi sebagai sistem yang berfungsi untuk kegiatan perdagangan jarak jauh, tetapi juga sebagai sarana untuk meningkatkan efisiensi modal untuk kegiatan perdagangan secara keseluruhan.

2.1.2. Kategori e-commerce

Menurut Ana Udayana (2013), E-commerce dapat dibagi menjadi empat kategori utama, yaitu:

1. B2B (Business-to-Business)

B2B (Business-to-Business) merupakan kategori e-commerce yang

melibatkan transaksi antara perusahaan satu dengan perusahaan lainnya, seperti produsen menjual kepada distributor atau grosir menjual ke pengecer. Harga produk dipengaruhi oleh jumlah pesanan dan dinegosiasikan terlebih dahulu.

2. B2C (Business-to-Consumer)

B2C (Business-to-Consumer) merupakan sistem e-commerce yang

memungkinkan perusahaan melakukan penjualan kepada pelanggan secara langsung, biasanya melalui katalog atau memanfaatkan perangkat lunak shopping

cart.

3. C2B (Consumer-to-Business)

C2B (Consumer-to-Business) merupakan sistem e-commerce yang

memungkinkan perseorangan untuk menjual produk atau layanan ke perusahaan atau organisasi yang mencari penjual, berinteraksi dan menyepakati suatu transaksi.

(3)

C2C (Consumer-to-Consumer) merupakan sistem e-commerce yang

memungkinkan pelanggan menjual barang atau jasa langsung ke pelanggan lainnya, baik dengan cara bertemu langsung maupun melalui jasa situs periklanan barang atau jasa di Internet. Ada banyak situs yang menawarkan iklan baris gratis, lelang, dan forum yang memungkinkan seseorang dapat membeli dan menjual melalui sistem pembayaran online seperti PayPal, situs yang memungkinkan seseorang dapat mengirim dan menerima uang secara online dengan mudah. Layanan lelang eBay adalah contoh yang bagus untuk transaksi C2C

(Consumer-to-Consumer) yang sudah ada sejak tahun 1995.

Dari beberapa definisi singkat diatas, dapat disimpulkan bahwa

e-commerce adalah sebuah proses yang memudahkan proses transaksi jual beli

secara jarak jauh tanpa harus mempertemukan penjual dengan pembeli.

2.1.3. Proses dalam e-Commerce

Menurut Dewi Irmawati (2011), Proses yang ada dalam e-commerce adalah sebagai berikut:

1. Presentasi elektronis (Pembuatan web site) untuk produk dan layanan. 2. Pemesanan secara langsung dan tersedianya tagihan.

3. Otomasi account pelanggan secara aman (baik nomor rekening maupun nomor Kartu Kredit).

4. Pembayaran yang dilakukan secara langsung (online) dan penanganan transaksi.

Dari proses yang umum terjadi pada e-commerce seperti yang telah dijelaskan di atas, maka dapat disimpulkan bahwa e-commerce memerlukan media yang mampu mengakomodasikan kebutuhan masing-masing pihak, misalnya dari sisi pelanggan memerlukan ketersediaan barang dari penjual dan halaman presentasi elektronis untuk memilih produk, sedangkan dari sisi penjual memerlukan media transfer pembayaran agar dapat menerima uang pembayaran dari pelanggan.

(4)

2.1.4. Pertimbangan Bisnis dalam e-commerce

Hal-hal utama yang dibutuhkan sebelum melangkah ke dalam bisnis dengan menggunakan e-commerce adalah sebagai berikut:

1. Penyiapan dan penyimpanan informasi

Penyiapan dan penyimpanan informasi adalah proses digitalisasi semua informasi yang dimiliki. Pembangunan pasar elektronik global memerlukan penanganan masalah untuk mendigitalkan informasi yang telah tersedia seperti

catalog, buku, film, arsip dalam berbagai fasilitas kualitas. Data yang telah

berbentuk digital harus dalam format yang sesuai. Aspek ekonomi yang harus dipertimbangkan adalah biaya digitalisasi. Langkah berikutnya adalah dibutuhkan mekanisme untuk menyimpan informasi tersebut. Sistem penyimpanan

e-commerce harus mampu menyimpan data dalam jumlah besar dengan berbagai

format dan harus lebih efisien dan efektif untuk mengakses data tersebut.

2. Jasa Pencarian Informasi.

Kemampuan pencarian informasi secara online sangat penting untuk membantu para user mengakses data penting seperti informasi mengenai produk, jasa, pelanggan, pemasok dan agen pemerintah. Jasa pencarian informasi yang dimaksud adalah electronic catalogs (e-catalogs) dan information

filters.

a. Electronic Catalogs

Electronic Catalogs mengorganisasikan informasi berbasis content yang

memungkinkan pemakai untuk melakukan browsing serta memilih dokumen yang diinginkan. Metode tersebut, walaupun mudah diimplementasikan, namun dibuat berdasarkan skema organisasi yang kemungkinan tidak sesuai dengan kebutuhan pengguna.

b. Information Filters

Information Filters disediakan untuk pengguna agar dapat mengambil

dokumen yang diinginkan. Filter ini bisa berada di sisi workstation user atau bisa juga di sisi penyedia jasa. Pengambilan informasi dari sisi penyedia jasa akan meningkatkan jalur kepadatan jaringan, tapi akan lebih efisien untuk

(5)

mengambil sebagian data yang diperlukan dari pada harus mengambil seluruh data lalu dipilih lagi. Software agent misalnya robots, wanderers, dan spiders bisa mentransfer dan mengalokasi informasi yang relevan.

3. Electronic Payments.

E-commerce memerlukan metode untuk pembayaran biaya pengiriman

data, biaya produksi dan jasa. Electronic Payments terdiri atas mata uang digital (smart cards dan electronic money), pembayaran melalui kartu kredit, serta electronic checks.

a. Smart Cards.

Smart Cards telah dibangun dan digunakan oleh berbagai tipe bisnis

untuk menyediakan informasi tertentu seperti shopping preferences dan data lainnya. Ada dua tipe smart cards:

1) Relationship-based smart cards yang memungkinkan transaksi keuangan dilakukan tapi masih memerlukan penyesuaian rekening di akhir siklus penagihan

2) Electronic purses and debit cards yang menyimpan sejumlah uang yang bisa digunakan untuk berbagai kebutuhan pelayanan jasa. Setelah setiap transaksi dilakukan, nilai uangnya akan dikurangi dari electronic purse, sehingga tidak perlu lagi penyesuaian rekening.

b. Electronic Money

Electronic Money (sering disebut digital cash atau electronic token)

merupakan metode pembayaran secara elektronik yang mengemulasikan pertukaran barang dan jasa dengan mata uang yang sebanding. E-Money haruslah berupa bank agar terhindar dari resiko kekurangan dana. Metode ini tidak dapat ditukarkan dengan pembayaran bentuk lainnya, harus aman dari pencurian, dan harus bisa diakses dari lokasi yang jauh.

c. Electroinic Checks (E-Checks)

Electroinic Checks (E-Checks) merupakan mekanisme lainnya untuk

pembayaran melalui jaringan komputer. Sistem ini dimaksudkan untuk mengemulasikan sistem pemrosesan pembayaran melalui kertas cek. Metode ini

(6)

membutuhkan server pihak ketiga yang bertindak sebagai penyedia jasa penagihan bagi para user. E-checks memerlukan digital signature dan jasa authentification untuk memproses secara digital informasi antara pembayar, yang dibayar dan bank.

4. Security Services

Sistem untuk e-commerce harus diamankan dari berbagai ancaman baik dari dalam maupun dari luar, pencurian informasi berharga dan usaha sabotase. Sistem ini harus diamankan dengan sistem security yang dirancang khusus seperti authentication of data and entity yang bisa mengakses sistem, pengendalian akses oleh yang tidak berhak, integritas data dan

nonrepudiation.

5. Connectivity

Connectivity adalah kemampuan untuk terhubung dengan berbagai macam

perangkat elektronik saat ini. Pada lingkungan e-commerce saat ini, ada peningkatan jumlah client. User bisa menggunakan televisi, radio, komputer PC,

laptop dan telepon selular untuk mengakses informasi. Sistem e-commerce harus

mampu menyesuaikan diri dengan berbagai aplikasi yang berbeda-beda.

6. Kebijakan Dan Ketentuan Hukum

Ketentuan hukum dalam dunia e-commerce berhubungan dengan hukum di dunia maya. Ketentuan hukum pada e-commerce yang beraneka ragam seperti intellectual property, perpajakan, penegakkan hukum, dan lain sebagainya sampai saat ini masih belum jelas pada dunia industri e-commerce saat ini.

Semua pertimbangan yang telah disebutkan diatas sangat mempengaruhi bagaimana struktur dari sistem e-commerce itu dibuat, fitur-fitur yang akan tersedia di dalam sistem e-commerce, tingkat kompatibilitas sistem web dengan

(7)

semua perangkat elektronik yang tersedia, dan Terms of Service (TOS) dari sistem

e-commerce tersebut

2.2. Sistem Keamanan E-commerce

Sistem keamanan e-commerce adalah sebuah sistem yang bertanggung jawab dengan seluruh aspek keamanan dalam sistem e-commerce. Sistem keamanan e-commerce harus mampu menjaga keamanan dan kenyaman pengguna dalam melakukan transaksi pada sistem e-commerce tersebut di segala lini transaksi namun tetap memberikan kemudahan bertransaksi menggunakan sistem

e-commerce tersebut, sehingga pengguna dapat menggunakan sistem e-commerce

tersebut tanpa harus khawatir bahkan mengalami pencurian data atau pengubahan data tanpa sepengetahuan pengguna.

2.2.1. Aspek-aspek keamanan

Kriptografi tidak hanya memberikan kerahasiaan dalam telekomunikasi, namun juga melibatkan sejumlah aspek, yaitu:

1. Authentication, yaitu penerima pesan dapat memastikan keaslian pengirimnya. Penyerang tidak dapat berpura-pura sebagai orang lain.

2. Integrity, yaitu penerima harus dapat memeriksa apakah pesan telah dimodifikasi di tengah jalan atau tidak. Seorang penyusup seharusnya tidak dapat melakukan perubahan ke dalam pesan selama data berada di perjalanan. 3. Nonrepudiation, yaitu pengirim tidak dapat mengelak bahwa dialah pengirim

pesan yang sesungguhnya. Tanpa kriptografi, seseorang dapat mengelak bahwa dialah yang mengirim email yang sesungguhnya.

4. Authority, yaitu informasi yang berada pada sistem jaringan hanya dapat dimodifikasi oleh pihak yang berwenang.

Aspek-aspek keamanan ini harus diterapkan secara keseluruhan untuk menjaga keamanan dan kerahasiaan data transaksi antara pihak penjual dan pihak pedagang, serta untuk meminimalisasi kerugian yang bersifat waktu, finansial dan kerahasiaan data akibat keterlibatan pihak ketiga yang tidak diinginkan.

(8)

2.2.2. Macam-macam ancaman

Macam-macam ancaman yang terjadi dalam sistem e-commerce adalah: 1. System Penetration, yaitu orang-orang yang tidak berhak telah mendapatkan

akses ke sistem komputer dan diperbolehkan melakukan segalanya.

2. Authorization Violation, yaitu ancaman berupa pelanggaran atau penyalahgunaan wewenang legal yang dimiliki oleh seseorang yang berhak. 3. Planting, yaitu ancaman yang terencana misalnya Trojan Horse yang masuk

secara diam-diam yang akan melakukan penyerangan pada waktu yang telah ditentukan.

4. Communications Monitoring, yaitu penyerangan dengan cara melakukan monitoring semua informasi rahasia.

5. Communications Tampering, yaitu pengubahan informasi transaksi di tengah jalan oleh penyerang di dalam sebuah jaringan komunikasi dan dapat mengganti sistem server dengan sistem server yang palsu.

6. Denial of Service (DoS), yaitu penolakan layanan terhadap client yang berhak. 7. Repudiation, yaitu penolakan terhadap sebuah aktivitas transaksi atau sebuah

komunikasi yang terjadi dikarenakan sesuatu yang bersifat sengaja, kecelakaan ataupun kesalahan teknis lainnya.

Ancaman-ancaman tersebut sangat sering terjadi di dalam sistem

e-commerce karena letak server dengan letak client yang berjauhan dan harus

dihubungkan dengan fasilitas Internet. Letak server dan client yang berjauhan dan harus dihubungkan dengan fasilitas Internet menyebabkan para penyerang dapat melakukan berbagai macam serangan terhadap sistem e-commerce dengan cara melakukan penyerangan terhadap lalu lintas Internet yang digunakan oleh server dan client.

2.2.3. Solusi keamanan di Internet

Solusi keamanan di Internet yang telah umum digunakan adalah: 1. Enkripsi

Enkripsi adalah proses untuk menyandikan data di dalam lalu lintas

(9)

mengetahui kata sandi untuk melakukan dekripsi (menyandikan ulang) data tersebut. Contoh teknologi enkripsi adalah enkripsi simetrik (DES, Triple DES,

AES) dan enkripsi asimetrik (RSA, PGP).

2. Otentikasi

Otentikasi adalah proses yang berfungsi untuk memastikan bahwa data yang dikirimkan adalah asli dari pengirim dan benar-benar diterima oleh penerima yang bersangkutan. Contoh teknologi otentikasi adalah tanda tangan digital (digital signature) dan CAPTCHA (Completely Automated Public Turing test to

tell Computers and Humans Apart).

3. Firewall

Firewall adalah sistem yang berfungsi untuk menyaring dan melindungi

lalu lintas data di dalam jaringan atau server atau client, baik inbound traffic maupun outbound traffic. Contoh teknologi firewall adalah VPN (Virtual Private

Networking).

Solusi keamanan untuk Internet ini telah umum digunakan oleh para penyedia layanan berbasis sistem web.

2.2.4. Teknik Untuk Mengamankan Transaksi Elektronik

Teknik untuk mengamankan transaksi elektronik yang telah umum dilakukan dan telah menjadi standar keamanan di Internet adalah:

1. S-HTTP

HTTP berfungsi untuk melindungi proses transaksi data pada web.

S-HTTP secara spesifik dirancang untuk mendukung protokol S-HTTP (Hypertext

Transfer Protokol) dalam hal otorisasi dan keamanan dokumen. S-HTTP

(10)

2. Secure Socket Layer (SSL)

Menurut T. Dierks dan E Rescorla. (2008), Secure Socket Layer (SSL) berfungsi untuk melindungi paket data pada lapisan jaringan (Network Layer).

SSL melindungi saluran komunikasi di antara 2 protokol bagian bawah dalam

tumpukan protokol menurut standar TCP/IP. SSL dapat juga digunakan untuk transaksi-transaksi selain yang berjalan di web. SSL diaplikasikan pada browser,

web server, dan aplikasi Internet.

3. Secure MIME (S/MIME)

Secure MIME (S/MIME) berfungsi untuk melindungi lampiran email yang

melintasi berbagai platform yang berbeda. S/MIME merupakan standar baru untuk keamanan e-mail yang menggunakan algoritma-algoritma kriptografi yang telah memiliki hak `paten dan dilisensi oleh RSA Data Security Inc. S/MIME bergantung pada berbagai jenis otoritas sertifikat, apakah bersifat global atau perusahaan, untuk memastikan otentikasi. S/MIME diaplikasikan pada email dengan enkripsi RCA dan tanda tangan digital.

4. Secure Wide-Area Network (S/WAN)

Secure Wide-Area Network (S/WAN) berfungsi untuk meng-enkripsi lalu

lintas antara firewall dan router. S/WAN diaplikasikan pada VPN-Virtual Private

Network.

5. Secure Electronic Transaction (SET)

Secure Electronic Transaction (SET) berfungsi untuk mengamankan

proses transaksi kartu kredit sehingga dapat menciptakan transaksi kartu kredit yang aman. SET diaplikasikan pada SmartCard, server transaksi, dan e-commerce.

6. Pretty Good Privacy (PGP)

Pretty Good Privacy (PGP) merupakan suatu aplikasi populer yang

dikembangkan untuk pengiriman pesan dan berkas (file). PGP merupakan aplikasi keamanan yang paling banyak digunakan untuk e-mail, serta menggunakan

(11)

berbagai standar enkripsi. Aplikasi-aplikasi enkripsi/deskripsi PGP tersedia bagi hampir semua sistem operasi dan pesan dapat dienkripsi.

7. Firewall

Firewall berfungsi untuk melindungi serangan pada protokol individual

atau aplikasi, melindungi sistem komputer dari Spoofing (program-program merusak yang menyamar sebagai aplikasi yang bermanfaat), dan menyediakan titik tunggal kendali keamanan bagi jaringan (Hal ini dikarenakan Firewall dijadikan titik pusat perhatian Hacker untuk membobol jaringan). Firewall tidak memeriksa adanya virus pada berkas yang masuk, sehingga tidak dapat menjamin integritas data. Firewall tidak melakukan otentikasi sumber data. Beberapa karakteristik firewall adalah:

a. Penyaringan paket

b. Penerjemah alamat jaringan (Network Address Translation) c. Proxy tingkat aplikasi (application-level proxies)

d. pemeriksaan keadaan (stateful inspection) e. VPN (Virtual Private Network)

f. Real-time monitoring

Menurut kategorinya, firewall dibedakan menjadi dua kategori, yaitu: a. Statis, yaitu pengaturan firewall yang dapat digunakan denagan salah satu dari

dua opsi sebagai berikut:

1) Mengizinkan semua lalu lintas data yang masuk kecuali secara eksplisit dihalangi oleh administrator dari firewall

2) Menghalangi semua lalu lintas data yang masuk kecuali secara eksplisit diizinkan oleh administrator dari firewall

b. Dinamis, yaitu pengaturan firewall yang men-setting layanan yang bisa keluar atau masuk telah ditetapkan untuk periode waktu tertentu, namun membutuhkan sumber daya manusia yang lebih banyak

(12)

Certificate Authority adalah sebuah badan usaha yang mengeluarkan digital certificate. Digital certificate ini mengesahkan kepemilikan dari public key

dengan nama yang terkandung pada certificate. Certificate Authority memungkinkan pemilik certificate untuk menggunakan digital signature yang dibuat dari private key yang sesuai dengan public key yang telah disertifikasi.

Certificate Authority adalah pihak ketiga yang terpercaya oleh pihak pemilik

sertifikat dan pihak yang memanfaatkan sertifikat. Para penyedia sertifikat CA secara komersial yang mengeluarkan sebagian besar certificate yang dipercaya oleh client untuk server email dan server HTTPS publik biasanya menggunakan teknik yang disebut "validasi domain" untuk mengotentikasi penerima certificate. Validasi domain melibatkan pengiriman email yang berisi token otentikasi atau link, ke alamat email yang diketahui secara administratif bertanggung jawab untuk

domain. Alamat ini bisa menjadi alamat email kontak teknis yang tercantum

dalam entri domain WHOIS, atau email administrasi seperti postmaster@ atau root@ pada domain. Teori di balik validasi domain adalah bahwa hanya pemilik domain yang sah akan dapat membaca email yang dikirim ke alamat administrasi

tersebut.

CA mengeluarkan digital certificate yang berisi public key dan identitas

pemilik. Proses pencocokan private key tidak tersedia untuk umum, dan dirahasiakan oleh pengguna akhir yang telah menghasilkan key pair (pasangan kunci). Certificate merupakan konfirmasi atau validasi oleh CA bahwa public key yang terkandung dalam sertifikat milik orang, organisasi, server, atau badan lain yang dicatat dalam sertifikat. Kewajiban CA dalam skema tersebut adalah untuk memverifikasi identitas pemohon, sehingga pengguna dan pihak yang menggunakannya dapat mempercayai informasi dalam certificate dari CA. CA menggunakan berbagai standar dan tes untuk melakukannya. Certificate Authority bertanggung jawab untuk menyatakan bahwa seorang pengguna tersebut adalah seorang pengguna yang berhak atau tidak.

(13)

9. One-Time-Password

One-Time-Password (OTP) adalah password yang hanya berlaku untuk

satu sesi login atau transaksi. OTP memperbaiki kelemahan dari password tradisional (statis). OTP kebal terhadap Replay Attack, sehingga penyusup potensial yang berhasil merekam OTP yang sudah digunakan untuk login ke dalam layanan atau untuk melakukan transaksi tidak dapat menyalahgunakannya, karena tidak berlaku lagi. Sisi negatif dari OTP adalah sulit untuk dihafal oleh manusia.

Berbagai cara untuk meng-generate One-Time-Password adalah sebagai berikut:

a. Berdasarkan time-synchronization antara server otentikasi dan klien yang diberikan password (OTP hanya berlaku untuk waktu yang singkat)

b. Menggunakan algoritma matematika untuk membuat password baru berdasarkan password sebelumnya (OTP secara efektif berantai dan harus digunakan dalam urutan yang telah ditetapkan).

c. Menggunakan algoritma matematika dimana password baru ini didasarkan pada tantangan (misalnya, nomor acak yang dipilih oleh server otentikasi atau rincian transaksi).

Setelah di-generate, OTP diberikan kepada end-user dengan beberapa cara sebagai berikut:

a. SMS

SMS adalah teknologi umum yang digunakan untuk pengiriman OTP ke

pelanggan. Pengiriman OTP melalui SMS dienkripsi menggunakan standar A5/x, algoritma standar yang berhasil didekripsi oleh hacker dalam hitungan menit atau detik.

b. Ponsel

Ponsel mendukung sejumlah token dalam satu instalasi aplikasi, memungkinkan pengguna untuk mengotentikasi ke beberapa sumber daya dari satu perangkat. Solusi ini juga menyediakan aplikasi model khusus untuk ponsel pengguna. Kelemahan dari solusi ini adalah ponsel yang digunakan sebagai token bisa hilang, rusak, atau bahkan dicuri.

(14)

c. Propietary Token

EMV (Europay, MasterCard and Visa) mulai menggunakan algoritma challenge-response (disebut "Program Otentikasi Chip") untuk kartu kredit di

Eropa. RSA Security's SecurID adalah salah satu contoh dari jenis token time

synchronization dalam kontrol akses untuk jaringan komputer. Kelemahan pada

token ini adalah token dapat hilang, rusak, atau dicuri, seperti halnya semua token yang lainnya. Kelemahan lainnya adalah kehabisan baterai, terutama untuk token tanpa fasilitas pengisian atau baterai yang tidak dapat diganti.

d. Metode berbasis web

Provider Authentication-as-a-service menawarkan berbagai metode berbasis web untuk memberikan one-time-password tanpa memerlukan token. Salah satu metode tersebut bergantung pada kemampuan pengguna untuk mengenali kategori yang telah ditentukan dari kotak gambar secara acak. Proses pendaftaran pengguna dalam situs web yang memberikan one-time-password adalah pengguna memilih beberapa kategori rahasia dari suatu hal, seperti anjing, mobil, kapal dan bunga. Setiap kali pengguna log-in situs web, pengguna disajikan dengan grid yang dibangkitkan secara acak dari karakter

picalphanumeric yang muncul di layar. Pengguna mencari gambar yang sesuai

dengan kategori yang ditentukan dan memasuki karakter alfanumerik yang terkait untuk membentuk one-time-password.

e. Kertas

Bank mengirimkan pengguna sebuah daftar bernomor pada OTP yang dicetak di atas kertas dalam proses online banking di beberapa negara. Setiap transaksi online, pengguna diminta untuk memasukkan OTP tertentu dari daftar di kertas tersebut. OTP tersebut biasanya disebut TAN (Transaction Authentication

Numbers) di beberapa negara seperti Jerman, Austria, dan Brasil. Saat ini

beberapa bank telah mengirimkan TAN tersebut ke ponsel pengguna melalui SMS sehingga TAN model ini disebut mTAN (Mobile TAN).

f. SET

Secure Electronic Transaction (SET) adalah standar protokol komunikasi

(15)

khususnya melalui Internet. SET dikembangkan oleh SETco, dipimpin oleh VISA dan MasterCard (dengan keterlibatan perusahaan lain seperti GTE, IBM,

Microsoft, Netscape, RSA, Safelayer, VeriSign, dan VeriFone) mulai tahun 1996. SET berdasarkan pada sertifikat X.509 dengan beberapa ekstensi. Versi pertama

selesai Mei 1997 dan uji coba diumumkan pada Juli 1998. SET sendiri bukan merupakan sistem pembayaran, tetapi berupa satu set protokol keamanan dan format yang memungkinkan pengguna untuk menggunakan infrastruktur pembayaran kartu kredit yang ada pada jaringan terbuka dalam mode aman. Protokol ini gagal untuk mendapatkan daya tarik di pasar.

2.2.5. Komparasi Protokol E-Commerce

Tabel berikut ini adalah komparasi tingkat keamanan dari beberapa protokol keamanan yang telah umum digunakan.

Tabel 2. 1. Komparasi Protokol E-Commerce Protokol

E-Commerce Kerahasiaan Non-Repudiation

Integritas Serangan dari Replay Attack Serangan dari Man-in-the-middle Attack SSL Yes No Yes No No PGP Yes No Yes No No

SET Yes No Yes No No

Sumber: http://cscjournals.org/csc/manuscript/Journals/IJCSS/volume5/Issue1/IJCSS-429.pdf

Tabel diatas memperlihatkan komparasi fitur keamanan dari protokol SSL,

PGP, dan SET dalam segi kerahasiaan, Non-Repudiation, Integritas, Serangan dari Replay Attack, dan Serangan dari Man-in-the-middle Attack. Tabel di atas

menjelaskan bahwa ketiga protokol di atas memiliki karakteristik yang sama, yaitu sama-sama bisa menjaga kerahasiaan dan integritas dari semua data yang terkirim melalui protokol tersebut, namun ketiga protokol diatas sama-sama tidak bisa memenuhi aspek non-repudiation, melindungi pengguna dari serangan replay

attack, dan serangan dari man-in-the-middle attack. Tingkat keamanan dari ketiga

(16)

yang berjalan melalui Internet juga membutuhkan fitur keamanan

non-repudiation, serangan dari replay attack, dan serangan dari man-in-the-middle attack.

2.2.6. Kekurangan dari sistem E-commerce Secara Umum

Beberapa kekurangan dari sistem e-commerce secara umum adalah:

1. Sistem e-commerce secara umum tidak memiliki sistem otentikasi pengesahan dari pelanggan

2. Sistem e-commerce secara umum tidak memiliki enkripsi dari sistem pengamanan saat ini sehingga memungkinkan data bisa disadap dari pihak luar (serangan man-in-the-middle attack) jika hanya mengandalkan keamanan enkripsi asimetris dari SSL yang merupakan server pihak ketiga.

3. Sistem enkripsi e-commerce secara umum hanya mengandalkan enkripsi atau pengamanan dari sisi server saja dan tidak dari sisi client sehingga sulit untuk mengamankan sistem keamanan

2.2.7. Solusi dari Kekurangan Sistem E-Commerce secara umum

Solusi dari beberapa masalah yang telah ditemukan oleh sistem

e-commerce saat ini adalah:

1. Menggunakan sistem otentikasi sederhana berbasis hashing yang ditanamkan ke dalam sistem e-commerce untuk melakukan otentikasi pengesahan dari pelanggan

2. Menggunakan sistem enkripsi simetris RC6 yang diperkuat dengan sistem enkripsi RSA dan sistem encoding dari Base64

3. Menggunakan sistem enkripsi simetris RC6 hanya untuk mengamankan isi data transaksi sedangkan untuk kunci enkripsi RC6-nya diamankan dengan menggunakan RSA baik dari sisi server maupun dari sisi client

2.3. Algoritma Sistem Keamanan yang Dipakai pada Sistem

Pembahasan pada subbab ini menjelaskan ulasan tentang sistem keamanan yang akan digunakan pada sistem e-commerce ini. Sistem keamanan yang

(17)

digunakan untuk mengamankan sistem e-commerce ini adalah sistem enkripsi simetris dari RC6, sistem enkripsi asimetris dari RSA, serta sistem encode dan

decode dari Base64.

2.3.1. Algoritma RC6

Pembahasan pada subbab ini menjelaskan deskripsi dari algoritma enkripsi

RC6, yaitu pengertian algoritma RC6, sistem enkripsi dan dekripsi RC6, dan

sistem pembangkitan kunci untuk enkripsi RC6.

2.3.1.1. Pengertian algoritma RC6

Algoritma RC6 merupakan salah satu kandidat Advanced Encryption

Standard (AES) yang diajukan oleh RSA Laboratories kepada NIST. Dirancang

oleh Ronald L Rivest, M.J.B. Robshaw, R. Sidney dan Y.L. Yin, algoritma ini merupakan pengembangan dari algoritma sebelumnya yaitu RC5 (Ronald L. Rivest, 1998).

Menurut Ronald L. Rivest (1998), Algoritma RC6 adalah versi yang dilengkapi dengan beberapa parameter, sehingga dituliskan sebagai RC6-w/r/b, dimana parameter w merupakan ukuran kata dalam satuan bit, r adalah bilangan

bulat bukan negatif yang menunjukkan banyaknya iterasi selam proses enkripsi, dan b menunjukkan ukuran kunci enkripsi dalam byte. Ketika algoritma ini masuk

sebagai kandidat AES, maka ditetapkan nilai parameter w = 32, r = 20 dan b bervariasi antara 16, 24, dan 32 byte. RC6-w/r/b memecah blok 128 bit menjadi 4 buah blok 32 bit, dan mengikuti enam aturan operasi dasar sebagai berikut.

1. A + B: Operasi penjumlahan bilangan

2. A – B: Operasi pengurangan bilangan integer. 4. A

+ B: Operasi exclusive-OR (XOR)

5. A x B: Operasi perkalian bilangan integer.

6. A<<<B: A dirotasikan ke kiri sebanyak variabel kedua (B) 7. A>>>B: A dirotasikan ke kanan sebanyak variabel kedua (B)

(18)

2.3.1.2. Enkripsi algoritma RC6

Algoritma ini bekerja dengan 4 buah register 32-bit A, B, C, D, karena RC6 memecah blok 128 bit menjadi 4 buah blok 32 bit. Byte yang pertama dari plaintext atau ciphertext ditempatkan pada byte A, sedangkan byte yang

terakhirnya ditempatkan pada byte D, sehingga akan didapatkan (A, B, C, D) = (B, C, D, A) yang berarti nilai yang terletak pada sisi kanan berasal dari register di sisi

kiri. Berikut ini adalah algoritma enkripsi RC6:

B = B + S[ 0 ] D = D + S[ 1 ] for i = 1 to 20 do { t = ( B x ( 2B + 1 ) ) <<< 5 u = ( D x ( 2D + 1 ) ) <<< 5 A = ( ( A

+ t ) <<< u ) + S[ 2i ] C = ( ( C

+ u ) <<< t ) + S[ 2i + 1 ] (A, B, C, D) = (B, C, D, A) } A = A + S[ 42 ] C = C + S[ 43 ]

Kode Program 2. 1. Algoritma Enkripsi RC6

Algoritma RC6 menggunakan 44 buah sub kunci yang dibangkitkan dari kunci dan dinamakan dengan S[0] hingga S[43], dan setiap sub kunci

panjangnya 32 bit. Kunci didapat dari password yang dimasukkan oleh pengguna, setiap 4 karakter pada password dimasukkan ke dalam satu buah blok 128-bit. Proses enkripsi pada algoritma RC6 dimulai dan diakhiri dengan proses whitening yang bertujuan untuk menyamarkan iterasi yang pertama dan yang terakhir dari proses enkripsi dan dekripsi. Proses whitening awal menjumlahkan nilai B dengan S[0], dan nilai D dijumlahkan dengan S[1]. Setiap iterasi pada RC6

menggunakan 2 buah sub kunci. Sub kunci pada iterasi yang pertama menggunakan S[2] dan S[3], sedangkan iterasi-iterasi berikutnya menggunakan

(19)

whitening akhir dimana nilai A dijumlahkan dengan S[42], dan nilai C

dijumlahkan dengan S[43].

Setiap iterasi pada algoritma RC6 mengikuti aturan sebagai berikut, nilai

B dimasukkan ke dalam fungsi f, yang didefinisikan sebagai f(x) =x(2x+1),

kemudian diputar ke kiri sejauh lg-w atau 5 bit. Hasil yang didapat pada proses

ini dimisalkan sebagai u. Nilai u kemudian di XOR dengan C dan hasilnya

menjadi nilai C. Nilai t digunakan sebagai acuan bagi C untuk memutar nilainya

ke kiri, dan nilai u juga digunakan sebagai acuan bagi nilai A untuk melakukan

proses pemutaran ke kiri. Sub kunci S[2i] pada iterasi dijumlahkan dengan A, dan

sub kunci S[2i+1] dijumlahkan dengan C. Keempat bagian dari blok kemudian

akan dipertukarkan dengan mengikuti aturan, nilai A ditempatkan pada D, nilai B

ditempatkan pada A, nilai C ditempatkan pada B, dan nilai (asli) D ditempatkan

pada C (A, B, C, D ditukar menjadi B, C, D, A). Iterasi ini akan terus berlangsung

hingga 20 kali.

2.3.1.3. Dekripsi algoritma RC6

Proses dekripsi ciphertext pada algoritma RC6 merupakan kebalikan dari proses enkripsi. Proses whitening pada dekripsi adalah kebalikan dari proses enkripsi yaitu menggunakan operasi pengurangan. Sub kunci yang digunakan pada proses whitening setelah iterasi terakhir diterapkan sebelum iterasi pertama dan sub kunci yang diterapkan pada proses whitening sebelum iterasi pertama digunakan pada whitening setelah iterasi terakhir. Proses dekripsi menerapkan kebalikan dari algoritma enkripsi secara keseluruhan. Setiap iterasi menggunakan sub kunci yang sama dengan yang digunakan pada saat enkripsi, namun urutan penggunaan sub kunci dibalik. Berikut ini adalah algoritma dekripsi RC6:

C = C - S[ 43 ] A = A - S[ 42 ] for i = 20 downto 1 do { (A, B, C, D) = (D, A, B, C) u = ( D x ( 2D + 1 ) ) <<< 5 t = ( B x ( 2B + 1 ) ) <<< 5

(20)

C = ( ( C - S[ 2i + 1 ] ) >>> t )

+ u A = ( ( A - S[ 2i ] ) >>> u )

+ t } D = D - S[ 1 ] B = B - S[ 0 ]

Kode Program 2. 2. Algoritma Dekripsi RC6

Algoritma dekripsi RC6 menggunakan 44 buah sub kunci yang dibangkitkan dari kunci dan dinamakan dengan S[0] hingga S[43], dan setiap

sub kunci panjangnya 32 bit. Kunci didapat dari password yang dimasukkan oleh pengguna, setiap 4 karakter pada password dimasukkan ke dalam satu buah blok 128-bit. Proses dekripsi dimulai dan diakhiri dengan kebalikan dari proses whitening yang telah dilakukan dari proses enkripsi sebelumnya. Proses tersebut mengurangi nilai C dengan S[43], dan nilai A dijumlahkan dengan S[42].

Keempat bagian dari blok ini ditukarkan terlebih dahulu sebelum menjalankan iterasi dengan aturan nilai A ditempatkan pada B, nilai B ditempatkan pada C, nilai C ditempatkan pada D, dan nilai (asli) D ditempatkan pada A (A, B, C, D ditukar

menjadi D, A, B, C). Setiap iterasi pada RC6 menggunakan 2 buah sub kunci. Sub

kunci pada iterasi yang pertama menggunakan S[40] dan S[41], sedangkan

iterasi-iterasi berikutnya menggunakan sub-sub kunci lanjutannya. Setelah iterasi ke-20 selesai, dilakukan kebalikan dari proses whitening yang terakhir dimana nilai D dikurangi dengan S[1], dan nilai B dijumlahkan dengan S[0]. Setiap iterasi

pada dekripsi algoritma RC6 mengikuti aturan sebagai berikut, nilai D dimasukkan

ke dalam fungsi f, yang didefinisikan sebagai f(x) =x(2x+1), kemudian diputar

ke kiri sejauh lg-w atau 5 bit. Hasil yang didapat pada proses ini dimasukkan

sebagai u. Nilai u kemudian di XOR dengan C dan hasilnya menjadi nilai C. Nilai t digunakan sebagai acuan bagi C untuk memutar nilainya ke kanan, dan nilai u

juga digunakan sebagai acuan bagi nilai A untuk melakukan proses pemutaran ke

kanan. Sub kunci S[2i] pada iterasi dikurangi dengan A, dan sub kunci S[2i+1]

(21)

2.3.1.4. Pembangkitan kunci

Algoritma untuk membangkitkan kunci enkripsi pada RC6 dijelaskan pada pseudocode di bawah ini.

S[ 0 ] = 0xB7E15163

for i = 1 to 43 do S[i] = S[i-1] + 0x9E3779B9 A = B = i = j = 0 for k = 1 to 132 do { A = S[ i ] = ( S[ i ] + A + B ) <<< 3 B = L[ j ] = ( L[ j ] + A + B ) <<< ( A + B ) i = ( i + 1 ) mod 44 j = ( j + 1 ) mod c

Kode Program 2. 3. Pembangkitan kunci pada RC6

Pengguna memasukkan sebuah kunci yang besarnya b byte, dengan

ketentuan 0 ≤ b ≤ 255. Byte kunci ini kemudian ditempatkan dalam array c

w-bit words L[0]…L[c-1]. Byte pertama kunci akan ditempatkan sebagai pada L[0], byte kedua pada L[1], hingga byte terakhir diletakkan pada L[c-1]. (Catatan, bila b=0 maka c=1 dan L[0]=0). Masing-masing nilai word w-bit akan dibangkitkan

pada penambahan kunci round 2r+4 dan akan ditempatkan pada array S[0,…,2r+3].

Konstanta P32 = B7E15163 dan Q32 = 9E3779B9 (dalam satuan

heksadesimal) adalah “konstanta ajaib” yang digunakan dalam penjadwalan kunci pada RC6. Nilai P32 diperoleh dari perluasan bilangan biner e-2, dengan e adalah

sebuah fungsi logaritma. Nilai Q32 diperoleh dari perluasan bilangan biner Ø – 1,

dengan Ø adalah "golden ratio" (rasio emas).

2.3.2. Algoritma base64

Pembahasan pada subbab ini menjelaskan deskripsi dari algoritma

encoding Base64, yaitu pengertian algoritma Base64, susunan alphabet dari Base64, dan cara kerja pada algoritma encoding base64

(22)

2.3.2.1. Pengertian algoritma base64

Base64 adalah sekelompok pengkodean skema yang sama yang

merepresentasikan data biner dalam format string ASCII dengan cara menerjemahkannya menjadi representasi radix-64. Istilah Base64 ini berasal dari spesifik MIME encoding transfer konten

Skema encoding dari Base64 digunakan untuk encoding data biner yang perlu disimpan dan ditransmisikan melalui media yang dirancang untuk menangani data tekstual. Sistem ini berguna untuk memastikan bahwa data tetap utuh tanpa mengalami perubahan selama transmisi data. Base64 umumnya digunakan di sejumlah aplikasi termasuk email melalui MIME, dan penyimpanan data yang kompleks dalam XML.

2.3.2.2. Susunan alfabet encoding base64

Susunan alfabet pada Base64 ada dua macam, yaitu susunan alfabet pada

encoding Base64 biasa yang umum digunakan untuk transmisi data pada web dan

aplikasi lainnya dan susunan alfabet pada encoding Base64 URL and filename

safe yang dikhususkan untuk encoding pada nama file dan alamat URL pada web.

1. Susunan alfabet encoding Base64 biasa

Base 64 Encoding dirancang untuk merepresentasikan urutan acak pada

oktet dalam bentuk yang memungkinkan penggunaan huruf besar dan huruf kecil tapi tidak harus dapat dibaca oleh manusia (Josefsson, 2006).

Base64 menggunakan subset 65-karakter pada US-ASCII, yang dapat

(23)

Tabel 2. 2. Tabel susunan alfabet pada Base64

Nilai Encoding Nilai Encoding Nilai Encoding Nilai Encoding 0 A 17 R 34 i 51 Z 1 B 18 S 35 j 52 0 2 C 19 T 36 k 53 1 3 D 20 U 37 l 54 2 4 E 21 V 38 m 55 3 5 F 22 W 39 n 56 4 6 G 23 X 40 o 57 5 7 H 24 Y 41 p 58 6 8 I 25 Z 42 q 59 7 9 J 26 a 43 r 60 8 10 K 27 b 44 s 61 9 11 L 28 c 45 t 62 + 12 M 29 d 46 u 63 / 13 N 30 e 47 v 14 O 31 f 48 w (pad) = 15 P 32 g 49 x 16 Q 33 h 50 y

Tabel di atas merepresentasikan susunan alfabet Base64 yang menggunakan subset 65-karakter pada US-ASCII, merepresentasikan karakter

printable sebesar 6-bit. (Tambahan pada karakter ke-65, "=", digunakan untuk

menandakan fungsi pengolahan khusus). Proses encoding merepresentasikan kelompok karakter sebesar 24-bit pada input bit sebagai output string dari 4 karakter yang dikodekan. Diproses dari kiri ke kanan, sebuah 24-bit input group dibentuk dengan menggabungkan 3 kelompok 8-bit input. 24-bit tersebut kemudian diperlakukan sebagai 4 kelompok 6-bit yang digabungkan, masing-masing diterjemahkan menjadi karakter tunggal dalam format alphabet dengan basis 64. Setiap kelompok 6-bit digunakan sebagai nilai indeks ke dalam array dari 64 karakter printable. Karakter yang direferensikan oleh indeks ditempatkan di string output.

Karakter pengolahan khusus (padding) ditambahkan jika jumlah nilai biner kurang dari 24-bit (jumlah karakter input yang sebesar 8-bit kurang dari 3). Bila terdapat kurang dari 24-bit input yang tersedia dalam input group, bit dengan nilai nol ditambahkan di kanan untuk membentuk jumlah integral kelompok 6-bit.

(24)

ini adalah kasus yang dapat timbul karena semua karakter input berbasis 64 merupakan integral terhadap oktet:

a. Kuantum akhir pada input dari encoding adalah perkalian integral dari 24-bit, unit akhir pada encoded output akan menjadi perkalian integral dari 4 karakter tanpa padding "=".

b. Kuantum akhir input dari encoding adalah tepat 8-bit, unit terakhir dari output

encoding akan menjadi dua karakter yang diikuti dengan dua karakter padding

"=".

c. Kuantum akhir input dari encoding adalah tepat 16-bit, unit akhir pada

encoded output akan menjadi tiga karakter diikuti dengan satu karakter padding "=".

2. Susunan alfabet encoding Base64 "URL and Filename safe"

Alfabet alternatif yang telah disarankan untuk menggunakan "~" sebagai

Karakter yang ke-63. Karakter "~" memiliki arti khusus dalam beberapa

lingkungan file system, sehingga karakter "~" tidak bisa dipakai untuk pengganti

karakter ke-63. Karakter yang tersisa pada URI yang tidak terpakai adalah ".",

tapi beberapa lingkungan file system tidak mengizinkan beberapa karakter "." di

dalam nama file yang mengakibatkan karakter "." juga tidak bisa dipakai.

Karakter pad "=" biasanya di-encoded dalam bentuk percent-encoded ketika

digunakan dalam URI, tetapi jika panjang data diketahui secara implisit, kebutuhan percent-encoded ini bisa dihindari dengan cara melewati padding.

Encoding ini dapat disebut sebagai Base64 "URL and Filename safe".

Pengkodean ini berbeda dengan pengkodean Base64 yang sebelumnya karena ada perbedaan pada karakter alfabet ke-62 dan ke-63. Algoritma yang digunakan untuk encoding Base64url sama dengan Algoritma encoding untuk Base64.

(25)

Tabel 2. 3. Tabel susunan alfabet Base64 "URL and Filename Safe"

Nilai Encoding Nilai Encoding Nilai Encoding Nilai Encoding 0 A 17 R 34 i 51 z 1 B 18 S 35 j 52 0 2 C 19 T 36 k 53 1 3 D 20 U 37 l 54 2 4 E 21 V 38 m 55 3 5 F 22 W 39 n 56 4 6 G 23 X 40 o 57 5 7 H 24 Y 41 p 58 6 8 I 25 Z 42 q 59 7 9 J 26 a 43 r 60 8 10 K 27 b 44 s 61 9 11 L 28 c 45 t 62 - 12 M 29 d 46 u 63 _ 13 N 30 e 47 v 14 O 31 F 48 w (pad) = 15 P 32 G 49 x 16 Q 33 H 50 y

Tabel diatas menunjukkan bahwa susunan alfabet pada Base64Url sama dengan Base64 biasa kecuali pada karakter ke-62 dan ke-63 yang menggunakan karakter "-" dan karakter "_" sebagai pengganti karakter "+" dan "/"

2.3.2.3. Cara kerja algoritma base64

Untuk mentranslasikan antara binary dan base encoding, input disimpan di dalam structure, dan output di-ekstrak. Proses untuk encoding Base64 adalah sebagai berikut.

Tabel 2. 4. Struktur Base64

Oktet pertama Oktet kedua Oktet ketiga 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 5 4 3 2 1 0 5 4 3 2 1 0 5 4 3 2 1 0 5 4 3 2 1 0

1.index 2.index 3.index 4.index

Tabel di atas menjelaskan proses encoding dari karakter byte menjadi karakter Base64. Byte input dikonversi ke dalam bentuk biner dan dimasukkan ke

(26)

dalam structure sebanyak tiga buah, kemudian deretan angka biner hasil konversi tersebut disusun beriringan sehingga berjumlah 24 angka biner. Angka biner yang telah disusun tersebut diambil setiap enam buah dan dikonversi menjadi angka desimal yang digunakan sebagai nilai indeks untuk mengambil karakter encoding

Base64. Setiap proses encoding dari tiga karakter byte yang dilakukan pada Base64 selalu menghasilkan empat karakter encoding Base64.

Tabel di bawah ini adalah contoh proses encoding dari karakter byte menjadi karakter Base64.

Tabel 2. 5. Konversi String ke Base64 Input (Char) (DC4) û œ (ETX) Ù ~ Hex (Char) 1 4 f b 9 c 0 3 d 9 7 e 8-bit 0 0 0 1 0 1 0 0 1 1 1 1 1 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 0 1 0 1 1 1 1 1 1 0 6-bit 0 0 0 1 0 1 0 0 1 1 1 1 1 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 0 1 0 1 1 1 1 1 1 0 Dec 5 1 5 4 6 2 8 0 6 1 3 7 6 2 Output (Base64) F P u c A 9 l +

Tabel di atas menjelaskan proses konversi karakter byte menjadi karakter encoding pada Base64. Pada karakter input yang pertama, terdapat karakter

non-printable yaitu DC4 (Device Control 4) dengan nomor hexadecimal 14. Karakter DC4 dicari nilai hexadesimalnya dan kemudian dikonversi menjadi angka biner.

Angka biner hasil konversi digunakan untuk membentuk angka index dari karakter Base64 dengan cara mengambil angka biner sebanyak 6 digit kemudian mengubahnya menjadi angka desimal. Angka desimal hasil konversi tersebut dicocokkan dengan tabel karakter encoding Base64 seperti yang telah dijelaskan pada

(27)

Tabel 2. 2. Hasil konversi karakter byte menjadi karakter encoding Base64 tersebut digunakan untuk keperluan penyimpanan data atau transmisi data.

Pseudodoce di bawah ini adalah contoh dari tes vektor untuk Base64.

BASE64("") = "" BASE64("f") = "Zg==" BASE64("fo") = "Zm8=" BASE64("foo") = "Zm9v" BASE64("foob") = "Zm9vYg==" BASE64("fooba") = "Zm9vYmE=" BASE64("foobar") = "Zm9vYmFy"

Kode Program 2. 4. Contoh Vektor Konversi ke Base64

Pseudodoce diatas menjelaskan hasil dari tes vektor dalam konversi

karakter byte menjadi karakter Base64. Berikut adalah beberapa karakteristik dari sistem konversi karakter byte ke dalam karakter encoding Base64:

1. Input sebanyak satu karakter byte menghasilkan empat karakter encoding

Base64 yaitu dua karakter Base64 dan dua karakter padding.

2. Input sebanyak dua karakter byte menghasilkan empat karakter encoding

Base64 yaitu tiga karakter Base64 dan satu karakter padding. Karakter Base64

di posisi kedua berubah karena perbedaan struktur input pada angka biner. 3. Input sebanyak tiga karakter byte menghasilkan empat karakter encoding

Base64 yaitu empat karakter Base64. Karakter Base64 di posisi ketiga berubah

karena perbedaan struktur input pada angka biner.

4. Input sebanyak tiga empat karakter byte menghasilkan delapan karakter

encoding Base64 yaitu enam karakter Base64 dan dua karakter padding.

Karakter Base64 di posisi pertama sampai keempat tetap seperti sebelumnya, tetapi karakter di posisi kelima sampai kedelapan mengikuti karakteristik seperti perubahan karakter di posisi pertama sampai keempat ketika terdapat satu karakter byte sebagai input.

(28)

Karakteristik dari hasil konversi tersebut menyebabkan sistem encoding pada Base64 harus mengambil karakter byte sebanyak tiga buah sebagai input dalam setiap iterasi encoding. Jumlah padding pada hasil konversi selalu ditentukan pada jumlah karakter byte input yang tersedia pada iterasi terakhir.

2.3.3. Algoritma RSA

Pembahasan pada subbab ini menjelaskan deskripsi dari algoritma enkripsi

RSA, yaitu pengertian algoritma RSA, sistem enkripsi dan dekripsi RSA, dan

sistem pembangkitan kunci untuk enkripsi RSA.

2.3.3.1. Pengertian RSA

Menurut Ronald L. Rivest dkk. (1978), RSA adalah salah satu sistem kriptografi kunci publik yang pertama dan digunakan untuk transmisi data yang aman. Sistem ini menggunakan dua buah kunci yang berbeda, yaitu kunci enkripsi yang bersifat publik (yang biasa disebut public key) dan kunci dekripsi yang dirahasiakan (yang biasa disebut dengan private key). Sistem kunci asimetris pada sistem RSA ini berbasis pada kesulitan praktis dari pencarian dua bilangan prima yang bernilai besar. Menurut Akronim RSA adalah singkatan dari Ron Rivest, Adi

Shamir dan Leonard Adleman yang pertama kali diperkenalkan pada tahun 1977.

Sistem RSA menciptakan dan menerbitkan kunci publik didasarkan pada dua bilangan prima besar yang bersamaan dengan nilai tambahan lainnya. Kedua bilangan prima yang digunakan harus dirahasiakan. Semua pengguna dapat menggunakan kunci publik untuk mengenkripsi pesan, tetapi pesan tersebut hanya dapat didekripsi dengan kunci privat yang dirahasiakan tersebut.

2.3.3.2. Sistem Pembangkitan Kunci RSA

Sistem pembangkitan kunci RSA melibatkan kunci publik dan kunci privat. Kunci publik digunakan untuk mengenkripsi pesan dan dapat diketahui oleh semua orang. Pesan yang dienkripsi dengan kunci publik hanya dapat didekripsi dengan menggunakan kunci privat. Kunci untuk algoritma RSA dihasilkan dengan cara sebagai berikut:

(29)

1. Tentukan dua bilangan bulat prima untuk p dan q. Bilangan prima p dan q

harus dipilih secara acak dan panjang bit harus sama.

2. Hitunglah nilai n = pq. Nilai n digunakan sebagai modulus untuk kunci

publik dan kunci privat. Panjang kunci biasanya dinyatakan dalam bit dan

disebut dengan key length.

3. Hitunglah φ(n) = φ(p)φ(q) = (p−1)(q−1) = n-(p+q-1), dengan m adalah

fungsi euler totient.

4. Pilih sebuah integer e sehingga 1<e<φ(n) dan gcd(e,φ(n)) = 1.

5. Tentukan d dengan rumus d = (1 + nm)/e.

Nilai hasil perhitungan yang dijadikan kunci publik dalam sistem enkripsi

RSA adalah e dan n, sedangkan nilai yang dijadikan sebagai private key adalah d

dan n.

2.3.3.3. Sistem Enkripsi RSA

Sebuah server mengirimkan kunci publik-nya (e dan n) untuk seorang

pelanggan dan merahasiakan kunci privat d dan n. Seorang pelanggan tersebut

menggunakan kunci tersebut untuk mengirim pesan M ke server.

Pelanggan tersebut pertama kali mengubah pesan M menjadi integer m,

sehingga 0 ≤ m < n dengan menggunakan protokol reversible yang dikenal

sebagai padding scheme. Pelanggan tersebut kemudian menghitung ciphertext c

dengan rumus sebagai berikut

(

n m

ce mod

)

(2.1)

Perhitungan ini dapat dilakukan secara efisien bahkan untuk nomor 500-bit dengan menggunakan Modular exponentiation. Pelanggan kemudian mengirimkan pesan terenkripsi c ke server.

(30)

2.3.3.4. Sistem Dekripsi RSA

Server yang menerima pesan terenkripsi c mampu melakukan dekripsi

dengan kunci d sehingga kembali menjadi pesan M. Rumus untuk melakukan

dekripsi pada pesan adalah sebagai berikut.

(

n c

md mod

)

(2.2)

Server dapat mengembalikan pesan M aslinya dengan nilai m yang

diberikan oleh client dengan cara membalikkan skema padding.

2.3.3.5. Contoh Proses Enkripsi dan Dekripsi pada RSA

Contoh proses pembangkitan kunci, enkripsi, dan dekripsi RSA dapat dilihat pada contoh dibawah ini.

1. Pilih dua bilangan prima yang berbeda, misalnya p = 61 dan q = 53

2. Hitunglah nilai n = pq. Jika p = 61 dan q = 53, maka n = 61 x 53 = 3233

3. Hitunglah totient φ(n) = (p-1)(q-1). Nilai totient φ(n) adalah (61 – 1)(53 –

1) = 60 x 52 = 3120

4. Pilih angka e dengan 1 < e < 3120 dan coprime dengan 3120. Angka yang

relatif prime dengan e adalah angka yang sama-sama memiliki faktor pembagi

terbesar adalah 1. Rumus secara matematis adalah gcd(e,m) = 1. Nilai e

adalah lete=17.

5. Cari angka d sehingga e*d = 1 mod (m) atau d = (1+nm)/e. Nilai d adalah

17 x 2753 mod 3120 = 1

6. Hasil perhitungan sebelumnya akan menghasilkan kunci publik e = 17 dan n =

3233 dan kunci privat d = 2753 dan n = 3233

7. Pada bagian ini diberikan contoh pesan dengan karakter ASCII dengan isi pesan m, fungsi enkripsinya adalah c

( )

m =m17mod3233. Contoh enkripsi

untuk pesan dengan karakter ASCII bernilai 65 adalah 2790 3233 mod 6517 = = c

(31)

8. Proses dekripsi dari pesan ciphertext c adalah m

( )

c =c2753mod3233 65 3233 mod 27902753 = . Contoh pesan dengan karakter ciphertext d adalah m=

Setiap pesan yang dienkripsi dengan algoritma RSA, pesan dienkripsi setiap satu karakter pada pesan tersebut, kemudian hasilnya berupa angka yang sangat besar dan harus dikonversi kembali ke dalam bentuk karakter ASCII untuk memungkinkan transmisi data dengan ukuran yang lebih kecil sehingga untuk satu karakter pesan plaintext m dapat menjadi beberapa karakter ciphertext c.

2.4. Pemrograman Berbasis Web

Pemrograman berbasis web adalah istilah yang luas untuk pekerjaan yang terlibat dalam perancangan dan pengembangan situs web untuk Internet (World

Wide Web) atau intranet (jaringan pribadi). Pemrograman berbasis web mengacu

pada perancangan halaman web dalam aspek non-desain, yaitu menulis markup dan coding dalam bahasa pemrograman web tertentu. Dalam lingkup perancangan

web berbasis bahasa pemrograman, berdasarkan tujuan penggunaan, terdapat 2

sisi yang digarap, yaitu Server-Side Web Programming dan Client-Side Web

Programming.

2.4.1. Server-side web programming

Server-side web programming adalah teknik yang digunakan dalam

perancangan website yang melibatkan embedding script ke dalam HTML source

code yang penanganan permintaan pengguna (client) ke situs web server oleh script yang berjalan pada sisi server sebelum server merespon permintaan klien. Server-side web programming menggunakan script yang dijalankan sepenuhnya

pada sisi web server.

Server-side web programming biasanya digunakan untuk menyediakan

sebuah antarmuka untuk client dan untuk membatasi akses client ke proprietary

database atau data source lainnya. Script ini dapat merakit karakteristik client

untuk digunakan dalam menyesuaikan respon berdasarkan karakteristik, kebutuhan pengguna, hak akses, dan lain-lain. Server-side scripting juga memungkinkan pemilik website untuk mengurangi akses pengguna ke source

(32)

code dari server-side script yang kemungkinan bersifat proprietary dan berharga

dalam script file tersebut. Sisi negatif untuk penggunaan server-side scripting adalah bahwa komputer server dari sebuah situs harus menyediakan sebagian besar sumber daya komputasi sebelum mengirim halaman ke komputer client untuk ditampilkan melalui web browser pada client.

Server melayani data dalam cara yang umum digunakan, misalnya sesuai

dengan protokol HTTP atau FTP, dan pengguna dapat memiliki pilihan untuk menggunakan program client (kebanyakan web browser modern dapat meminta dan menerima data menggunakan kedua protokol tersebut). Developer dapat merancang server, client, dan protokol komunikasi ciptaan mereka masing-masing, yang hanya bisa digunakan dengan satu sama lain selama masih dirancang oleh satu developer.

Bahasa pemrograman server-side programming yang umum dipakai

adalah PHP dan ASP. Laporan ini hanya membahas bahasa pemrograman PHP karena sistem web yang dirancang menggunakan bahasa pemrograman PHP.

2.4.1.1. PHP

Pembahasan pada subbab ini menjelaskan pengertian dari PHP, sejarah singkat dari PHP, dan kode program dengan bahasa PHP.

1. Pengertian PHP

Menurut situs PHP (www.php.net) PHP adalah bahasa pemrograman

server-side scripting yang dirancang untuk web development. PHP juga

digunakan sebagai general purpose programming language. PHP dibuat oleh Rasmus Lerdorf pada tahun 1994, referensi implementasi pada PHP (didukung oleh Zend Engine) kini diproduksi oleh The PHP Group. PHP awalnya didirikan untuk Personal Home Page, sekarang berganti singkatan menjadi PHP: Hypertext

Preprocessor.

Kode PHP dapat digabungkan dengan kode HTML, atau dapat digunakan dalam kombinasi dengan berbagai template engine dan web framework. Kode

(33)

server secara native atau Common Gateway Interface (CGI) executable. Web server mengirimkan hasil output kepada client dalam bentuk bagian dari halaman web yang dihasilkan karena kode PHP dapat menghasilkan kode HTML web page, gambar, atau data dalam bentuk lainnya.

2. Sejarah PHP

Menurut Wikipedia (2014), pengembangan PHP dimulai pada tahun 1994 ketika Rasmus Lerdorf menulis serangkaian kode biner Common Gateway

Interface (CGI) pada C yang digunakan untuk mempertahankan personal homepage miliknya. Rasmus Lerdorf memperluas kemampuan kode binernya

dengan menambahkan kemampuan untuk bekerja dengan bentuk web dan untuk berkomunikasi dengan database, dan menyebutkan implementasi ini dengan nama "Personal Home Page/Forms Interpreter" atau juga disebut PHP/FI.

PHP/FI dapat digunakan untuk membangun aplikasi web yang sederhana

dan dinamis. Lerdorf awalnya mengumumkan rilis PHP/FI sebagai "Personal

Home Page Tools (PHP Tools) version 1.0" secara publik ke dalam kelompok

diskusi Usenet di comp.infosystems.www.authoring.cgi pada tanggal 8 Juni 1995 untuk mempercepat penemuan bug dan meningkatkan kemampuan kode. Rilis

PHP 1.0 sudah memiliki fungsi dasar yang telah PHP miliki pada versi tahun

2013. Fungsi ini sudah termasuk variabel Perl-like, penanganan form, dan kemampuan untuk menanamkan kode HTML. Kumpulan sintaks mirip dengan sintaks dari Perl tapi lebih sederhana, lebih terbatas dan kurang konsisten.

PHP versi awal tidak dimaksudkan untuk menjadi bahasa pemrograman

baru dan tumbuh secara organik. Sebuah tim pengembangan mulai terbentuk dan resmi merilis PHP/FI 2 pada November 1997 setelah berbulan-bulan bekerja dan melakukan beta testing.

Salah satu kritik dari PHP adalah tidak konsistennya pada fungsi dan penyusunan. Dalam beberapa kasus, nama function yang dipilih untuk mencocokkan library dengan tingkat yang lebih rendah pada PHP disebut dengan "wrapping". Beberapa versi yang sangat awal, panjang nama function pada PHP

(34)

digunakan secara internal sebagai fungsi hash, sehingga nama-nama tersebut telah dipilih untuk meningkatkan distribusi nilai hash.

Zeev Suraski dan Andi Gutmans menulis ulang parser pada tahun 1997 dan membentuk dasar pada PHP 3, mengubah nama bahasa dari semula bernama "Personal Home Page" menjadi nama berbentuk rekursif akronim yaitu "PHP:

Hypertext Preprocessor". Uji publik untuk PHP 3 dimulai dan peluncuran resmi

dilakukan pada bulan Juni 1998. Suraski dan Gutmans memulai penulisan ulang baru dari inti PHP, memproduksi Zend Engine pada tahun 1999. Suraski dan Gutmans juga mendirikan Zend Technologies di Ramat Gan, Israel.

PHP 4 yang didukung oleh Zend Engine 1.0 dirilis Pada tanggal 22 Mei

2000. Cabang dari versi ini telah mencapai versi 4.4.9 pada Agustus 2008. PHP 4 tidak dikembangkan lagi dan tidak ada lagi update keamanan yang akan dirilis.

PHP 5 dirilis pada tanggal 13 Juli 2004. PHP 5 didukung oleh engine baru

yaitu Zend Engine II. PHP 5 memasukkan fitur baru yaitu peningkatan dukungan untuk pemrograman berorientasi objek, ekstensi PHP Data Objects (PDO) (yang mendefinisikan interface yang ringan dan yang konsisten untuk mengakses

database), dan berbagai peningkatan kinerja. PHP 5 menjadi satu-satunya versi

stabil yang masih dalam pengembangan pada tahun 2008. Late static biding telah hilang dari PHP dan telah ditambahkan pada versi 5.3.

Banyak profil proyek open-source tingkat tinggi tidak lagi mendukung

PHP 4 dalam kode baru mulai tanggal 5 Februari 2008, karena inisiatif GoPHP5,

yang disediakan oleh konsorsium pengembang PHP yang mempromosikan transisi dari PHP 4 ke PHP 5.

Seiring dengan waktu, PHP interpreter tersedia pada kebanyakan sistem operasi 32-bit dan 64-bit. PHP interpreter tersedia baik dengan cara membangun ulang dari PHP source code atau dengan cara menggunakan pre-built binaries. Untuk PHP versi 5.3 dan 5.4, distribusi biner yang hanya tersedia untuk Microsoft

Windows adalah 32-bit x86 builds. PHP versi 32-bit x86 builds membutuhkan Windows 32-bit compatibility mode saat menggunakan Internet Information Services (IIS) pada platform Windows 64-bit. PHP versi 5.5 menyediakan 64-bit x86-64 build pada Microsoft Windows.

(35)

PHP menerima review yang beragam karena kekurangan dukungan native Unicode pada tingkat bahasa inti. Tahun 2005, sebuah proyek yang dipimpin oleh

Andrei Zmievski dimulai untuk memasukkan dukungan Unicode asli pada seluruh

PHP, dengan cara menanamkan International Components for Unicode (ICU) library, dan secara internal merepresentasikan text string sebagai UTF-16. Karena

perubahan ini akan menyebabkan perubahan besar untuk bahasa internal dan kode dari pengguna, perubahan ini direncanakan untuk dirilis sebagai PHP versi 6.0, bersama dengan pengembangan fitur utama lainnya.

Kurangnya jumlah developer yang memahami perubahan yang diperlukan, dan masalah kinerja yang timbul akibat konversi ke dan dari UTF-16 yang jarang digunakan dalam konteks web, menyebabkan keterlambatan dalam proyek ini.

PHP 5.3 rilis diciptakan pada tahun 2009, dengan banyak fitur non-Unicode di-back-porting dari PHP 6 terutama fitur namespace. PHP 5.4 dirilis pada Maret

2010. PHP 5.4 dibuat berisi kebanyakan fitur non-Unicode yang tersisa dari PHP

6, seperti traits dan closure re-binding. Harapan awal pada rencana baru tersebut

akan dibentuk untuk integrasi Unicode, tetapi hingga tahun 2014 tidak ada satupun dari rencana tersebut diadopsi.

Tahun 2014, pekerjaan sedang berlangsung pada versi PHP utama baru yang bernama PHP 7. Beberapa sengketa terjadi dalam penentuan penggunaan nama PHP 6 atau PHP 7 dalam rilis terbaru. Percobaan Unicode pada PHP 6 tidak pernah dirilis, sejumlah artikel dan judul buku mereferensikan nama lama

PHP 6 yang bisa berakibat kebingungan jika rilis baru menggunakan kembali

nama lama PHP 6. Setelah dilakukan voting, nama PHP 7 yang digunakan.

PHP 7 mendapat fondasinya dari cabang PHP eksperimental yang

awalnya bernama PHPNG (PHP Next Generation), yang bertujuan untuk mengoptimalkan kinerja PHP dengan cara refactoring pada Zend Engine namun tetap mempertahankan kompatibilitas bahasa pemrograman sedekat mungkin. Tanggal 14 Juli 2014, benchmark berbasis WordPress, yang berfungsi sebagai

Benchmark Suite utama untuk proyek PHPNG, menunjukkan peningkatan hampir

100% dalam kinerja. Perubahan dari PHPNG juga diharapkan untuk membuatnya lebih mudah untuk meningkatkan kinerja di masa depan, karena struktur data yang

(36)

lebih kompak dan perubahan lain yang dinilai lebih cocok untuk kesuksesan migrasi menuju just-in-time (JIT) compiler.

PHP 7 juga akan berisi peningkatan sintaks variabel yang secara internal

konsisten dan lengkap, menyelesaikan masalah lama pada PHP. Hal ini memungkinkan penggunaan operator ->, [], (), {}, dan :: dengan ekspresi

sebelah kiri yang lebih berarti secara acak.

3. Sintaks dalam PHP

Berikut ini adalah beberapa pembahasan sintaks PHP yang sering digunakan secara umum

a. Sintaks secara umum

Berikut ini adalah program hello world yang ditulis dalam kode PHP yang ditanamkan pada dokumen HTML

<!DOCTYPE html> <html> <head> <title>PHP Test</title> </head> <body>

<?php echo '<p>Hello World</p>'; ?> </body>

</html>

Kode Program 2. 5. Sintaks program Hello World dalam kode PHP yang ditanamkan pada kode

HTML

Kode program di atas adalah coding dengan bahasa pemrograman HTML.

Coding PHP dapat diletakkan di mana saja di dalam halaman. Coding dengan

bahasa pemrograman PHP dimulai dengan tag pembuka <?php dan tag penutup ?>. Perintah untuk menampilkan teks ke dalam dokumen dengan bahasa PHP

tidak bisa diketik secara langsung tetapi harus melalui perintah echo atau printf

diikuti dengan teks yang ingin ditampilkan yang diapit dalam tanda petik satu atau tanda petik dua.

(37)

Beberapa aturan dalam menulis kode pada PHP adalah:

1) Kode PHP dapat tulis di dalam dokumen HTML, tetapi harus di dalam apit tag penanda kode PHP, yaitu tag <?php dan ?>

2) Setiap line pernyataan pada kode PHP harus ditutup dengan tanda titik koma (;)

3) Nama function dan class pada PHP bersifat case insensitive

Semua kode program untuk bahasa PHP dapat ditulis pada halaman

HTML, tetapi semua kode PHP tersebut hanya terlihat pada server yang

menyimpan halaman tersebut.

b. Tag penanda pada PHP

PHP memiliki beberapa macam tag penanda, yaitu:

1) Tag <?php dan ?>. Tag ini adalah tag penanda yang paling umum digunakan

dalam pemrograman PHP.

2) Tag <? dan ?>. Tag ini adalah tag yang digunakan pada PHP versi lama,

karena pada PHP versi baru, support pada tag ini di-disable.

3) Tag <script language="php"> dan </script>. Tag ini adalah cara lain

untuk menandai script pada PHP. Tag ini juga jarang digunakan.

Kode program di bawah ini merupakan contoh penulisan tag penanda pada dokumen PHP.

<?php

echo "Hello World"; ?>

<?

echo "Hello World"; ?>

(38)

echo "Hello World"; </script>

Kode Program 2. 6. Sintaks contoh tag pembatas pada PHP

Coding diatas adalah contoh untuk membuat tag penanda untuk tempat

bahasa pemrograman PHP. Semua coding dengan bahasa PHP diletakkan di dalam tag tersebut.

c. Komentar pada PHP

Penulisan komentar di dalam bahasa pemrograman PHP dapat dilakukan dengan cara sebagai berikut:

1) Komentar yang diawali dengan tag #, tag ini digunakan untuk menulis

komentar 1 baris

2) Komentar yang diawali dengan tag //, tag ini digunakan untuk menulis

komentar 1 baris

3) Komentar yang diawali dengan tag <!- dan tag penutup --> , tag ini

digunakan untuk menulis komentar lebih dari 1 baris

4) Komentar yang diawali dengan tag pembuka /* dan tag penutup */ , tag ini

digunakan untuk menulis komentar lebih dari 1 baris

Berikut ini adalah contoh penulisan komentar pada bahasa PHP.

#Ini komentar ke-1 //Ini komentar ke-2 <!- Ini komentar ke-3a Ini komentar ke-3b Ini komentar ke-3c -->; /* Ini komentar ke-4a Ini komentar ke-4b Ini komentar ke-4c */

(39)

Coding diatas adalah contoh untuk menulis komentar di dalam bahasa

pemrograman PHP. Komentar yang diawali dengan tag # atau // hanya bisa

dituliskan komentar sebanyak satu baris sehingga setiap komentar yang berada di baris berikutnya harus ikut diawali dengan # atau //. Komentar yang diapit

dengan tag <!- dan --> atau dengan tag /* dan */ dapat dituliskan komentar

lebih dari satu baris.

d. Variable

Variable pada PHP berfungsi untuk menyimpan nilai atau data sementara.

Beberapa aturan dalam membuat variable pada PHP adalah:

1) Variable pada PHP ditulis dalam bentuk diawali dengan lambang dollar ($) dan diikuti dengan nama variable

2) Nama variable pada PHP bersifat case sensitive 3) Datatype pada variable tidak perlu dideklarasikan

4) Nama variable harus berupa kombinasi huruf, angka, dan underscore 5) Nama variable tidak boleh diawali dengan angka

6) Variable bisa diberi nilai dengan menggunakan operator assignment (=) Berikut ini adalah contoh penggunaan variable pada bahasa PHP

$x = 1; $y = 2; $X = 3; $Y = 4;

Kode Program 2. 8. Sintaks penggunaan variable pada PHP

Coding di atas adalah contoh penulisan variable dalam bahasa PHP.

Variable pada PHP bersifat case sensitive sehingga variable $x tidak sama dengan variable $X.

Gambar

Tabel 2. 2. Tabel susunan alfabet pada Base64
Tabel 2. 3. Tabel susunan alfabet Base64 &#34;URL and Filename Safe&#34;
Tabel di bawah ini adalah contoh proses encoding  dari karakter byte  menjadi karakter Base64
Tabel 2. 2. Hasil konversi karakter byte  menjadi karakter encoding Base64  tersebut digunakan untuk keperluan penyimpanan data atau transmisi data
+3

Referensi

Dokumen terkait

dengan kata lain, mikrokontroler adalah versi mini atau mikro dari sebuah komputer karena mikrokontroler sudah mengandung beberapa peripheral yang langsung bisa

(2012) prevalensi gangguan bicara berupa keterlambatan bahasa dengan kosakata ekspresif kurang dari 50 kata dan atau tidak adanya kombinasi kata, diperkirakan

1) Transference, adalah ketika seorang selebritas mendukung sebuah merek yang terkait dengan profesi mereka. 2) Congruence (kesesuaian), adalah konsep kunci pada brand

Morfologi ialah bagian dari ilmu bahasa yang membicarakan atau yang mempelajari seluk-beluk bentuk kata serta pengaruh perubahan-perubahan bentuk kata terhadap golongan dan

Di dalam paket SCORM terdapat script bahasa pemrograman menggunakan bahasa Javascript, script tersebut berfungsi untuk mengirimkan data nilai mahasiswa pada modul yang

Teknik deskripsi adalah teknik penerjemahan dengan menjelaskan makna kata Bahasa Sumber di dalam bahasa penerima seperti tampak pada perubahan kata menjadi frase atau frase

Menurut kamus besar bahasa Indonesia, pelayanan berasal dari kata “layan” yang artinya membantu menyiapkan (mengurus) apa-apa yang diperlukan seseorang. Jadi, kata “pelayanan”

(1984:58) menyatakan bahwa morfem adalah satuan terkecil dari pembentukan kata dalam suatu bahasa yang tidak dapat diuraikan lebih lanjut ke dalam bagian-bagian yang bermakna