API dan Networking


1. πŸ“– Pengertian API dan Networking

https://images.openai.com/static-rsc-4/9tRVy5WFjZ0I_sOHo5TkEhgFBJn_PwTML5V0yx1TOPQbXbDBsrIoNJpNpVr6WRSng8cWol2kHjUavdrhTs0tDgdSDbMtKYDl-S4QhVUsKNbekGyfTatl-fqmbqjliIgqMwOqmnO6qmMBojIuxqfh16ZKRBLAEnkwhKUw_uwWcGDDb6Y82QJxqVC8mQ2tY_MD?purpose=fullsize
https://images.openai.com/static-rsc-4/IUaBXQmCfmizP-ANa3QDzf4K5DNP7sxvGIkqQjkQs9DS_qaP9G39Udj2fUsUIJZmQ-zAtkHz8eMITn0Zgn70juxIuedBlXwo3_aLPWN6vOmmozkqDYtBnJi8f3S85zjD-yoGBLaRz7XocfQFzaHPkK6aPBUHh83JXEFw5H5Ge9FHHH2fGKnn59HeMlE3uKid?purpose=fullsize
https://images.openai.com/static-rsc-4/0BLVmfNf7tolIzCgZtljXFAFGyrq-DDBfowfKTj8lzSi2eg3MbTV5K7TqIijeIAlF93_4pC5dC5tEbbUjF-dksUML7T5rRaH1vU20kEegVqHpC___6HeBwJSYq5FsVmyof5aGeLuQPyfbgzps7dWiFDbJ53FQ5Wf04stguNwEEiZ6DgutsLIUhxNKtEXwgCx?purpose=fullsize

7

πŸ” Penjelasan

  • API (Application Programming Interface) adalah perantara yang memungkinkan aplikasi berkomunikasi dengan sistem lain.
  • Networking adalah proses pertukaran data melalui jaringan (internet).

🧠 Narasi

Dalam aplikasi mobile modern, hampir semua fitur memerlukan koneksi internet, seperti login, mengambil data produk, atau mengirim pesan. API menjadi jembatan antara aplikasi mobile dan server backend.


2. πŸ—οΈ Arsitektur Client-Server

https://images.openai.com/static-rsc-4/J-9lZsNR5Egi6If8gI5bo1PjyhwZsF3pGWaNlN37bPgdjp9TS0nHFnNMkQj2GdSGO5TUI8HJZkVD0enaXVID3Zwjeqq_YVvP4tCYRzWTiqev-4nGRHdcGkDSvm9Nm5KRqYSET7lXZIImMNMj7crBEbXJyvkCRbHBBt4IYa50Ivk3B5JppaWWJgUxRpiETPxq?purpose=fullsize
https://images.openai.com/static-rsc-4/PksED0sAPwib4r1sZbb6cc4KM6O3XvDsstXUlcLZbPSa_CQF2Kz8o0thGbggtkZg4Vlm33x6Lh3vn4FhFKKGYB4e9rTHLqvdHeUo-6HF8NnMXONSBy_CM6ds2XT_J6vWbmwj4-ZSlJan9Pq_XdX6YFDwaLsiRrwmQt--jNo2KBszRNlDdc2ONx94DpATdxeF?purpose=fullsize
https://images.openai.com/static-rsc-4/gSu0ybQiJ4A1wedN3YVpZ7jnQ2NU3ityYm2h_27Nu5Y8lKdwDvZjASjOjjvl5GbxbM-TSiEiCV7Tu2zGDKmw_sfnFVDRdOIG6WCpGAOC1Fhi6pHrUJwRvx_f1rqBlwAguabxHprvLdMYedVtSktiJKQGbanMzIiR1vjRJicWWlS48w76n6LV4da9tbkyLOLA?purpose=fullsize

8

πŸ” Komponen

  • Client (Mobile App) β†’ aplikasi pengguna
  • Server (Backend) β†’ pengolah data
  • Database β†’ penyimpanan data

🧠 Narasi

Aplikasi mobile bertindak sebagai client yang mengirim request ke server, lalu server mengirim response berupa data.


3. πŸ”„ Konsep REST API

https://images.openai.com/static-rsc-4/kYA0MRG5ELAXKIyiujbs9HaMT5mm_EKYVeyUwSazn_LEBCAeCmx-IcxkucdgBh7Zwvc2a_ibv52W_I8FffJPELcnWBbyY15Fqjv46OlU7RsFYFIllbrpO6K8xJfGRwJjyjS0JWkSU86ZsM_T0Y8IW4kfZ5GZx78YKDx1FVb-SpmxjMySYU752NKA3D37uaTg?purpose=fullsize
https://images.openai.com/static-rsc-4/rAQRo3C6_LSy3udaxd2Ever5uGumwwvClTlE9MMF2qqR3xGHWSevzNX_8Wb0FJGuRxIxy2Euai70mL7Ut5_4L9AWUZPtN75SriHqsCtzXjcFJdZV3e8ScK4-8h6CE5IS_D0e3tHVK61gpcInWozGC6fVIo1mBM7z6m50kt_AjPouy6B8yfoBgH-78ZMQRuzc?purpose=fullsize
https://images.openai.com/static-rsc-4/FTGQ159a36NEzqhDOYUYxz9J1UKSNwUeQY7GTIGmO_mGvNUxe7xoVeVffqyUOCbEBXBmpThQy3vCz62u7CTZdjWnkNsSKAlSh_DyKFqY8dwmQ8wfHLo6ezejpFQ2zMWSLbvI2LW1dm5EyOLX6scNaUuHhve1sWpOlkmw9W0SuWMNsDpX53XNIedynOvr_usL?purpose=fullsize

8

πŸ” Penjelasan

REST API adalah arsitektur API berbasis HTTP yang menggunakan URL untuk mengakses resource.

πŸ“Œ Contoh Endpoint

https://api.example.com/users

🧠 Narasi

REST API menjadi standar dalam pengembangan aplikasi karena sederhana dan mudah digunakan.


4. 🌍 HTTP Method

https://images.openai.com/static-rsc-4/9tRVy5WFjZ0I_sOHo5TkEhgFBJn_PwTML5V0yx1TOPQbXbDBsrIoNJpNpVr6WRSng8cWol2kHjUavdrhTs0tDgdSDbMtKYDl-S4QhVUsKNbekGyfTatl-fqmbqjliIgqMwOqmnO6qmMBojIuxqfh16ZKRBLAEnkwhKUw_uwWcGDDb6Y82QJxqVC8mQ2tY_MD?purpose=fullsize
https://images.openai.com/static-rsc-4/OkQflVVh3iOFYoCzw1FH4BMTvavFRMnHV6kq02kr-blt0CMOba6mH2ZRRYq_a8zWubyQjCQNZvKFxkLBbzDp5DSZ1tYlqgb-V1-BG2AvVKZZ_1YJXTyt8NgVk_V1qN9IWhdGtPT0PXo0VbpX9X4duWuuYs7c54xIAV2kvYjBNg9NXyHCQuxs9eElCgSrQbDi?purpose=fullsize
https://images.openai.com/static-rsc-4/kYA0MRG5ELAXKIyiujbs9HaMT5mm_EKYVeyUwSazn_LEBCAeCmx-IcxkucdgBh7Zwvc2a_ibv52W_I8FffJPELcnWBbyY15Fqjv46OlU7RsFYFIllbrpO6K8xJfGRwJjyjS0JWkSU86ZsM_T0Y8IW4kfZ5GZx78YKDx1FVb-SpmxjMySYU752NKA3D37uaTg?purpose=fullsize

7

πŸ“Š Tabel HTTP Method

MethodFungsi
GETMengambil data
POSTMengirim data
PUTUpdate data
DELETEHapus data

🧠 Narasi

HTTP method menentukan jenis operasi yang dilakukan pada server.


5. πŸ“¦ Format Data JSON

https://images.openai.com/static-rsc-4/TFOInUipWyJ81rjyUhA6hdNlEZWgiPFyFHn8dt-eLHMxVcdktxt7ukcR-ZRGNJgWObYUHzXLUzGX1_B2IKSACUQxStWw98MrIaHvNBXR2rhnxaC9Q1-pn_MWAXRqkEd_-YxSht466yi76VPcKsYdo4HjmbSJwHYqA3GXmhMhyIp67lFvdse8nWfKbnjuxnjk?purpose=fullsize
https://images.openai.com/static-rsc-4/vJsskaKgVgPBL9A5WDMQ_bnr5rY1WNQV5-Gc5JwZT9L3ajgTuwQNklPXlOkHCqqWONspvU6Uusyo0geQ2px8BY_oo8RVX5Tkz_6SIhtm17q3RSGQI1O2I7Sniln5iGL2VJZxkG-Y8wG5gVpLCOhXeSiZ-SW-QWMlhhj_Ov9i2BUUYDJZ7aZyTqESPuU4VG-2?purpose=fullsize
https://images.openai.com/static-rsc-4/GFPWUWGjSms0XJtR5wSus0kX-b8hISELH1_TkeIZB5Sg-Jt8wYQ8_2vTSXMsd1VRFtQzS1Kwdo0znaEq_xMA-RYFiezcvisycl-3cbEfk-DXFqbcNwadg1iZDPi2JHjvX20HLoVuyZfsCpgRe4Yjqd_t5X19l6pJZO_EjfrZ4u1-klPothpGCzkIdJd9yViL?purpose=fullsize

6

πŸ” Contoh JSON

{
"nama": "Budi",
"umur": 20
}

🧠 Narasi

JSON adalah format data ringan yang mudah dibaca dan digunakan dalam komunikasi API.


6. πŸ”— Proses Request dan Response

https://images.openai.com/static-rsc-4/w1ejXRhF5n9fPal56C6GPmS5Mk9WRLbq8fOCCCpYE5faixCtDWn5sLuwekALWl1HabRajj5EKUzqbWzfBbzmb4YoaoliBQ1rXRwNVYaYLucvXf3Bqgbc8t3yOIg_z2W3P4smY8i17tPp0YewegSucJLB4HeL-hSW8Vp4OfgSlFDmfsx_7YyqzYWArxnBVUaN?purpose=fullsize
https://images.openai.com/static-rsc-4/-Ed86bHSRbUjyNBIeD-1f8AaN41x6sHzvfcnCuntvjHL-EZLFpoaP4TgvGuUBDTl_I3Ir-LKtbTnbeipZE0wyn9eIP3F4e254YMAmeL2jYq9AHrHd_LmIdCgpDlxS8DkRJgiuE0if3jy9_yV6qdr_0ZsvL0a2fmsRNxFXxIsrFJY1-NvDO_L8HqCro6lEjZD?purpose=fullsize
https://images.openai.com/static-rsc-4/ed2CbmFsJH6Gh9y5W3jPYTMovpfweb4PV_PS5wuWDedPAHUOqEevpJlmZQzBh0ppFCu3sXC3g2lZnizD65xdMcCsHPHyDU8TqsG7AFZ-ie2z62b4Af0MkcF_cGrREBWu9bjBTuRp0CyOEwP9ueNqAUFdcL5tfU9Z_pAVGSL7fn38a3f14MGZdrMYD2TsEE0g?purpose=fullsize

7

πŸ” Alur

  1. Client mengirim request
  2. Server memproses
  3. Server mengirim response
  4. Client menampilkan data

🧠 Narasi

Proses ini terjadi setiap kali aplikasi berinteraksi dengan server.


7. πŸ› οΈ Library Networking (Retrofit & Volley)

https://images.openai.com/static-rsc-4/fJv4k5xj59cyjdDH-r_CXRFuaBqLQlYmkx1HvJDi3SKgEbQvQQszDagPaLXXADNHPfeqsxNlaqllxEBCsIM63H5HREpWwH9hNWMl-d-fXVO_fN-a0PXq7Bh7LQACd1Z7Lfos7jpzsXF6D1uHbD6iLezVhKI78FwTxkNz6CnSesO1Vrf9-9BhegK51p-zoouc?purpose=fullsize
https://images.openai.com/static-rsc-4/n-ootaYkT71JGvEooq8OZalfBg6Ey5KqejdmnvhSvY8DwpnIz5wrYsFDuNjHAU7zQ_YmyaUB49UUW2WshZzTgZOf7eK1_P5kf8JUIF1-frEsw_yIEjMowr95l75LFFmFFLam5E6ka1D45wwDC_1mk78A4Shp9sK2TdhJ2ewR0Wnj7tTDZeCMNZODgY8xrh1Q?purpose=fullsize
https://images.openai.com/static-rsc-4/pV0UNCsGzbW5hu2iuqx_ZUoqT0IW1Myo9mFLqyKJtoJJqzo2hOEXxqxI0Y52o-i65uHEDwGJzUmuBU1SBxTzf8QLvyCQyVwLLO3n5Ydl2fjTUTZwmu5B7Kc_lWTpCKgKiyz2TG-hXAjDMvXz4F-tBFTThPQy432hW_ZbCbf7W_WQjsEwyhwG_lsJKH65Y6iD?purpose=fullsize

6

πŸ” Library Populer

  • Retrofit β†’ modern dan mudah digunakan
  • Volley β†’ ringan dan cepat

πŸ“Œ Contoh Retrofit

@GET("users")
suspend fun getUsers(): List<User>

🧠 Narasi

Library membantu menyederhanakan proses networking sehingga pengembang tidak perlu menulis kode dari nol.


8. ⚑ Asynchronous Programming

https://images.openai.com/static-rsc-4/k0sR679dVtSZQd2N6fp8ze7-rFJV8dwSdtGwv2fYv2RcBKosCFA5ojbcu0HDdMVNUdr8dj3grtYD4yjH4Gl8mNYFcgNlohBODdWHcVEi395ogi26vlS13SflHV35r3cUhgp_Zq-d1G5Bx_3kpPM9n9ui4DhMxKhTqffJ_rndsbZ-VYu8Qf6JP8fl-xsi4zzx?purpose=fullsize
https://images.openai.com/static-rsc-4/N0T6ezsuMh9-pwSBCY1APWAW7Zhn1joatH83j8Wk6g8cpZEvgnO55sJuXhY-vmvjqO_S1fntqwElwjGzJLW6EifUglD0KLNDvu7KRKtumz-M740a-CAGLqCnr0tu742YCTbOM0M22cM-5R6Yx7nZk9bI9WmSSWkcA6MmYHmygiWEa3YTkR84-vQOLbR9m-wk?purpose=fullsize
https://images.openai.com/static-rsc-4/Xr0qzSC5oddnMqTks8H9a2ACLtZJwqiuFiFxjdsGgmOddp9D_x6qH_asv_DHsqGsZOz5XHZ3xRKVesYQwJ3_CxUlU4AFvY4BlULJYwxAzQziB6GxHFqz2tlRDh53vK636HGqGGnlRM9j9chfg9brkcDJa8Zr60F0Jh1nbkWFROWsSgghscNrFkx-ikN_jNib?purpose=fullsize

7

πŸ” Penjelasan

Networking harus dilakukan secara asynchronous agar tidak mengganggu UI.

🧠 Narasi

Jika request dilakukan di main thread, aplikasi bisa freeze. Oleh karena itu digunakan coroutine atau thread.


9. ❗ Error Handling dalam Networking

https://images.openai.com/static-rsc-4/JEvX0wG3IUsDHXJZvyruUXalbzwVWl2vEvPxaJpoKSh6Fmmr1tJpsJ68OOF7Zt8M1FbbI8Kivf7Xhx2tsLVdkpTPtREjK0qmoTlrYNsrDQvg-BgMWLL6lFfVP5934zqt5IVRZQ-HON1aAMavxgxc3kDMI2qCY1qGH8q2LV-TqIHC5woJMVZ3z8qxM4I2Rgkn?purpose=fullsize
https://images.openai.com/static-rsc-4/MINGMrSvQswFGEp__D7vx_VMp7fhQaE50Uq4tGDDsO1IcGHAooN5v_RKRRuNv3m88jF5VdYVa930rZIj13hyPPr8SW4Z3-TNbgs39oyjlIg4Hm1L2GJ63scRyf0GifYS5IWp6qVNczXcFNdptP5r-lC8j4AVsfBQrvdOuXvTwylzrDooEXWIyriXPRj0-XT_?purpose=fullsize
https://images.openai.com/static-rsc-4/9C2oY2ZzIn6cOlkE_9tOoVnRgAm-e9bYCvkmx6uB4_L0W2jxxFQUr17I2t-Nz6N6Wl268mIg8oqzYF3Bq98OHAJn-3qKoG-Gt6RR8kqahDCALQMOA-H6c51M_oTIOEk76DnfZvXbUMXolUpRJKwXmYW3TTP3fI64EM2elyi4Syyn7IcnoM9zJong_5pkeSbG?purpose=fullsize

6

πŸ” Kode Error

KodeArti
200Sukses
404Tidak ditemukan
500Server error

🧠 Narasi

Penanganan error penting agar aplikasi tetap stabil saat terjadi masalah jaringan.


10. πŸ” Keamanan API

https://images.openai.com/static-rsc-4/EjPB9UIedZ5uuXqGoxlUhRBcdLPq_39gZu-Wo_Zx46whuv2c1-N3cCOXzRgadjYY1VL-l8ZaPxIGR86q2gic96xn--8_8bPnYBr7OBTIO8YVDJY8W0cr-YrEmJwBlWwFf40Xg4KUWYqZKpG3EBab8TYCQY8P5k2k-btUNcY7h8iKslHqna_3Q59QvdmcyRLD?purpose=fullsize
https://images.openai.com/static-rsc-4/5r6M6xPBRHMFAdJdM5lTii8TtoaTo7_NRAQfA7lK1XMw8TRBdieUV3BpqCfokQayt9bjyCUuey6uu9F0HhkG9TTA1Ti6xRbkpwEkUrC9xduWdN5bYzyjV4eUJvowXt93JVJHbPobEGRxZU_hSy2b9khiEb4LaXIYUKq0w3xxDaGDzWfDAaAkCuAZHntY2R-N?purpose=fullsize
https://images.openai.com/static-rsc-4/gc40fNWF9lJF2_RafZY1k_9oY8_qjCUtIoyLA4w73153QDeOItdUaZURXzN9hPQCeBbw3JTBFSSe4cL5T0xmbwrS9Obo8vIUsgVz-cLX1uEwV7gbNRLey_rJ553tftD9auWCARjKiE_II6fQ9Nnjx57PRwXZ3kqAy4Bk6TsJwm3Du1Y1VeAQNGcZplVV4koU?purpose=fullsize

7

πŸ” Aspek Keamanan

  • HTTPS
  • Token Authentication (JWT)
  • API Key

🧠 Narasi

Keamanan penting untuk melindungi data pengguna dari akses tidak sah.


11. ⚠️ Permasalahan Umum Networking

https://images.openai.com/static-rsc-4/xXJ7LMgQKnwTfSEw46Sr9dN1NSWKtJPSUhmy8JRPT_oiw3XRd4idy_fPU6cAd3lfZVoSozRB8CrysdxiIhfw9_hbCSxZEbBC3YARGq4-D6njy4DmdIS6OLg0sd-gx2q7PUdReoKR1bSqGL6VwB8G2FsqCw1D8w6VYVGG_vp6dDpd6YwgcC_xQ0v7qvboZ2XY?purpose=fullsize
https://images.openai.com/static-rsc-4/3x3VdIv3tvpVuE5S73kvqil_qtGnwRNrKFwoAKq0rs3ROXNCvQN1AVvLRUuNqK94SNDnB77XGxYKHKcbjEjDkTFp_oGxWmzxDMXNtOD_7ox_5N1o7kTKaXDWuCBcGnHEKzZyyEWYBgCwrbUQJvxtywyJTmX8-YjFwgk6z2C2q4zyAAO_Hx74KabonoKbr2bR?purpose=fullsize
https://images.openai.com/static-rsc-4/S3-HLsBI3aCptibXpEP8MqXpdBH-iaOAVvUMw_CNbCWRc80v-Cv7eMLWBvhleVmiL35EnO0X_b3czjYiZk4NoUnxiX2YAouqezi-l3F7A7CDjUtBgcEHC0iSVAWT52wy975A1CGRkOEoD8YJ34w7NHHLXLQAOoCq4hTNoky3L2e4m3G8EHtlLoaPBILc2TUp?purpose=fullsize

7

πŸ” Masalah

  • Koneksi lambat
  • Timeout
  • Parsing error
  • Tidak ada internet

🧠 Narasi

Aplikasi harus mampu menangani kondisi jaringan yang tidak stabil.


12. πŸ’‘ Best Practice

πŸ” Tips

  • Gunakan Retrofit + Coroutine
  • Tampilkan loading indicator
  • Gunakan caching
  • Handle error dengan baik

🧠 Narasi

Best practice membantu meningkatkan performa dan pengalaman pengguna.


πŸ“Œ Kesimpulan

API dan Networking adalah bagian penting dalam aplikasi mobile modern. Dengan memahami konsep REST API, HTTP, JSON, serta penggunaan library seperti Retrofit, mahasiswa dapat membangun aplikasi yang terhubung dengan server secara efisien dan aman.


🎯 Latihan / Tugas

  1. Buat request GET ke API publik
  2. Tampilkan data JSON ke RecyclerView
  3. Tangani error jaringan
  4. Tambahkan loading indicator