5. Arsitektur Web
• Pengguna memasukkan URL ke dalam bilah alamat (address bar) pada web browser. URL ini
adalah alamat unik yang mengarahkan browser untuk mencari dan mengambil sumber daya
tertentu di internet, seperti halaman web atau berkas.
6. Arsitektur Web
• Browser mengirimkan permintaan HTTP ke server yang ditentukan dalam URL. Permintaan ini
berisi informasi tentang sumber daya yang diinginkan, seperti halaman web atau berkas lainnya.
7. Arsitektur Web
• Request data adalah proses di mana web server meminta informasi atau data tertentu dari
database server. Permintaan data ini dilakukan oleh web server dengan mengirimkan kueri atau
permintaan ke database server.
8. Arsitektur Web
• Data adalah informasi yang diperoleh dari database server sebagai respons terhadap permintaan
data yang dilakukan oleh web server. Setelah database server menerima kueri dari web server, ia
akan memproses kueri tersebut dan mengambil data yang sesuai dari tabel atau basis data.
9. Arsitektur Web
• Setelah server memproses permintaan, ia mengirimkan respons HTTP kembali ke browser.
Respons ini berisi data yang diperlukan untuk menampilkan halaman web yang diminta, termasuk
HTML, CSS, JavaScript, gambar, atau data lainnya.
10. Arsitektur Web
• Setelah browser memproses data, hasil akhirnya ditampilkan kepada pengguna melalui layar
perangkat. Ini adalah halaman web yang siap dilihat dan diinteraksikan oleh pengguna.
11. Client – Server Architecture
1. Arsitektur yang menjelaskan pemisahan kerja antara penyedia informasi/layanan (server)
dengan peminta informasi (client)
2. Seringkali client dan server beroperasi dalam Jaringan komputer dengan client dan server ada di
mesin/hardware yang berbeda
3. Client tidak membagi informasi namun meminta informasi dari server
4. Mesin server biasanya adalah host dengan performansi tinggi yang menjalankan satu atau lebih
program server. server membagi informasi ke client
5. Client menginisialisasi sesi komunikasi dengan server, dan server menunggu (await/listen) pada
request yang datang
12. 2 Tier
• Client: Ini adalah bagian antarmuka
pengguna (user interface) yang berjalan di
perangkat pengguna. Komponen ini
bertanggung jawab untuk menampilkan,
menerima, dan menyediakan tampilan
antarmuka pengguna.
• Server: Ini adalah bagian dari sistem yang
berjalan di mesin server atau infrastruktur
yang terpusat. Server mengelola logika bisnis
dan data yang digunakan oleh aplikasi. Ini
adalah tempat database disimpan dan
diproses.
13. 3 Tier
• Presentation Layer yang bertanggung jawab
untuk antarmuka pengguna dan tampilan. Ini
berada di sisi client.
• Business Logic Tier yang menangani logika
bisnis, pemrosesan, dan kontrol aplikasi. Tier
ini sering disebut juga sebagai application
server.
• Data Management Tier bertugas untuk
menyimpan dan mengelola data yang
digunakan oleh aplikasi. Tier ini sering
disebut juga sebagai database server.
14. Web Server
1. Web Server bertanggung jawab untuk menerima request dari client kemudian merespon
request tersebut.
2. Request dari client berupa dokumen-dokumen web (web resources) seperti dokumen html,
image, dll
3. Contoh web server: Apache, IIS, Xitami
4. Saat klien (misalnya, browser web) mengirimkan permintaan untuk mengakses halaman web
atau sumber daya lainnya, web server akan menerima permintaan ini, mengambil sumber daya
yang diminta, dan mengirimkannya kembali ke klien. Selain itu, web server juga dapat
menjalankan fungsi seperti pemrosesan formulir, otentikasi pengguna, dan menyediakan
layanan web lainnya sesuai dengan konfigurasinya.
15. Web Client
1. Web client, atau lebih umum dikenal sebagai "browser," adalah program komputer yang
digunakan oleh pengguna untuk mengirimkan permintaan (request) ke web server dan
menerima serta menampilkan dokumen-dokumen web (web resources) yang diterima dari
server.
2. Browser berfungsi sebagai antarmuka antara pengguna dan konten web yang ada di internet.
3. Contoh web client atau browser yang populer termasuk Internet Explorer (IE), Mozilla Firefox,
Opera, Google Chrome, Safari, dan banyak lagi.
4. Browser menginterpretasikan kode HTML, CSS, JavaScript, dan jenis konten web lainnya untuk
menampilkan halaman web kepada pengguna dengan tampilan grafis yang interaktif.
16. HTTP
1. HTTP (HyperText Transfer Protocol) adalah sebuah protokol untuk meminta dan menjawab
antara client dan server.
2. HTTP berkomunikasi melalui TCP / IP. Klien HTTP terhubung ke server HTTP menggunakan TCP.
Setelah membuat sambungan, klien dapat mengirim pesan permintaan HTTP ke server.
3. HTTP digunakan untuk mengirimkan permintaan dari klien web (browser) ke web server,
dikembalikan ke konten web (halaman web) dari server ke klien.
4. Metode HTTP adalah tindakan yang diterapkan pada sumber daya yang diminta oleh client.
Contoh metode HTTP meliputi GET (mengambil informasi dari server), POST (mengirim data ke
server), PUT (mengganti atau memperbarui sumber daya), DELETE (menghapus sumber daya),
dan lain-lain.
18. Web Statis Web Dinamis
Pengguna hanya dapat melihat, tanpa bisa melakukan interaksi apapun.
Seperti mengisi data atau yang lain.
Pengguna dapat mengupdate informasi atau konten langsung dari website-
nya
Kebanyakan digunakan pada website company profile. Karena hanya
menampilkan informasi penting saja.
Digunakan pada banyak situs, seperti web toko online, website blog
pribadi dan masih banyak lagi.
Tidak banyak menggunakan bahasa pemrograman, hanya sebatas HTML
& CSS. Biasanya ditambah juga Javascript agar web terlihat lebih hidup.
Menggunakan bahasa pemrograman web, seperti PHP, Java, MySQL, dan
yang lain.
Waktu pembuatan web-nya relatif singkat, tergantung banyaknya halaman
yang dibuat.
Waktu pembuatan memakan waktu yang cukup lama.
File tiap halaman terpisah, sehingga apabila ingin membuat halaman baru
maka harus membuat file baru juga.
Apabila hendak membuat halaman baru, tidak perlu membuat file lagi.
Cukup buatkan saja programnya.
Informasi atau konten jarang di-update. Konten bisa di-update kapan saja.
Tidak menggunakan database, semua informasi tersimpan dalam satu file
halaman tersebut.
Menggunakan database, untuk menyimpan data-data. Sehingga ketika web
diakses, tinggal mengambil dari database tersebut.
19. Application Programming Interface
Source : https://medium.com/@singhrishabh1670/application-programming-interface-api-6f10964856cb
• API adalah antarmuka perangkat lunak yang memungkinkan dua
aplikasi untuk berkomunikasi satu sama lain.
• Dengan menggunakan API, Anda dapat mengirim permintaan untuk
mengakses data atau fungsionalitas dari aplikasi atau layanan lain,
dan kemudian menerima respons dengan informasi yang diminta.
• Ini memungkinkan berbagai aplikasi untuk berinteraksi satu sama lain
dan berbagi data tanpa harus mengetahui atau memahami secara
rinci bagaimana aplikasi lain diimplementasikan di bawahnya.
Contoh :
✓ Log-In Apps
✓ Google Maps
✓ Travel Booking
✓ E-commerce
20. Cara Kerja API
Source : https://medium.com/@singhrishabh1670/application-programming-interface-api-6f10964856cb
21. Cara Kerja API
Source : https://medium.com/@singhrishabh1670/application-programming-interface-api-6f10964856cb
• Pengguna memasukkan URL di browser, yang menghasilkan permintaan HTTP (GET, POST, PUT, DELETE, dll) ke
server.
• Permintaan HTTP dikirim melalui internet menggunakan protokol TCP/IP. Permintaan ini akan melewati berbagai
perangkat jaringan seperti router, switch, dan firewall sebelum mencapai tujuan akhir.
22. • Ketika permintaan mencapai server, API yang relevan akan menangani permintaan tersebut. API akan memproses permintaan yang
diterima dan menentukan apa yang harus dilakukan berdasarkan pada endpoint yang diminta dan data yang disertakan.
• Setelah permintaan diproses oleh API, API akan berinteraksi dengan server web untuk mendapatkan atau memperbarui data yang
diperlukan dari atau ke database. Server web bertindak sebagai perantara antara API dan database. Ini juga dapat menangani tugas-
tugas seperti autentikasi, otorisasi, dan pemrosesan permintaan tambahan sebelum atau setelah interaksi dengan database.
Cara Kerja API
23. Cara Kerja API
Source : https://medium.com/@singhrishabh1670/application-programming-interface-api-6f10964856cb
• Jika diperlukan, server web akan berkomunikasi dengan database untuk mengambil atau menyimpan data yang
diperlukan berdasarkan permintaan dari API. Ini mungkin melibatkan ekstraksi data dari tabel, melakukan operasi
CRUD (Create, Read, Update, Delete), atau menjalankan kueri kompleks tergantung pada logika bisnis yang terkait.
24. Cara Kerja API
• Web Server Response: Setelah data diproses oleh server web dan/atau database, server akan menghasilkan respons yang sesuai. Respons
ini mungkin berupa data mentah, seperti JSON atau XML, atau mungkin juga berupa halaman HTML yang siap ditampilkan kepada pengguna.
• API Response: Respons dari server web akan dikirim kembali ke API, yang kemudian akan mengemasnya dalam format yang sesuai
(misalnya, JSON) dan mengirimkannya kembali ke pengguna melalui internet.
• Web Browser Response: Akhirnya, respons dari API akan mencapai web browser pengguna, yang akan memprosesnya dan menampilkan
informasi atau menjalankan tindakan yang diperlukan, seperti menampilkan data atau memperbarui tampilan halaman.
25. Arsitektur API
Ada setidaknya tiga arsitektur yang umum digunakan untuk API. Arsitektur-arsitektur tersebut menentukan
metode bagaimana API ini dapat diakses. Berikut adalah arsitektur tersebut:
26. REST API
• REST (Representational State Transfer) adalah arsitektur berbasis web yang menggunakan protokol
HTTP untuk mentransfer data antara pengguna dan server.
• Dalam arsitektur REST, sumber daya (resource) diidentifikasi oleh URL (Uniform Resource Locator),
dan operasi yang dilakukan pada sumber daya tersebut dikirim melalui metode HTTP seperti GET, POST,
PUT, atau DELETE.
• REST menggunakan representasi data dalam format JSON (JavaScript Object Notation) atau XML
(eXtensible Markup Language).
• Prinsip pada REST yaitu : Client-Server Architecture, Statelessness, Cacheable, Layered System dan
Uniform Interface.
28. Contoh REST API
Get request:
GET https://restexample.com/users?name=John
API REST menerima parameter GET dari URI.
API REST umumnya menggunakan format data JSON. Pengguna direpresentasikan dalam JSON seperti ini:
29. REST API vs RESTful API
REST API
• Gaya arsitektur yang mendefinisikan
serangkaian batasan dan prinsip untuk
membuat layanan web.
• Rest API menekankan penggunaan metode
HTTP (seperti GET, POST, PUT, dan DELETE)
untuk melakukan operasi CRUD (Buat, Baca,
Perbarui, Hapus) pada sumber daya.
RESTful API
• Implementasi spesifik dari Rest API yang
mematuhi semua batasan dan prinsip Rest API.
30. SOAP API
• SOAP (Simple Object Access Protocol) adalah Arsitektur menggunakan protokol XML untuk pertukaran
pesan antara klien dan server.
• Dalam arsitektur SOAP, pesan dikemas dalam format XML dan dikirim melalui protokol HTTP atau
protokol lainnya seperti SMTP (Simple Mail Transfer Protocol) atau JMS (Java Message Service).
• Dalam penerapannya, SOAP secara ketat mendefinisikan bagaimana pesan harus dikirim dan apa yang
harus disertakan di dalamnya (SOAP encoding rules) sehingga membuat arsitektur SOAP menjadi lebih
aman dibandingkan dengan REST.
32. Contoh SOAP API
<soapenv:Envelope xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/>
<soapenv:Header/>
<soapenv:Body>
<ns2:UserDetailsResponse xmlns:ns2="http://www.soapexample.com/xml/users">
<ns2:User>
<ns2:name>John</ns2:name>
<ns2:age>5</ns2:age>
<ns2:address>Greenville</ns2:address>
</ns2:User>
</ns2:UserDetailsResponse>
</soapenv:Body>
</soapenv:Envelope>
Dengan menggunakan SOAP, permintaan ke API adalah permintaan HTTP POST dengan request body XML. Request body terdiri dari
sebuah envelope yang merupakan jenis pembungkus SOAP yang mengidentifikasi API yang diminta, dan sebuah body SOAP yang
memegang parameter permintaan. Dalam hal ini, body SOAP mewakili data pengguna yang diminta.
33. Kelebihan & Kekurangan
Source : https://blog.postman.com/soap-vs-rest/
REST API
Kelebihan Kelemahan
Skalabilitas Tidak cocok untuk fungsionalitas real-time
Konvensi universal Overhead signifikan dengan transfer data biner
Interoperabilitas Ketergantungan pada HTTP
Kinerja yang ditingkatkan Ketergantungan pada cache
SOAP
Kelebihan Kelemahan
Kemampuan ekstensibilitas Performa yang kurang baik
Mendukung banyak protokol Mendukung banyak protokol
Tipe data yang kuat Tipe data yang kuat
Penanganan kesalahan yang terstandarisasi -
Keamanan yang ditingkatkan -
34. Perbedaan SOAP API vs REST API
Fitur SOAP REST
Singkatan Simple Object Access Protocol Representational State Transfer
Interface Menggunakan antarmuka layanan Menggunakan URI
Jenis Protokol Gaya arsitektur
Format Data Menggunakan XML saja
Mendukung berbagai format data
(JSON, XML, teks biasa, HTML)
Keamanan Mendukung WS-Security
Dapat menggunakan protokol HTTP
yang aman (HTTPS)
Deskripsi
Biasanya menggunakan file Web
Service Description Language (WSDL)
Tidak memiliki deskripsi formal
seperti WSDL
API Memperlihatkan operasi Memperlihatkan data
Analogi
Seperti amplop, menunjukkan
struktur dan encapsulation
Seperti kartu pos, menunjukkan
sederhana dan langsung
Kebutuhan
Memerlukan lebih banyak server dan
bandwidth
Memerlukan lebih sedikit server dan
bandwidth
35. Kapan memakai SOAP atau REST API?
• REST cocok digunakan untuk membuat website maupun aplikasi smartphone. REST API
kompatibel dengan browser karena JSON digunakan sebagai format data. Pembuatan
aplikasi seluler juga lebih kompatibel dengan REST karena ukurannya yang kecil.
• SOAP akan cocok jika digunakan untuk layanan web tingkat perusahaan yang
memerlukan transaksi kompleks dan membutuhkan tingkat keamanan level tinggi.
API SOAP sangat ideal jika digunakan sebagai layanan gateway pembayaran, perangkat
lunak CRM, manajemen identitas, dan layanan keuangan.
37. Arsitektur Monolitik
• Arsitektur monolitik adalah cara pembuatan sistem yang menempatkan semua fungsi dan fitur
dalam satu aplikasi tunggal yang besar. Aplikasi ini biasanya ditulis dalam satu bahasa pemrograman,
dijalankan di satu server, dan diakses melalui satu endpoint. Arsitektur monolitik ini merupakan cara
yang paling mudah dan cepat untuk membuat sistem, karena semua komponen berada dalam satu
tempat.
• Kelebihan : lebih mudah untuk di-debug dan di-maintain karena semua komponen tersedia dalam
satu aplikasi. Selain itu, arsitektur ini juga lebih mudah untuk di-deploy karena hanya satu aplikasi yang
perlu diperhatikan.
• Kekurangan : lebih sulit untuk di-scaling secara parsial. Jika salah satu bagian dari aplikasi mengalami
masalah, maka seluruh aplikasi akan terpengaruh. Selain itu, arsitektur ini juga cenderung membuat
aplikasi menjadi kompleks dan sulit untuk dikembangkan lebih lanjut. Arsitektur monolitik juga tidak
fleksibel terhadap perubahan bisnis maupun teknologi, karena diharuskan mengubah semua atau
sebagian besar aplikasi yang sudah di implementasi.
38. Arsitektur Microservices
• Arsitektur microservices adalah model arsitektur aplikasi yang memisahkan aplikasi menjadi
beberapa komponen yang independen yang dapat di-deploy dan diubah tanpa mempengaruhi
komponen lainnya. Dalam arsitektur ini, setiap komponen aplikasi (atau “microservice”)
diimplementasikan sebagai aplikasi yang berdiri sendiri, yang dapat dikembangkan, di-deploy,
dan diubah secara independen.
• Kelebihan : lebih mudah untuk di-scaling secara parsial. Jika salah satu bagian dari aplikasi
mengalami masalah, hanya bagian tersebut yang terpengaruh, sehingga mengurangi dampak pada
seluruh sistem. Selain itu, arsitektur ini juga lebih mudah untuk dikembangkan dan diperbarui,
karena setiap komponen dapat dikembangkan dan diperbarui secara independen.
• Kekurangan : lebih sulit untuk di-debug dan di-maintain karena setiap komponen berada dalam
lingkungan yang terpisah. Komunikasi antar komponen menjadi lebih rumit, sehingga diperlukan
konfigurasi yang baik dan infrastruktur yang kuat untuk mengelola komunikasi tersebut.
39. Contoh Implementasi Microservices
Amazon
• e-commerce dengan 300 juta pelanggan aktif dan lebih dari 1,9 juta
merchant.
• Pada awalnya, Amazon beroperasi dengan arsitektur monolitik. Namun,
seiring dengan lonjakan jumlah pelanggan dan perkembangan bisnisnya,
arsitektur ini mulai menimbulkan masalah terkait pengembangan,
pemeliharaan kode, dan keterkaitan layanan.
• Akibatnya, Amazon memutuskan untuk beralih ke arsitektur microservices,
yang memungkinkan berbagai layanannya beroperasi secara independen.
• Sebagai hasilnya, Amazon sekarang memiliki tim pengembang terpisah
yang bertanggung jawab untuk mengelola fungsi-fungsi tertentu, seperti
fitur “Masukkan ke Keranjang”, penggunaan voucher, dan lain-lain.