Memahami Layer Arsitektur

Layer Arsitektur sering digunakan dalam beragam aplikasi dan cukup dikenal oleh para software engineer.  Layer Arsitektur biasa digunakan oleh para software engineer untuk mengembangkan aplikasi sederhana pada tahap awal untuk memvalidasi fitur pada aplikasi tersebut. Layer Arsitektur menjadi pilihan karena beberapa keunggulannya yaitu sederhana untuk diimplementasikan dan mudahnya dalam proses testing.

Apa itu Layer Arsitektur?

Layer Arsitektur adalah pola arsitektur yang terdiri dari beberapa lapisan dan memiliki masing-masing lapisan memiliki peranan masing-masing dalam aplikasi (contoh: presentation logic atau business logic).

Komponen Layer Arsitektur

Layer Arsitektur tidak mengharuskan memiliki jumlah layer dalam aplikasi, tetapi biasanya aplikasi memiliki 4 layer yaitu: presentation, business, persistence, dan database.

Layer arsitektur

Setiap layer memiliki peran dan tanggung jawab masing-masing dalam aplikasi. Contoh:

  • Presentation Layer: Menampilkan user interface (UI) serta menangani interaksi antara user dan aplikasi. (Cth: Form dan menu)
  • Business Layer: Menangani proses bisnis tertentu sesuai permintaan dari user. (Cth: Jika ada pembelian, kirim email ke pelanggan, dan pengurangan stok di gudang)
  • Persistence Layer: Berisi program utama, definisi kode, dan fungsi dasar aplikasi. (Cth: Fungsi mengambil profil pelanggan).
  • Database Layer: Mengambil dan menyimpan data ke database.

Konsep Layer Arsitektur

Pada setiap layer harus closed layer, closed layer maksudnya adalah setiap request dari user harus melewati dari satu layer ke layer berikutnya, contohnya:

Closed layer

Setiap request dari presentation layer harus melewati business layer dan persistence layer sebelum akhirnya ke database layer.

Kenapa tidak langsung dari presentaion layer ke database layer? bukannya ini lebih cepat.

Jika dilakukan ini tidak ada yang namanya isolasi layer (layer of isolation). Isolasi bertujuan jika terjadi perubahan pada layer tertentu tidak akan berdampak besar ke berbagai component dalam aplikasi. Contohnya:

Beberapa form perubahan stok gudang yang mengeksekusi ke database langsung, kemudian suatu hari kita perlu melakukan upgrade pada database tersebut seperti mengubah schema, maka akan berdampak perlu melakukan perubahan pada form-form perubahan stok gudang tadi.

Thank you!