BAB II LANDASAN TEORI
2.1
Pengertian Short Messaging Service (SMS) Short Messaging Service (SMS) adalah salah satu fasilitas Global System
for Mobile communications (GSM) yang memungkinkan mengirim dan menerima pesan-pesan singkat berupa text dengan kapasitas maksimal 160 karakter dari Mobile Station (Izzah, 2011). Karakteristik SMS adalah active mobile handset yang dapat menerima dan mengirim pesan pendek setiap waktu, independen terhadap status voice atau data call (Wijayanto, 2008). Pada saat kita mengirim pesan SMS dari handphone, pesan tersebut tidak langsung dikirimkan ke handphone tujuan. Pesan tersebut akan dikirim terlebih dahulu ke Short Messaging Center (SMSC), baru pesan akan diteruskan ke handphone tujuan. Dengan adanya SMSC kita dapat mengetahui status SMS yang telah dikirim, apakah telah sampai atau gagal diterima oleh handphone tujuan. Apabila handphone tujuan dalam keadaan aktif dan menerima SMS yang dikirim, maka handphone tersebut memberikan konfirmasi ke SMSC yang menyatakan bahwa SMS telah diterima. Jika handphone tujuan dalam keadaan mati, SMS yang dikirim akan disimpan oleh SMSC sampai pada period-validity tertentu. Terdapat dua mode untuk mengirim dan menerima SMS, yaitu mode teks dan mode Protocol Data Unit (PDU). Akan tetapi mode teks tidak didukung oleh semua operator maupun handphone. Pada mode teks SMS yang dikirim tidak
9
dilakukan konversi. Teks yang dikirim tetap dalam bentuk aslinya dengan panjang maksimal mencapai 160 (7 bit defaults alphabet) atau 140 (8 bit) karakter. Pada mode PDU, format SMS yang dikirim dalam bilangan hexadesimal yang mencapai 160 (7 bit default alphabet) atau 140 (8 bit) karakter.
2.1.1
Concatenated SMS Message / Long SMS Message Salah satu kelemahan pesan teks SMS adalah satu pesan teks hanya dapat
membawa jumlah data yang sangat terbatas. Untuk mengatasi hal ini, dikembangkanlah concatenated SMS atau long SMS. Concatenated SMS dapat berisi lebih dari 160 karakter. Pesan akan dipecah menjadi beberapa bagian dengan ukuran masing–masing 160 karakter. Kemudian, pesan akan digabungkan kembali ketika sampai pada tujuan.
2.1.2
SMS Center (SMSC) SMSC (SMS Center) bertanggung jawab untuk menangani operasi SMS
dari suatu jaringan nirkabel. Ketika kita mengirim pesan melalui telepon selular, pesan pertama kali akan sampai pada SMSC. Kemudian, pesan akan diteruskan oleh SMSC ke tujuan. Pesan yang dikirm dapat melewati satu atau lebih jaringan (contohnya SMSC dan SMS Gateway) sebelum sampai ke tujuan. Tugas utama SMSC adalah mengatur perutean pesan dan prosesnya. Jika penerima tidak aktif (misalkan pada saat telepon dalam keadaan mati), SMSC akan menyimpan pesan untuk sementara.
10
Gambar 2.1.1 Cara Kerja SMS
2.2
SMS Gateway Pada dunia komputer, gateway dapat diartikan sebagai jembatan
penghubung antar satu sistem dengan sistem lain yang berbeda, sehingga dapat terjadi suatu pertukaran data antar sistem tersebut. Dengan demikian, SMS gateway dapat diartikan sebagai suatu penghubung untuk lalu lintas data SMS, baik yang dikirimkan maupun yang diterima (Tarigan, 2012). Pada awalnya, SMS gateway dibutuhkan untuk menjembatani antar SMSC. Hal ini dikarenakan SMSC yang dibangun oleh perusahaan yang berbeda memiliki protokol komunikasi sendiri, dan protokol-protokol itu sendiri bersifat pribadi. Perhatikan ilustrasi berikut ini.
Gambar 2.2.1 Cara Kerja SMS Gateway
11
Namun
seiring
perkembangan
sisi hardware maupun software,
dan
teknologi
komputer,
perkembangan
teknologi
baik
dari
komunikasi,
SMS gateway tidak lagi dimaksudkan sebagaimana ilustrasi di atas. Dewasa ini, masyarakat lebih mengartikan SMS gateway sebagai suatu jembatan komunikasi yang menghubungkan perangkat komunikasi (dalam hal ini ponsel) dengan perangkat komputer, yang menjadikan aktivitas SMS menjadi lebih mudah dan menyenangkan. Pengertian SMS gateway kemudian lebih mengarah pada sebuah program yang mengomunikasikan antara sistem operasi komputer, dengan perangkat komunikasi yang terpasang untuk mengirim atau menerima SMS. Salah satu komunikasi yang terjadi, dapat dilakukan dengan mengirimkan perintah AT pada perangkat komunikasi tersebut, kemudian hasil operasinya dikirimkan kembali ke komputer.
Gambar 2.2.2 Konsep Pengembangan SMS Gateway
2.2.1
Client Server SMS Gateway Sistem Client Server mempunyai dua komponen utama yaitu aplikasi yang
terinstal di client (pada kasus ini aplikasi mobile yang berbasis android) dan komputer server. Server merupakan komputer induk yang berfungsi sebagai penyedia layanan untuk seluruh pemakai yang melakukan pemrosesan terbanyak untuk memenuhi permintaan-permintaan dari aplikasi client. Komputer server juga bertindak sebagai server database yang menyimpan data. Client yaitu 12
aplikasi atau komputer dalam suatu jaringan yang mengakses data, file, program, atau aplikasi dari komputer server, kemudian menampilkan data pada interface aplikasi visual pengakses database yang dimiliki oleh Aplikasi SMS Gateway. Sistem Client Server merupakan suatu sistem yang melibatkan proses client yang meminta sesuatu pelayanan data kepada komputer server yang menyediakan layanan data tersebut. Sehingga baik client maupun server sama– sama melakukan pekerjaan. Keberadaan kombinasi client dan server ini membuat kumpulan dari program tidak dieksekusi dalam satu tempat yang sama namun terbagi pada Aplikasi SMS Gateway dan komputer server. Arsitektur client server ini merupakan model konektivitas pada jaringan yang mengenal keberadaan server dan client, dimana masing-masing memiliki fungsi yang berbeda satu sama lain.
2.2.2
Cara Kerja Client Server Sebuah server biasa melayani beberapa client, walaupun ada juga yang
hanya melayani satu client saja. Client merupakan sebuah komputer atau suatu sistem aplikasi yang terhubung dengan aplikasi
komputer server. Apabila
pemakai ingin memakai informasi, bagian aplikasi client mengeluarkan permintaan yang dikirim melalui jaringan
kepada server. Server kemudian
menjalankan permintaan dan menyimpan informasi tersebut. Selain memiliki tugas sebagai back end, server juga berperan sebagai aplikasi yang mengelola sumber daya milik bersama seperti database, printer, atau jalur komunikasi. Sistem client atau server yaitu pusat pemrosesan data.
13
Sedangkan proses client meliputi program-program untuk mengirimkan pesan permintaan pada server serta melakukan pengaksesan pada data seperti mengedit, menghapus atau menambah data. Beberapa kegiatan pemrosesan yang dapat dilakukan oleh client menjadikan program pada client sebagai aplikasi front end yang digunakan sebagai antar muka atau
interface bagi pemakai untuk
berinteraksi dengan server.
2.3
Pengertian Balita Balita adalah bayi dan anak yang berusia 5 tahun kebawah (Hanum
Marimbi, 2010). Balita merupakan masa pertumbuhan tubuh dan otak yang sangat pesat dalam pencapaian keoptimalan fungsinya (Supartini, 2004).
2.3.1
Klarifikasi Perkembangan Balita
1. Usia Bayi (0-1 tahun) Bayi memiliki sistem kekebalan tubuh yang primitive dengan kekebalan pasif yang didapat dari ibunya selama dalam kandungan. Pada saat bayi kontak dengan antigen yang berbeda ia akan memperoleh antibodinya sendiri. Imunisasi diberikan untuk kekebalan terhadap penyakit yang dapat membahayakan bayi berhubungan secara alamiah (Lewer, 1996:2 dan Supartini, 2004). Bila dikaitkan dengan status gizi bayi memerlukan jenis makanan ASI, susu formula, dan makanan padat. Kebutuhan kalori bayi antara 100-200 kkal/kg BB. Pada empat bulan pertama, bayi yang lebih baik hanya mendapatkan ASI saja tanpa
14
diberikan susu formula. Usia lebih dari enam bulan baru dapat diberikan makanan pendamping ASI (Supartini, 2004).
2. Usia toddler (1-3 tahun) Secara fungsional biologis masa umur 6 bulan hingga 2-3 tahun adalah rawan. Masa itu tantangan karena konsumsi zat makanan yang kurang, disertai minuman buatan yang encer dan terkontaminasi kuman menyebabkan diare dan marasmus. Selain itu dapat juga terjadi sindrom kwashiorkor karena penghentian ASI mendadak dan pemberian makanan padat yang kurang memadai (Jelife, 1989 dalam Supartini, 2004). Imunisasi pasif yang diperoleh melalui ASI akan menurun dan kontak dengan lingkungan akan makin bertambah secara cepat dan menetap tinggi selama tahun kedua dan ketiga kehidupan. Infeksi dan diet adekuat kan tidak banyak berpengaruh pada status gizi yang cukup baik (Akre, 1994 dalam Supartini, 2004). Bagi anak dengan gizi kurang, setiap tahapan infeksi akan berlangsung lama dan akan berpengaruh yang cukup besar pada kesehatan, petumbuhan dan perkembangan. Anak 1-3 tahun membutuhkan kalori kurang lebih 100 kkal/kg BB dan bahan makanan lain yang mengandung berbagai zat gizi (Supartini, 2004).
3. Usia Pra Sekolah (3-5 tahun) Pertumbuhan anak usia ini semakin lambat. Kebutuhan kalorinya adalah 85 kkal/kg BB. Karakteristik pemenuhan kebutuhan nutrisi pada
15
usia pra sekolah yaitu nafsu makan berkurang, anak lebih 9 tertarik pada aktivitas bermain dengan teman, atau lingkungannya dari pada makan dan anak mulai sering mencoba jenis makanan yang baru (Supartini, 2004).
2.3.2
Pengertian Berat Badan Balita Berat badan merupakan ukuran antropometri yang terpenting pada masa
bayi dan balita. Berat badan merupakan hasil peningkatan atau penurunan semua jaringan yang ada pada tubuh. Berat badan dipakai sebagai indikator yang terbaik saat ini untuk mengetahui keadaan gizi dan tumbuh kembang anak, sensitif terhadap perubahan sedikit saja, pengukuran objektif dan dapat diulangi (Soetjiningsih, 1995:38).
2.4
Gammu Gammu adalah sebuah aplikasi yang dapat digunakan untuk mengelola
berbagai fungsi pada handphone, modem dan perangkat sejenis lainnya. Fungsi – fungsi yang dapat di kelola oleh gammu antara lain phonebook dan SMS (Tarigan, 2012).
2.5
Kriptografi Kriptografi adalah bidang ilmu yang sangat penting keberadaannya untuk
menjaga kerahasiaan dan keamanan suatu informasi. Untuk mendefinisikannya lebih lanjut tentang kriptorafi, Munir (2006: 2) menjelaskan bahwa kriptografi (Cryptography) berasal dari bahasa Yunani : “cryptos” artinya “secret” (rahasia), sedangkan “graphien” artinya “writing” (tulisan). Jadi, kriptografi (Cryptography)
16
berarti “secret writing” (tulisan rahasia). Menurut Bruce Schneier, kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan. Kata “seni” dalam definisi tersebut berasal dari fakta sejarah bahwa pada masa-masa awal sejarah kriptografi, setiap orang mungkin mempunyai cara yang unik untuk merahasiakan pesan. Cara-cara unik tersebut mungkin berbeda-beda pada setiap pelaku kriptografi sehingga setiap cara menulis pesan rahasia, pesan mempunyai nilai estetika tersendiri sehingga kriptografi berkembang menjadi sebuah seni merahasiakan pesan (kata “graphy” di dalam “cryptography” itu sendiri sudah menyiratkan sebuah seni). Kriptorafi mempunyai beberapa tujuan. Munir (2006: 9) menyampaikan tujuan kriptografi bahwa untuk memberi layanan keamanan (yang juga dinamakan sebagai aspek-aspek keamanan) sebagai berikut: a. Kerahasiaan (confidentiality), adalah layanan yang ditujukan untuk menjaga agar pesan tidak dapt dibaca oleh pihak-pihak yang tidak berhak. Di dalam kriptografi, layanan ini direalisasikan dengan menyandikan pesan menjadi chiperteks. b. Integritas data (data integrity), adalah layanan yang menjamin bahwa pesan masih asli/utuh atau belum pernah dimanipulasi selama pengiriman. Dengan kata lain, aspek keamanan ini dapat diungkapkan sebagai pernyataan: “Apakah pesan yang diterima masih asli atau tidak mengalami perubahan (modifikasi)?”. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi pesan oleh pihakpihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubstitusian data lain ke dalam pesan yang sebenarnya. 17
c. Otentikasi (authentication), adalah layanan yang berhubungan dengan identifikasi,
baik
mengidentifikasi
kebenaran
pihak-pihak
yang
berkomunikasi (user authentication atau entity authentication) maupun mengidentifikasi kebenaran sumber pesan (data origin authentication). Dua pihak yang saling berkomunikasi harus dapat mengontentikasi satu sama lain sehingga ia dapat memastikan sumber pesan. Pesan yang dikirim melalui saluran komunikasi juga harus diotentikasi asalnya. Dengan kata lain, aspek keamanan ini dapat diungkapkkan sebagai pertanyaan: “Apakah pesan yang dterima benar-benar berasal dari pengirim yang benar?”. Otentikasi sumber pesan secara implisit juga memberikan kepastian integritas data, sebab jika pesan telah dimodifikasi berarti sumber pesan sudah tidak benar. Oleh karena itu, layanan integritas data selalu dikombinasikan dengan layanan otentikasi sumber pesan. d. Nirpenyalahgunaan (non-repudiation), adalah layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengiriman pesan
menyangkal
melakukan
pengiriman
atau
penerima
pesan
menyangkal telah menerima pesan. Kriptografi sendiri mempunyai komponen-komponen untuk mencapai tujuan keriptografi. Menurut Ariyus (2009: 19), pada dasarnya kriptografi terdiri dari beberapa komponen seperti : a. Enkripsi : Enkripsi merupakan hal yang sangat penting dalam kriptografi sebagai pengamanan atas data yang dikirimkan agar rahasianya terjaga. Pesan aslinya disebut plainteks yang diubah menjadi kode-kode yang tidak dimengerti. Enkripsi bisa diartikan sebagai chiper atau kode. Seperti ketika 18
kita tidak mengerti akan arti sebuah kata, kita bisa melihatnya di dalam kamus atau daftar istilah. Berbeda dengan enkripsi, untuk mengubah plainteks
ke
bentuk
chiperteks
digunakan
algoritma
yang
bisa
mengkodekan data yang diinginkan. b. Dekripsi : Dekripsi merupakan kebalikan dari enkripsi, pesan yang telah dienkripsi dikembalikan ke bentuk asalnya (Plainteks), yang disebut dekripsi pesan. Algoritma yang digunakan untuk dekripsi tentu berbeda dengan yang digunakan untuk enkripsi. c. Kunci : Kunci yang yang dimaksud di sini adalah kunci yang dipakai untuk melakukan enkripsi dan dekripsi. Kunci terbagi menjadi dua bagian, yakni kunci pribadi (private key) dan kunci umum (public key). d. Chiperteks : merupakan suatu pesan yang sudah melalui proses enkripsi. Pesan yang ada pada chiperteks tidak bisa dibaca karena berisi karakterkarakter yang tidak memiliki makna (arti). e. Plainteks : sering juga disebut cleartext; merupakan suatu pesan bermakna yang ditulis atau diketik dan plainteks itulah yang akan diproses menggunakan algoritma kriptografi agar menjadi chiperteks. f. Pesan : pesan bisa berupa data atau infomasi yang dikirim (melalui kurir, saluran komunikasi data, dan sebagainya) atau yang disimpan di dalam media perekaman (kertas, storage, dan sebagainya). g. Cryptanalysis : bisa diartikan sebagai analisis sandi atau suatu ilmu untuk mendapatkan plainteks tanpa harus mengetahui kunci secara wajar. Jika suatu chiperteks berhasil menjadi plainteks tanpa menggunakan kunci yang sah, maka proses tersebut dinamakan breaking code yang dilakukan
19
oleh para cryptanalys. Analisis sandi juga mampu menemukan kelemahan dari suatu algoritma kriptografi dan akhirnya bisa menemukan kunci atau plainteks dari chiperteks yang dienkripsi menggunakan algoritma tertentu. Kriptografi mempunyai dua komponen utama yaitu enkripsi dan deskripsi. Selain itu dibutuhkan kunci untuk mengubah plainteks menjadi chiperteks dan juga sebaliknya. Tanpa kunci plainteks tidak bisa mengenkrip masukan menjadi chiperteks, demikian juga sebaliknya. Kerahasiaan kunci sangatlah penting, apabila kerahasiaannya terbongkar maka isi pesan akan terbongkar. Berikut adalah skema yang mengilustrasikan enkripsi dan dekripsi.
Gambar 2.5.1 Skema Enkripsi dan Dekripsi (Munir, 2006:6) Pada gambar diatas mengilustrasikan sebuah plainteks dienkripsi menggunakan kunci enkripsi sehingga menjadi chiperteks dan chiperteks didekripsi kembali menggunakan kunci dekripsi sehingga menjadi plainteks kembali.
Secara formal proses enkripsi dapat dirumuskan sebagai berikut :
E k(P) = C
20
Dimana E merupakan fungsi enkripsi dengan menggunakan k (kunci) beroperasi pada P (plainteks) sehingga menghasilkan C (chiperteks). Sedangkan pada proses dekripsi dirumuskan dengan :
Dk(C) = P
Dimana D merupakan fungsi enkripsi dengan menggunakan k (kunci) beroperasi pada C (chiperteks) sehingga menghasilkan P (plainteks). Sehingga kedua hubungan tersebut menjadi :
Dk(Ek(P)) = P
2.5.1
Pengertian Algoritma Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang
disusun secara sistematis (Munir : 2002). Kata logis disini berarti benar sesuai dengan logika manusia. Untuk menjadi sebuah algoritma, urutan langkah yang ditempuh untuk menyelesaikan masalah harus memberikan hasil yang benar. Menurut Donald E. Knuth, algoritma mempunyai lima ciri penting yaitu: 1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. 2. Setiap langkah harus didefinisikan secara tepat dan tidak berarti dua. 3. Algoritma memiliki nol atau lebih masukan (input). 4. Algoritma mempunyai nol atau lebih keluaran (output). 5. Algoritma harus sangkil (efektif).
21
2.5.2
Algoritma Berdasarkan Jenis Kunci Algoritma kriptografi berdasarkan jenis kunci terbagi menjadi dua kategori
yaitu algoritma simetris dan algoritma asimetris. Berikut adalah penjelasan algoritma simetis dan asimetris.
2.5.2.1 Algoritma Simetris Algoritma simetris adalah algoritma kriptografi dimana kunci enkripsi dan dekripsi sama. Contoh dari algoritma simetris adalah twofish, AES, camellia, dan lain-lain. Berikut skema dari algoritma kunci simetris.
Gambar 2.5.2 Diagram Proses Enkripsi dan Dekripsi Algoritma Simetris
Pada gambar diatas merupakan diagram proses enkripsi dan dekripsi pada algoritma simetris. Pada proses tersebut plainteks dienkripsi menggunakan kunci enkripsi (K) sehingga menghasilkan chiperteks. Chiperteks didekripsikan kembali menggunakan kunci dekripsi (K), artinya kunci pada dekripsi sama dengan kunci ketika pengenkripsian dilakukan sehingga menghasilkan plainteks.
22
Kelebihan : a. Kecepatan operasi lebih tinggi bila dibandingkan dengan algoritma asimetrik. b. Karena kecepatannya yang cukup tinggi, maka dapat digunakan pada sistem real-time Kelemahan : a. Untuk tiap pengiriman pesan dengan pengguna yang berbeda dibutuhkan kunci yang berbeda juga, sehingga akan terjadi kesulitan dalam manajemen kunci tersebut.
b. Permasalahan dalam pengiriman kunci itu sendiri yang disebut “key distribution problem”
2.5.2.2 Algoritma Asimetris Algoritma asimetris adalah suatu algoritma kriptografi dimana kunci untuk enkripsi yang digunakan berbeda dengan kunci dekripsi. Kunci enkripsi dinamakan sebagai kunci public yaitu kunci yang bebas diketahui oleh siapapun, sedangkan kunci dekripsi dinamakan kunci kunci privat yaitu kunci yang hanya boleh diketahui oleh penerima pesan. Contoh dari algoritma kriptografi asimetris adalah RSA, Elgamal, dan lain-lain. Berikut adalah skema dari algoritma asimetris:
23
Gambar 2.5.3 Diagram Proses Enkripsi dan Dekripsi Algoritma Asimetris
Pada gambar diatas merupakan diagram proses enkripsi dan dekripsi pada algoritma asimetris. Pada proses tersebut plainteks dienkripsi menggunakan kunci enkripsi (K1) sehingga menghasilkan chiperteks. Chiperteks didekripsikan kembali menggunakan kunci dekripsi (K2), artinya kunci pada saat pendekripsian berbeda dengan kunci ketika pengenkripsian dilakukan sehingga menghasilkan plainteks.
Kelebihan : a. Masalah keamanan pada distribusi kunci dapat lebih baik b. Masalah manajemen kunci yang lebih baik karena jumlah kunci yang lebih sedikit
Kelemahan : a. Kecepatan yang lebih rendah bila dibandingkan dengan algoritma simetris b. Untuk tingkat keamanan sama, kunci yang digunakan lebih panjang dibandingkan dengan algoritma simetris.
24
2.5.3
Algoritma Berdasarkan Mode Bit Berdasarkan mode bit yang diolah dalam satu kali proses, maka algoritma
kriptografi dapat dibedakan menjadi dua jenis yaitu algoritma block chiper dan stream chiper. Algoritma block chiper dibagi menjadi beberapa mode blok yaitu mode Electronic Code Book (ECB), Chiper Block Chaining (CBC), Chiper Feed Back (CFB), dan Output Feed Back (OFB). Sedangkan algoritma stream chiper dibagi menjadi dua yaitu Synchronous Stream Chiper dan Self-Synchronous Stream Chiper.
2.5.3.1 Algoritma Block Cipher “Block chipher merupakan suatu algoritma yang mana input dan outputnya berupa satu block, dan setiap block terdiri dari beberapa bit (1 block terdiri dari 64 bit atau 128 bit)”. (Ariyus, 2006: 58). Masukan dari plainteks biasanya dibagi menjadi beberapa blok, misalnya 64 bit setiap blok, apabila masukan kurang dari jumlah tersebut maka akan dilakukan penambahan bit (padding) sehingga menjadi 64 bit. Block chiper terbagi menjadi empat mode operasi yaitu, Mode Electronic Code Book (ECB), Mode Chiper Block Chaining (CBC), Mode Chiper Feed Back (CFB), dan Mode Output Feed Back (OFB).
2.5.3.1.1 Electronic Code Book (ECB) Ariyus (2006: 58) dalam bukunya mengemukakan ECB merupakan “suatu block chipper yang panjang dibagi dalam bentuk sequence binary menjadi satu block tanpa mempengaruhi block-block yang lain, satu block terdiri dari 64 bit atau 128 bit, setiap block merupakan bagian dari pesan yang dienkripsi”.
25
Keunggulan dari mode blok ini adalah mode blok chiper yang sederhana, kerusakan satu blok tidak akan mempengaruhi blok yang lainnya. Jika penerima menerima mandapatkan satu blok yang rusak maka blok yang lainnya tidak akan rusak dan penerima hanya perlu dikirim blok yang rusak. Dengan mode ini pengiriman dilakukan dengan cepat karena tidak perlu mengirim ulang pesan yang dikirim secara keseluruhan. Pengiriman blok yang rusak dikirim dengan kode yang sama dan menghasilkan chiper yang sama pula. Namun kelemahan dari mode ini adalah mudahnya penyerang dalam membaca pola ini karena dapat dipelajari apabila hal ini sering terjadi. Berikut merupakan ilustrasi dari mode ECB yang merupakan penggambaran dari hal di atas.
Gambar 2.5.4 Skema Mode Operasi ECB (Ariyus, 2006: 58)
2.5.3.1.2 Chiper Block Chaining (CBC) Ariyus (2006: 59) mengemukakan bahwa “sistem dari mode Chiper Block Chaining (CBC) adalah plainteks yang sama akan dienkripsi ke dalam bentuk chiper yang berbeda, disebabkan block chiper yang satu tidak berhubungan
26
dengan block chiper yang lain. Melainkan tergantung pada chiper yang sebelumnya.” Tingkat keamanan dari mode ini lebih rumit dari pada mode ECB dikarenakan tiap blok tergantung dari blok sebelumnya. Namun kalau terjadi kesalahan 1 bit saja pada salah satu blok maka akan terjadi kesalahan pula pada blok-blok selanjutnya, ini merupakan kelemahan mode CBC. Berikut adalah skema mode CBC.
Gambar 2.5.5 Skema Mode CBC
Pada gambar 2.3.5 terlihat bahwa mode CBC beroperasi menggunakan operasi XOR antara plainteks dan chiperteks yang berulang. Hasil dari enkripsi satu blok merupakan hasil pengXORan dari blok sebelumnya. IV (initial value) pertama merupakan nilai kunci asal yang digunakan untuk enkripsi, sedangkan IV pada blok selanjutnya adalah hasil dari blok sebelumnya. Sama halnya dengan proses pendekripsian, setiap blok dekripsi merupakan hasil XOR dari blok sebelumhnya. IV pada proses dekripsi yang digunakan dari blok sebelumnya lalu diXORkan dengan hasil dekripsi. IV merupakan kunci yang harus dilindungi keamanannya oleh pengguna, hal ini dapat dilakukan dengan mode ECB.
27
2.5.3.1.3 Chiper Feed Back (CFB) Metode ini digunakan untuk melakukan enkripsi pada stream chiper, mode ini tidak memerlukan padding bit (tambahan bit) karena jumlah panjang block Plainteks Block 1 Plainteks Block 2 Plainteks Block N Algoritma Enkripsi Chiperteks Block 1 Chiperteks Block 2 Chiperteks Block N Algoritma Enkripsi Algoritma Enkripsi sama dengan jumlah panjang plainteks yang ada. Mode ini bekerja pada sistem real time. Satu hal yang tidak menguntungkan dari mode ini adalah jika satu block chiper terjadi kesalahan maka, kesalahan untuk semua block yang lain, karena satu block dan block yang lain saling berhubungan. Contoh proses enkripsi dari mode CFB diilustrasikan pada gambar di bawah ini.
28
Gambar 2.5.6 Skema Mode Operasi CFB
Pada gambar di atas s-bit, merupakan pergeseran 1 bit ke kiri dari nilai yang sebenarnya. Hal ini untuk mendapatkan sequence bit yang tidak mudah dilacak oleh penyerang. (Ariyus, 2006: 61)
2.5.3.1.4 Output Feed Back (OFB) Ariyus (2006: 62) mengemukakan Mode Output Feed Back (OFB) tidak mempengaruhi block yang lain jika terjadi error, satu bit yang error pada chiperteks hanya akan mempengaruhi satu bit plainteks pada terjadinya proses dekripsi. Hal ini sangat berguna untuk sistem analog seperti voice atau video, jika satu bit yang error tidak merusak semua block yang ada, tapi jika rusak semua maka akan mempengaruhi arti dari plainteks yang ada.
29
Gambar 2.5.7 Skema Mode Operasi OFB
2.5.3.2 Algoritma Stream Chiper Stream Chiper (aliran chiper) merupakan suatu chiper yang berasal dari hasil XOR seperti pembahasan di atas. Setiap bit plainteks dengan setiap bit Shift Register 64 –s bit | s-bit Select Discard S bit | 64-s bit Plaintext Block 2 Algoritma Enkripsi Shift Register 64 –s bit | s-bit Select Discard S bit | 64-s bit Plaintext Block 1 Algoritma Enkripsi Shift Register 64 –s bit | s-bit Select Discard S bit | 64-s bit Plaintext Block 3 Algoritma Dekripsi kunci.kunci merupakan kunci utama (kunci induk) yang digunakan untuk membangkitkan kunci acak semu yang dibangkitkan dengan Pseudo-Random Sequence Generator yang merupakan suatu nilai yang nampak seperti diacak, tetapi sesungguhnya nilai tersebut merupakan
30
suatu urutan. Secara khusus urutan dari nilai yang dihasilkan oleh RNG (Random Number Generator) merupakan kebalikan dari really random. RNG secara umum adalah Pseudo-random yang memberikan initial state atau seed (nilai yang diinput ke dalam state), seluruh urutan tersebut ditentukan secara keseluruhan, tetapi meskipun demikian banyaknya karakteristik yang ditampilkan dari suatu urutan
yang acak tersebut. Pseudoramdomness
menghasilkan urutan yang sama secara berulang-ulang pada penempatan yang berbeda. Kemudian kunci acak semu tersebut diberikan operasi XOR dengan plainteks untuk mendapatkan chiperteks. (Ariyus, 2006: 52)
2.5.3.2.1 Synchronous Stream Chiper Untuk mensimulasikan suatu random, dengan kunci yang mempunyai panjang terbatas, synchronous stream chiper menghasilkan bit dari sumber yang lain dari pesan itu senndiri. Chiper yang paling sederhana dengan menyadap bit dari register untuk digunakan sebagai kunc. Content berubah sesuai dengan register yang ada. Suatu struktur yang efisien menghasilkan sequence yang sering digunakan oleh aplikasi random number generator adalah n-element shift register (SR), jika akhir element dihubungkan ke element yang petama maka nilai n dapat berputar sekitar SR didalam n tetapi jika kedua diantara element-element dikombinasikan oleh exclusive-OR dan hasilnya dihubungkan ke element pertama dan mungkin akan mendapatkan panjang sempurna yang maksimal dari 2n-1 (semua state bernilai nol dan sistem akan mengamankannya).
31
Karena hanya 2n state yang berbeda dari nilai-nilai n biner dan tiap-tiap nilai dinyatakan tapi cuma bisa digunakan sekali. Nilai-nilai yang dihasilkan adalah suatu permutasi yang sempurna dari perhitungan dari angka-angka (1…2n1). (Ariyus, 2006: 54)
2.5.3.2.2 Self-Synchronous Stream Chiper Self-Synchronous Stream Chiper menggunakan metode pengambilan kunci dari pesan itu sendiri, atau sering disebut dengan autokey chiper, menggunakan pesan untuk kunci. Dengan menggunakan metode ini juga didapat kunci one time pad, kemungkinan setiap pesan dikirim dua kali jarang terjadi, kunci dari sistem ini menggunakan pesan yang akan dikirim dengan menambahkan satu karakter yang berbeda di depan maupun di belakang dari kunci yang ada. (Ariyus, 2006: 57)
2.6
Android Android adalah kumpulan perangkat lunak untuk perangkat mobile yang
mencakup aplikasi sistem operasi, middleware, dan key. (Roger R dan John Lombardo, 2009). Android
SDK
menyediakan
perangkat-perangkat
dan
API
yang
dibutuhkan untuk memulai pengembangan aplikasi pada platform Android menggunakan bahasa pemrograman Java.
32
2.6.1
Fitur-fitur yang terdapat pada Android Application Framework. Membolehkan penggunaan ulang dan penggantian komponen.
Dalvik virtual machine. Dioptimasi pada perangkat-perangkat mobile.
Integrated browser. Berdasarkan pada WebKit yang open source.
Optimized graphics. Didukung oleh library grafis 2D yang dikostumisasi; 3D graphic berdasarkan spesifikasi OpenGL ES 1.0.
SQLite. Untuk penyimpanan data terstruktur.
Media Support. Untuk audio, video, dan format image ( MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF).
GSM Telephony. Tergantung dari perangkat keras.
Bluetooth, EDGE, 3G, WiFi. Tergantung dari perangkat keras.
Camera, GPS, compass, accelerometer. Tergantung dari perangkat keras.
Rich Development Environment. Termasuk device emulator, tools untuk debugging, memory dan performance profilling, dan plugin untuk Eclipse IDE.
2.6.2
Arsitektur Android Gambar di bawah ini akan menampilkan arsitektur dari sistem operasi
Android:
33
Gambar 2.6.1 Arsitektur Android
2.6.3
Daur Hidup Dari Aktivitas Aplikasi Di Android Daur hidup aplikasi di Android di sesuaikan dengan resource perangkat
mobile yang terbatas, yaitu baterai dan memori. Gambar dari daur hidup Android di gambarkan seperti berikut:
34
Gambar 2.6.2 Daur Hidup Aktifitas Android
Penjelasan dari masing-masing event adalah sebagai berikut:
onCreate → dipanggil ketika activity pertama kali dibuat. Tempat view biasanya dibuat, membuka data file yang dibutuhkan activity, dan secara umum menginisialisasi activity.
onStart → dipanggil sebelum activity menjadi terlihat pada screen. Jika ocStart komplit dijalankan, maka activity akan menjadi dasar screen dan berubah state menjadi onResume, tapi jika gagal maka control akan menjalankan method onStop.
onResume →dipanggil setelah onStart jika activity menjadi foreground pada screen. Pada saat ini activity yang baru sedang berinteraksi dengan pengguna.
onPause → dipanggil ketika Android memanggil kembali sebuah activity, dan activity tersebut menjadi foreground. Pada saat ini, activity yang lama
35
akan ditangguhkan sampai dengan mendapatkan foreground screen kembali.
onStop → dipanggil ketika activity tidak lagi terlihat, ini karena activity yang lain mengambil foreground screen atau activity sedang dihancurkan.
onDestroy → proses yang paling terakhir dipanggil sebelum activity dihancurkan.
2.7
AES (Advance Encryption Standard) AES dipublikasikan oleh NIST (National Institute of Standard and
Technology) pada tahun 2001 yang digunakan untuk menggantikan algoritma DES yang semakin lama semakin mudah untuk membobol kuncinya. AES diperoleh dari hasil kompetisi yang diadakan NIST pada tahun 1997. Pada tahap pertama, 15 peserta dari 21 peserta lolos ke tahap berikutnya berdasarkan penilaian tingkat keamanan, harga, algoritma, dan karakteristik implementasi. Sepuluh dari 15 peserta tersebut gugur pada tahap berikutnya karena dianggap kurang aman dan kurang efektif. Pada Agustus 1999 dipilih lima kandidat untuk seleksi akhir, yaitu Mars (IBM, Amerika Serikat), RSA (RSA corp., Amerika Serikat), Rijndael (Belgia), Serpent (Israel, Norwegia, dan Inggris), dan Twofish (Counterpane, Amerika Serikat). Pada tahap ini, NIST memberikan penilaian terhadap general security, implementasi software, ruang lingkup, implementasi hardware, implementasi atas serangan, enkripsi dan dekripsi, kemampuan kunci, kemampuan lain dan fleksibilitas, dan kepotensialan untuk tingkat intruksi paralel. Akhirnya, pada tanggal 2 Oktober 2000 terpilihlah algoritma Rijndael, yang dibuat oleh Dr. Vincent Rijment dan Dr. Joan Daemen, sebagai pemenang.
36
2.7.1
Algoritma AES (Advance Encryption Standard) Dalam proses enkripsi input, diperlukanlah empat macam operasi yang
dilakukan berulang ulang dalam beberapa putaran dan menggunakan kunci cipher. Jumlah putaran yang digunakan algoritma ini ada tiga macam seperti pada tabel di bawah ini.
Tipe AES-128 AES-192 AES-256
Panjang Kunci 128 bit 192 bit 256 bit
Panjang Blok Input 128 bit 128 bit 128 bit
Jumlah Putaran 10 12 14
Tabel 1 Jumlah Putaran Pengoperasian AES
2.7.2
Putaran Proses Enkripsi dan Deskripsi Seperti yang telah diketahui sebelumnya pada Tabel 2.1, jumlah putaran
pengoperasian blok input untuk setiap macam panjang blok berbeda jumlah putaran untuk proses enkripsi dan dekripsi tetap sama. Proses enkripsi dan dekripsi dapat digambarkan sebagai berikut :
37
Gambar 2.7.1 Diagram Proses Enkripsi
Gambar 2.7.2 Diagram Proses Dekripsi
38
2.8
Pemrograman Java Sebagai bahasa pemrograman, Java dikenal sebagai bahasa pemrograman
tingkat tinggi dengan fitur-fitur utama antara lain: Simple Java dirancang untuk mudah dipelajari, terutama bagi programmerprogrammer yang telah mengenal bahasa C/C++ akan mudah sekali untuk berpindah ke Java. Object Oriented Seluruh aspek dalam bahasa Java merupakan object murni. Robust and Secure Java dirancang sebagai bahasa pemrograman yang handal dan aman. Aplikasi-aplikasi yang dibangun dengan bahasa Java sangat handal dengan manajemen memori yang bagus. Aplikasi Java juga dikenal sangat aman. Architecture Neutral and Portable Dengan semboyan write once run everywhere, Java dirancang untuk dapat dijalankan di semua platform, aplikasi Java mampu berjalan disemuanya tanpa perlu dikompilasi ulang. Java compiler yang digunakan untuk mengkompilasi kode program Java dirancang untuk menghasilkan kode yang netral terhadap semua arsitektur perangkat kerasa. Hasil kode tersebut umum disebut sebagai Java bytecode. High Performance Java dirancang untuk menghasilkan aplikasi-aplikasi dengan performansi yang terbaik. Contoh nyata aplikasi besar saat ini yang mungkin bisa kita lihat
39
adalah aplikasi database Oracle 8i/9i yang core-nya dibangun dengan menggunakan bahasa Java. Sebagai sebuah platform , Java terdiri dari dua bagian yaitu: a.
Java Virtual Machine (JVM)
Java Application Programming Interface (Java API). Java platform merupakan perangkat lunak yang menjadi mesin virtual bagi aplikasi Java untuk dieksekusi.
2.9
JCE (Java Cryptography Extension) JCE menyediakan framework dan implementasi untuk algoritma
pengenkripsian, pembangkit kunci (key generation) dan (key agreement), dan kode otentikasi pesan (message authentication code). Mendukung enkripsi symmetric, asymmetric, block, dan stream cipher. Juga mendukung secure stream dan sealed object. JCE API meliputi:
Enkripsi symmetric yang besar, seperti DES, RC2, dan IDEA.
Enkripsi symmetric stream, seperti RC4.
Enkripsi asymmetric, seperti RSA.
Enkripsi berbasis password ( Password-based Encryption ).
Key Agreement.
Message Authentication Code ( MAC ).
40
Beberapa konsep dasar kriptografi yang digunakan pada penelitian ini, diambil dari buku Stalling (2005).
2.10
Layanan Keamanan (Security Services) Security services adalah sebuah layanan yang memberikan jaminan untuk
keamanan sistem atau data transfer, atau dengan kata lain security service meningkatkan keamanan dari sistem dan pengiriman di antara mereka, menurut Cabalerro, Maguire, dan Gomez-Vilda [2003] pada laporan tesis mereka. Pada RFC 2828, security service diartikan sebagai sebuah layanan pemrosesan atau komunikasi yang disediakan oleh sistem untuk memberikan sebuah proteksi tertentu untuk sumber daya sistem. Tujuan dari security service sendiri adalah untuk melawan serangan keamanan ( security attack ). Security service terbagi menjadi 6 buah kategori, yaitu Authentication, Access Control, Confidentiality, Integrity, Non-Repudiation, dan Availability. Berikut akan dijelaskan secara singkat kategori-kategori dari security service. Berikut sedikit penjelasan dari masing-masing kategori:
Authentication Authentication adalah jaminan untuk komunikasi entitas yang akan menjadi salah satu yang akan diklaim entitas-entitas tersebut. Proses authentication biasanya terjadi pada saat inisialisasi koneksi, jadi layanan harus memastikan bahwa entitas adalah asli. Dan layanan juga harus bisa memastikan tidak terdapat gangguan dari pihak ketiga untuk menyamar sebagai salah satu dari pihak yang sah untuk tujuan yang tidak benar.
Access Control 41
Pencegahan dari penggunaan yang tidak sah dari sumber daya ( sebagai contoh, layanan ini mengatur siapa saja yang mempunyai akses ke sumber daya, dalam kondisi apa akses dapat terjadi, dan pengaksesan sumber daya apa yang diperbolehkan.
Data Confidentiality Perlindungan data yang dikirim dari serangan pasif, atau secara umum, perlindungan data dari penyingkapan yang tidak sah.
Data Integrity Jaminan bahwa data yang diterima benar-benar berasal dikirim dari entitas yang sah ( sebagai contoh, tidak berisi modifikasi, penyisipan, penghapusan, atau perulangan ). Integrity service, sebagaimana di confidentiality service, dapat diterapkan ke koneksi, pesan tunggal, atau bagian yang dipilih pada sebuah pesan tunggal.
Non-Repudiation Non-repudiation menyediakan proteksi melawan penolakan oleh satu dari entitas yang dilibatkan dalam sebuah komunikasi yang berpartisipasi dalam seluruh atau bagian dari komunikasi. Jadi, ketika sebuah pesan dikirim, penerima dapat membuktikan bahwa pengirim yang diduga mengirim pesan tersebut. Sama seperti sebelumnya, ketika pesan diterima, pengirim dapat membuktikan bahwa penerima sesungguhnya menerima pesan tersebut.
Availability Availability adalah properti dari sebuah sistem atau sumber daya sistem yang dapat diakses dan digunakan atas permintaan entitas sistem yang berwenang, sesuai dengan spesifikasi kinerja untuk sistem ( sebagai contoh sebuah sistem
42
tersedia jika sistem tersebut menyediakan layanan berdasarkan desain sistem kapanpun pengguna meminta layanan tersebut )
2.11
Metode Pengujian Black Box Pengujian black box merupakan pengujian yang dilakukan tanpa
pengetahuan detail struktur internal dari sistem atau komponen yang diuji. Pengujian black box biasa disebut sebagai behavioral testing, specification-based testing, input/output testing atau functional testing. Pengujian black box fokus pada kebutuhan fungsional pada perangkat lunak, berdasarkan pada spesifikasi kebutuhan dari perangkat lunak. Dengan adanya pengujian black box, perekayasa perangkat lunak dapat menggunakan sekumpulan kondisi masukan yang dapat secara penuh memeriksa keseluruhan kebutuhan fungsional pada suatu program. Pengujian black box berusaha menemukan kesalahan dalam kategori sebagai berikut, (Ladjamudin, 2005): 1. Fungsi-fungsi yang tidak benar atau hilang. 2. Kesalahan interface. 3. Kesalahan dalam struktur data atau akses database eksternal. 4. Kesalahan kinerja. 5. Inisialisasi dan kesalahan terminasi.
43
Gambar 2.11.1 Black Box Testing
2.12
Yii Framework Yii adalah framework (kerangka kerja) PHP berbasis komponen berkinerja
tinggi untuk pengembangan aplikasi web berskala besar. Yii dapat membantu pengembangan aplikasi web menjadi lebih cepat. Untuk menjalankan aplikasi web berbasis yii, diperlukan server web yang mendukung PHP 5.1.0. Bagi para pengembang yang ingin menggunakan yii, mengerti pemrograman berorientasi objek (OOP) akan sangat membantu, karena yii merupakan framework OOP murni. Yii adalah framework pemrograman umum web yang bisa dipakai untuk mengembangkan semua jenis aplikasi web. Dikarenakan sangat ringan dan dilengkapi dengan mekanisme caching yang canggih, yii sangat cocok untuk pengembangan aplikasi dengan lalu lintas tinggi seperti portal, forum, sistem manajemen konten (CMS), sistem e-commerce, dan lain-lain. Seperti kebanyakan PHP framework, yii adalah MVC framework. Yii mengimplementasikan pola desain Model View Controller (MVC), yang diadopsi secara luas dalam pemrograman web. MVC bertujuan untuk memisahkan logika bisnis dari pertimbangan antar muka pengguna agar para pengembang bisa lebih mudah mengubah setiap bagian
44
tanpa mempengaruhi yang lain. Dalam MVC, model menggambarkan informasi (data) dan aturan bisnis. View (tampilan) berisi elemen antar muka pengguna seperti teks, input form. Sementara controller mengatur komunikasi antar model dan view. Selain implementasi MVC, Yii juga memperkenalkan front controller (controller depan) yang disebut aplikasi, yang mengenkapsulasi konteks eksekusi untuk memproses sebuah request. Aplikasi mengumpulkan beberapa informasi mengenai request pengguna dan kemudian mengirimnya ke controller yang sesuai untuk penanganan selanjutnya.
2.13
PHP Berdasarkan informasi dari situs resmi PHP, “PHP.net”, PHP (PHP:
Hypertext Prepocessor) merupakan bahasa pemrograman web yang dapat disisipkan dalam script HTML. Banyak sintaks di dalamnya yang mirip dengan bahasa C, Java dan Perl. Tujuan dari bahasa ini adalah membantu para pengembang web untuk membuat web dinamis dengan cepat.
2.13.1 Sejarah PHP PHP ditulis (diciptakan) oleh Rasmus Lerdorf, seorang software engineer asal Greenland sekitar tahun 1995. Pada awalnya PHP digunakan Rasmus hanya sebagai pencatat jumlah pengunjung pada website pribadi beliau. Karena itu bahasa tersebut dinamakan Personal Home Page (PHP) Tools. Tetapi karena perkembangan nya yang cukup disukai oleh komunitas nya, maka beliau pun merilis bahasa PHP tersebut ke publik dengan lisensi open-source. Saat ini, PHP adalah server-side scripting yang paling banyak digunakan di website-website di
45
seluruh dunia, dengan versi sudah mencapai versi 5 dan statistiknya terus bertambah.
2.13.2 Syarat Untuk Menjalankan PHP Untuk dapat berjalan, PHP membutuhkan web server, yang bertugas untuk memproses file-file php dan mengirimkan hasil pemrosesan untuk ditampilkan di browser client. Oleh karena itu, PHP termasuk server-side scripting (script yang diproses di sisi server). Web server sendiri adalah software yang diinstall pada komputer lokal ataupun komputer lain yang berada di jaringan intranet / internet yang berfungsi untuk melayani permintaan-permintaan web dari client. Web server yang paling banyak digunakan saat ini untuk PHP adalah Apache. Selain Apache, PHP juga memerlukan PHP binary yang bisa dikonfigurasikan sebagai modul Apache atau pun sebagai aplikasi CGI. Untuk media penyimpanan datanya (database server), PHP biasa menggunakan MySQL. Untuk menginstall dan mengkonfigurasi ketiga software tersebut (Apache, MySQL, PHP) agar dapat berjalan dan saling terhubung, memang cukup sulit. Maka dari itu dibuatlah paket software LAMP, XAMPP, MAMP, WAMP, dll yang tinggal kita install dalam satu kali installasi. Dalam satu kali installasi, sudah mencakup ketiga software tersebut dan sudah dikonfigurasi untuk keperluan lingkungan pengembangan aplikasi web.
2.13.3 Contoh Script PHP Aturan penulisan script PHP adalah: 1. Semua script PHP harus diapit oleh tanda:
46
, atau
<script language='php'> dan , atau
dan ?> , atau
<% dan %>
2. Tetapi tanda yang resmi dan paling banyak digunakan adalah yang pertama, yaitu 3. Pada setiap akhir perintah, diakhiri dengan tanda titik koma ( ; ).
2.14
Database MySQL MySQL merupakan sistem manajemen untuk aplikasi database berbasis
Structured Query Language (SQL) dan Relational Database Manajemen Sistem (RDBMS). MySQL pada saat ini telah mencapai versi 5.x dan mampu bekerja di berbagai sistem operasi. MySQL adalah sebuah sistem database yang tidak memiliki interface khusus untuk pengelolaan secara build-in. Semua pengelolaan basis data MySQL berdasarkan pada perintah-perintah berbasiskan console. Structured Query Language (SQL) digunakan sebagai sarana komunikasi dengan basis data relational yang memperbolehkan data untuk didefinisikan, dimodifikasi, dan dikontrol. Dengan menggunakan perintah SQL, dapat diambil data sesuai kriteria yang telah ditentukan. Dalam bahasa SQL pada umumnya informasi tersimpan dalam tabel-tabel yang secara logik merupakan struktur dua dimensi terdiri dari baris atau record dan kolom atau field. Bahasa SQL merupakan bahasa yang berisi pernyataan-pernyataan sederhana dan mudah dipahami. Beberapa pernyataan dalam SQL yang sering digunakan adalah sebagai berikut:
47
a.
Perintah Level Database 1. Membuat Database Untuk membuat database baru, sehingga tidak berlaku jika database sudah ada atau anda tidak memiliki priviledge. Sintaksnya: CREATE DATABASE nama_db 2. Menghapus Database Untuk menghapus database beserta seluruh tabel di dalamnya. Perintah ini tidak berlaku jika database tidak ada atau anda tidak memiliki priviledge. Sintaksnya: DROP DATABASE nama_db 3. Menggunakan Database Untuk menjadikan database menjadi default dan referensi dari tabel yang nantinya anda gunakan. Perintah ini tidak berlaku jika database tidak ada atau anda tidak memiliki priviledge. 4. Menampilkan Database Untuk menampilkan daftar semua database yang ada dalam server.
b.
Perintah Level Tabel 1. Membuat Tabel Untuk membuat tabel minimal anda harus menentukan namanya dan tipe kolom yang anda inginkan. Format sintaks adalah: CREATE TABLE nama_tabel(kolom1 tipe_kolom1(), kolom2 tipe_kolom2(), …). Ketika membuat tabel harus ada field yang sebagai Primary Key yaitu indeks tabel yang unik atau tidak dapat terduplikasi.
48
2. Membuat Indeks pada Tabel Menambahkan indeks pada tabel yang sudah ada baik yang unik ataupun yang biasa. Sintaksnya:
CREATE
INDEX
nama_index
ON
nama_tabel
(nama_kolom, ..). 3. Menghapus Tabel Untuk menghapus tabel dalam database tertentu. Jika dilakukan semua isi indeks dan atribut lain akan terhapus. Sintaksnya: DROP TABLE name_tabel. 4. Menghapus Indeks Untuk menghapus indeks pada suatu tabel. Sintaksnya: DROP INDEX nama_index ON nama_tabel. 5. Melihat informasi tabel Untuk melihat tabel apa saja yang ada di database tertentu. Sintaksnya: SHOW TABLES FROM nama_db. Sedangkan untuk melihat deskripsi tabel atau informasi tentang kolom. Sintaksnya: DESC nama_tabel nama_kolom atau SHOW COLUMNS FROM nama_tabel FROM nama_db 6. Mendapatkan atau menampilkan informasi pada tabel Untuk menampilkan isi tabel dengan option-option tertentu. Misalnya untuk menampilkan seluruh isi tabel digunakan: SELECT * FROM nama_tabel. Untuk menampilkan kolom-kolom tertentu saja: SELECT kolom1, kolom2, .. FROM nama_tabel. Untuk menampilkan isi suatu
49
kolom dengan kondisi tertentu SELECT kolom1, .. FROM nama_tabel WHERE kolom2=isi_kolom. 7. Modifikasi struktur table Dapat digunakan untuk mengganti nama tabel atau mengubah strukturnya seperti menambah kolom atau indeks, menghapus kolom atau indeks. Sintaks umum: ALTER TABLE nama_tabel action. Untuk menambah kolom baru di tempat tertentu dapat menggunakan: ALTER TABLE nama_table ADD kolom_baru tipe_kolom() definisi. Untuk menghapus suatu kolom dan seluruh atributnya menggunakan: ALTER TABLE nama_table DROP nama_kolom. 8. Modifikasi informasi dalam table Untuk menambah record atau baris baru dalam table. Sintaksnya: INSERT INTO nama_tabel (nama_kolom, ..) VALUES (isi_kolom,
..)
atau
INSERT
INTO
nama_tabel
SET
nama_kolom=isi_kolom. Untuk merubah record, sintaks umum: UPDATE nama_tabel SET kolom=isi_kolom. Untuk
menghapus
record,
sintaks
nama_tabel WHERE kolom=isi_kolom.
50
umum:
DELETE
FROM