{"id":24,"date":"2026-10-04T11:32:01","date_gmt":"2026-10-04T11:32:01","guid":{"rendered":"https:\/\/24080960029.tiawhizz.my.id\/?page_id=24"},"modified":"2026-10-04T11:32:01","modified_gmt":"2026-10-04T11:32:01","slug":"arsitektur","status":"publish","type":"page","link":"https:\/\/24080960029.tiawhizz.my.id\/?page_id=24","title":{"rendered":"Arsitektur"},"content":{"rendered":"\n<h2>Arsitektur Aplikasi<\/h2>\n<p>Garap memakai arsitektur <strong>client\u2013server<\/strong> berlapis:<\/p>\n<ol>\n<li><strong>Lapisan Pengguna (Client):<\/strong> aplikasi hybrid Flutter untuk Klien dan Mahasiswa, serta dashboard web untuk Admin.<\/li>\n<li><strong>Lapisan Layanan (Backend\/API):<\/strong> menjalankan logika bisnis dan menghubungkan aplikasi dengan database dan layanan pihak ketiga.<\/li>\n<li><strong>Lapisan Data:<\/strong> database dan penyimpanan file.<\/li>\n<li><strong>Layanan Eksternal:<\/strong> pembayaran dan notifikasi.<\/li>\n<\/ol>\n<h3>Diagram Arsitektur<\/h3>\n<p><img decoding=\"async\" src=\"https:\/\/24080960029.tiawhizz.my.id\/wp-content\/themes\/garap\/assets\/arsitektur-garap.png\" alt=\"Arsitektur Aplikasi Garap\"><\/p>\n<h3>Teknologi<\/h3>\n<table>\n<thead>\n<tr>\n<th>Bagian<\/th>\n<th>Teknologi<\/th>\n<th>Alasan<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Aplikasi<\/td>\n<td>Flutter (Dart)<\/td>\n<td>Satu kode untuk Android dan iOS<\/td>\n<\/tr>\n<tr>\n<td>Backend<\/td>\n<td>Node.js (REST API)<\/td>\n<td>Ringan, banyak dokumentasi<\/td>\n<\/tr>\n<tr>\n<td>Database<\/td>\n<td>PostgreSQL<\/td>\n<td>Cocok untuk data relasional (pengguna, tugas, transaksi)<\/td>\n<\/tr>\n<tr>\n<td>Penyimpanan file<\/td>\n<td>Cloud storage<\/td>\n<td>Menyimpan hasil kerja dan portofolio<\/td>\n<\/tr>\n<tr>\n<td>Pembayaran<\/td>\n<td>Midtrans atau Xendit<\/td>\n<td>Mendukung QRIS, e-wallet, dan transfer bank<\/td>\n<\/tr>\n<tr>\n<td>Notifikasi<\/td>\n<td>Firebase Cloud Messaging<\/td>\n<td>Gratis dan andal<\/td>\n<\/tr>\n<tr>\n<td>Chat<\/td>\n<td>WebSocket atau Firebase<\/td>\n<td>Pesan waktu nyata<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Alur data singkat<\/h3>\n<p>Klien memasang tugas \u2192 API menyimpan ke database \u2192 Mahasiswa menerima notifikasi \u2192 penawaran dikirim \u2192 Klien memilih dan membayar \u2192 payment gateway menahan dana \u2192 Mahasiswa mengunggah hasil \u2192 Klien menyetujui \u2192 dana diteruskan ke dompet Mahasiswa \u2192 rating dan portofolio diperbarui.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Arsitektur Aplikasi Garap memakai arsitektur client\u2013server berlapis: Lapisan Pengguna (Client): aplikasi hybrid Flutter untuk Klien dan Mahasiswa, serta dashboard web untuk Admin. Lapisan Layanan (Backend\/API): menjalankan logika bisnis dan menghubungkan aplikasi dengan database dan layanan pihak ketiga. Lapisan Data: database dan penyimpanan file. Layanan Eksternal: pembayaran dan notifikasi. Diagram Arsitektur Teknologi Bagian Teknologi Alasan Aplikasi [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-24","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/24080960029.tiawhizz.my.id\/index.php?rest_route=\/wp\/v2\/pages\/24","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/24080960029.tiawhizz.my.id\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/24080960029.tiawhizz.my.id\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/24080960029.tiawhizz.my.id\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/24080960029.tiawhizz.my.id\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=24"}],"version-history":[{"count":0,"href":"https:\/\/24080960029.tiawhizz.my.id\/index.php?rest_route=\/wp\/v2\/pages\/24\/revisions"}],"wp:attachment":[{"href":"https:\/\/24080960029.tiawhizz.my.id\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=24"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}