MVC memisahkan logika penanganan tampilan, pengontrolan, dan model agar perangkat lunak mudah dirawat dan dikembangkan. AJAX memungkinkan pertukaran data di belakang layar tanpa memuat ulang halaman. WebSocket memungkinkan komunikasi dua arah antara klien dan server.
2. MVC merupakan singakatan dari model view controller,
adapun Pengertian MVC adalah sebuah bentuk pemrograman yang
memisahkan berdasarkan logika penanganan tampilan, logika
pengontrolan dan logika model.
MVC bertujuan supaya pada pengembangan perangkat lunak yang
besar mudah untuk dilakukan maintenance (perbaikan/penambahan
atau pengurangan kode).
Aplikasi yang dibangun menggunakan metode MVC maka akan lebih
mudah untuk dirawat dan dikembangkan. Mudah dirawat dan
dikembangkan karena kode program dikelompokan pada bagian
masing - masing sehingga lebih mudah bagi para developer untuk
menanganinya. Untuk bisa memahami metode pengembangan aplikasi
menggunakan konsep MVC diperlukan pengetahuan tentang
pemrograman berorientasi objek (Object Oriented Programming).
3. 1. Model
Model adalah bagian kode program yang menangani query atau
database. Jadi isi dari model merupakan bagian (fungsi-fungsi) yang
berhubungan langsung dengan database untuk memanipulasi data
seperti memasukkan data, pembaruan data, hapus data, dan lain-lain,
namun tidak dapat berhubungan langsung dengan bagian view.
2. View
View adalah bagian kode prgram yang mengatur tampilan
website. Pada aplikasi web bagian view biasanya berupa file template
HTML, yang diatur oleh controller. Bagian ini tidak memiliki akses
langsung terhadap bagian model namu berhubungan langsung dengan
controller. View berfungsi untuk menerima dan merepresentasikan
data kepada pengguna. Jadi bisa di katakan bahwa viiew merupakan
halaman web.
4. 3. Controller
Controller merupakan bagian yang menjembatani model dan view.
Controller berisi perintah-perintah yang berfungsi untuk memproses
suatu data dan mengirimkannya ke halaman web. Controller berfungsi
untuk menerima request dan data dari user kemudian menentukan
apa yang akan diproses oleh aplikasi.
5. CodeIgniter (CI) merupakan salah satu framework PHP yang
menggunakan konsep MVC.
Kelebihan CI :
◦ Fungsi-fungsi pendukung yang cukup lengkap.
◦ Mendukung PHP4 dan PHP5.
◦ Memakai konsep MVC (Model View Controller).
◦ Performa dalam mengeksekusi sangat cepat.
◦ Dokumentasi lengkap, friendly dan didukung oleh forum, wiki,
dan komunitas yang besar.
6. Kekurangan CI :
◦ Library/plugin/extension yang sangat terbatas. Sangat sulit untuk
mencari plugin tambahan pada CI yang terverified, karena pada
situs resminya codeigniter tidak disediakan plugin tambahan
untuk mendukung pengembangan aplikasi dengan CI.
◦ Tidak cocok digunakan pada project skala besar. karena
pengembangan aplikasi dengan framework ini sangatlah terbatas
pada fitur dasar aplikasi web. Sementara untuk project skala
besar biasanya terdapat fitur-fitur yang rumit yang librarynya
tidak disediakan di CI.
7. XML adalah bahasa markup untuk dokumen yang berisi informasi
yang terstruktur.
Informasi yang terstruktur berisi kedua isi (kata-kata, gambar, dll)
dan beberapa indikasi peran apa yang dimainkan konten (misalnya,
isi di bagian judul memiliki arti yang berbeda dari konten dalam
sebuah catatan kaki, yang berarti sesuatu yang berbeda dari konten
dalam angka caption atau konten dalam sebuah tabel database,
dll). Hampir semua dokumen memiliki beberapa struktur
(http://www.xml.com).
8. JSON (JavaScript Object Notation) adalah format pertukaran data
yang ringan, mudah dibaca dan ditulis oleh manusia, serta mudah
diterjemahkan dan dibuat (generate) oleh komputer. Format ini
dibuat berdasarkan bagian dari Bahasa Pemprograman JavaScript,
Standar ECMA-262 Edisi ke-3 - Desember 1999.
JSON adalah salah satu bahasa markup yang dapat melakukan
pertukaran data dimana JSON ini dibuat berdasarkan javascript dan
pastinya sintaknya lebih ke javascript.
9. XML :
◦ Tidak mendukung array
◦ Tag dibuat manual/dideklarasikan oleh programmer
◦ Ukuran data besar
◦ Harus menggunakan XML DOM jika ingin memetakan teks/data
◦ Dapat berpadu dengan AJAX
JSON :
◦ Mendukung array
◦ Mendukung pembuatan Object
◦ Sintak pendek
◦ Dapat berpadu dengan AJAX
◦ Akses data cepat
10. Ketika kita mengakses sebuah data dengan menggunakan xml maka
kita memerlukan yang namanya DOM XML dab DOM HTML dan
disini kita pasti membutuhkan yang namanya request dari server
dan menyebabkan si XML itu sendiri akan lambat dalam akses
sebuah data
Ketika menggunakan JSON kita hanya butuh akses melalui javascript
dan jika ingin ditampilkan hanya dengan menggunakan HTML DOM
yaitu dengan cara kita ambil data dari JSON melalui array javascript
lalu kita set datanya ke HTML maka data akan tampil.
11. AJAX (Asynchronous JavaScript and XMLHTTP) adalah suatu teknik
pemrograman berbasis web untuk menciptakan aplikasi
web interaktif. Tujuannya adalah untuk memindahkan sebagian
besar interaksi pada komputer web surfer, melakukan pertukaran
data dengan server di belakang layar, sehingga halaman web tidak
harus dibaca ulang secara keseluruhan setiap kali seorang
pengguna melakukan perubahan. Hal ini akan meningkatkan
interaktivitas, kecepatan, dan usability.
12. Pada aplikasi Javascript konvensional jika kita menginginkan data
dari server kita menggunakan Form dan memanggilnya dengan
method GET atau POST. Sehingga pengunjung perlu mengklik
tombol dan kemudian halaman akan kerefresh untuk menampilkan
hasil dari request tersebut. Kalau dengan Ajax, Javascript
berkomunikasi langsung ke server dengan sebuah fungsi yang
disebut dengan XMLHttpRequest suatu halaman web dapat
direquest dari server dan diterima hasilnya tanpa perlu terjadi
refresh pada halaman web tersebut.
13. CSRF (Cross-site Request Forgery) merupakan suatu teknik hacking
untuk mendapatkan atau bahkan menguasai suatu account dengan
cara menyerang web yang dieksekusi atas wewenang korban, tanpa
dikehendakinya. CSRF merupakan teknik pemalsuan permintaan
yang berasal dari halaman web atau situs yang berbeda, saat
halaman situs dieksekusi oleh korban maka akan muncul account
baru yang tanpa dikehendaki si admin.
SRF merupakan pemalsuan request yang berasal dari site yang
berbeda, tetapi dari sisi client tidak mengubah alamat IP karena
memang dieksekusi oleh korban. Serangan CSRF dapat ditunjukkan
seperti serangan pada diagram dibawah.
14. Penyerang mengirimkan link atau halaman berisi request
tersembunyi pada pengguna (korban), yang dieksekusi oleh
penggunan tersebut ke website target. Dalam menyusun serangan,
penyusun akan mempelajari terlebih dahulu kelemahan-kelemahan
website target yang dapat dimanfaatkan dengan teknik CSRF.
Website yang menyimpan cookies sehingga mengizinkan pengguna
untuk datang kembali tanpa mengetikkan username dan password,
akan menarik perhatian menyerang untuk lebih mengekplorasi
fitur-fitur yang terdapat pada website setelah login.
15. WebSocket merupakan sebuah protokol komunikasi dua arah yang
dapat digunakan oleh browser. Jika pada AJAX kita hanya dapat
melakukan komunikasi satu arah dengan mengirimkan request
kepada server dan menunggu balasannya, maka menggunakan
WebSocket kita tidak hanya dapat mengirimkan request kepada
server, tetapi juga menerima data dari server tanpa harus
mengirimkan request terlebih dahulu. Hal ini berarti ketika
menggunakan WebSocket pengguna harus terus menerus
terkoneksi dengan server, dan kita memerlukan sebuah server
khusus untuk dapat menjalankan aplikasi WebSocket dengan benar.
16. Latar belakang terciptanya websocket adalah permintaan beberapa
client yang mengharuskan developer bisa membuat aplikasi
berbasis web secara real time atau real-time apps. Aplikasi real
time adalah dimana ketika ada perubahan data, maka saat itu juga
website di browser klien juga ada perubahan atau setidaknya
muncul notifikasi.
WebSocket adalah standar baru untuk komunikasi realtime pada
Web dan aplikasi mobile. WebSocket dirancang untuk diterapkan di
browser web dan server web, tetapi dapat digunakan oleh aplikasi
client atau server. WebSocket adalah protokol yang menyediakan
saluran komunikasi full-duplex melalui koneksi TCP tunggal.
17. Manfaat Websocket
◦ Websocket memungkinkan server untuk mendorong data kepada
klien yang terhubung
◦ Mengurangi traffic atau lalu lintas jaringan yang tidak perlu dan
latency menggunakan full duplex melalui koneksi tunggal.
◦ Streaming melalui proxy dan firewall, mendukung komunikasi
simultan hulu dan hilir.
◦ Kompatibel dengan pre-WebSocket dunia dengan cara beralih
dari koneksi HTTP ke WebSockets.