Cara Memisahkan Business Logic

Cara Memisahkan Business Logic: Biar Kode Gak Berantakan

Pernah nggak sih kamu buka kode proyek lama, terus bingung sendiri lihat campur aduknya? Ada logika diskon, query database, sama tampilan HTML jadi satu dalam satu file. Duh, pusing! Nah, masalah ini biasanya muncul karena kita lupa memisahkan business logic dari lapisan lainnya.

Apa Itu Business Logic?

Business logic itu inti dari aplikasi. Isinya aturan-aturan spesifik yang membuat aplikasi kamu unik. Contoh: “Kalau total belanja > 100rb, dapat diskon 10%”, atau “Kalau user sudah login, baru bisa akses halaman admin”. Ini beda dengan kode yang ngurus tampilan (UI) atau ngobrol sama database.

Kenapa Harus Dipisah?

Coba bayangin kamu punya warung. Business logic-nya adalah resep dan aturan jualan. Kalau resep dicampur sama catatan stok barang dan desain plang toko, repot kan? Kalau mau ganti resep, plang ikut keubah. Sama di coding:

1. Mudah diubah – Kalau bisnis berubah (misal diskon naik jadi 15%), kamu cukup edit satu tempat.
2. Mudah dites – Logika bisnis bisa diuji tanpa perlu buka browser atau nyambung database.
3. Bisa dipakai ulang – Aturan yang sama bisa dipanggil dari aplikasi web, API, atau background job.
4. Lebih rapi – Developer lain (atau kamu sendiri 3 bulan lagi) bakal lebih paham.

Bagaimana Cara Memisahkannya?

Prinsipnya sederhana: setiap lapisan punya tanggung jawab sendiri. Biasanya kita pakai arsitektur 3 lapis:

Presentation Layer – Ngurus tampilan (HTML, React, dll). Cuma nampilin data dan nerima input user.
Business Logic Layer – Di sinilah aturan main. Nggak boleh akses database atau langsung nge-render tombol.
Data Access Layer – Ngomong sama database. Simpan, ambil, update data. Nggak tahu soal diskon atau validasi.

Contoh Sederhana (Bayangin Pake Python)

Tanpa pemisahan (ngaco):

“`python
def beli_barang(request):
harga = request.GET[‘harga’]
if harga > 100000:
diskon = 0.1
else:
diskon = 0
total = harga * (1 – diskon)
database.save(…) # langsung simpan ke DB
return render_template(‘checkout.html’, total=total)
“`

Semua jadi satu fungsi. Susah dites, susah diubah.

Dengan pemisahan (rapi):

Buat file khusus `business.py`:

“`python
def hitung_diskon(total_belanja):
if total_belanja > 100000:
return 0.1
return 0

def hitung_total(harga, diskon):
return harga * (1 – diskon)
“`

Buat file `data.py`:

“`python
def simpan_transaksi(data):
# simpan ke database
pass
“`

Buat file `views.py`:

“`python
from business import hitung_diskon, hitung_total
from data import simpan_transaksi

def beli_barang(request):
harga = int(request.GET[‘harga’])
diskon = hitung_diskon(harga)
total = hitung_total(harga, diskon)
simpan_transaksi({‘harga’: harga, ‘diskon’: diskon})
return render_template(‘checkout.html’, total=total)
“`

Nah, sekarang kalau aturan diskon berubah, cukup edit `hitung_diskon` doang. Tes juga bisa fokus ke fungsi itu tanpa perlu ribet pake request atau database.

Tips Praktis Mulai Sekarang

1. Jangan campur query SQL dalam view – Pindahkan ke file terpisah atau gunakan ORM dengan repository pattern.
2. Buat service layer – Punya satu modul khusus yang berisi fungsi-fungsi bisnis. Panggil dari mana pun.
3. Gunakan dependency injection – Misal fungsi bisnis nerima parameter objek database dari luar, bukan bikin koneksi sendiri.
4. Test dulu logikanya – Setelah dipisah, kamu bisa unit test fungsi `hitung_diskon(50000)` apakah return 0, lalu `hitung_diskon(150000)` return 0.1.

Kesimpulan

Memisahkan business logic bukan cuma soal tren atau ikut-ikutan arsitektur. Ini soal membuat kode kamu lebih siap tempur saat bisnis berkembang. Mulai dari proyek kecil sekalipun, biasakan pisahkan aturan bisnis dari yang lain. Ibarat masak, bumbu (logika) jangan dicampur sama piring saji (tampilan) atau kulkas (database). Nanti repot sendiri.

Selamat mencoba, dan semoga kode kamu makin kinclong!

Leave a Comment

PETIR800 LOGIN PETIR800 Mahjong Wins 3 Menjadi Topik Ringan Komunitas Pemain Aktivitas Media Online Kembali Membicarakan Mahjong Ways Mahjong Wins 3 Dan Tren Harian Platform Digital Forum Komunitas Modern Kembali Menyoroti Mahjong Ways Mahjong Wins 3 Menjadi Bahan Diskusi Pengguna Online Platform Digital Kembali Meramaikan Pembahasan Mahjong Ways Mahjong Wins 3 Dan Fenomena Ringan Media Modern Perhatian Komunitas Online Kini Terarah Pada Mahjong Ways Mahjong Wins 3 Menjadi Obrolan Ringan Pemain Digital Tren Platform Online Modern Kembali Ke Mahjong Ways Mahjong Wins 3 Menjadi Bagian Tren Komunitas Online Pengguna Media Sosial Menyoroti Gaya Mahjong Ways Mahjong Wins 3 Dan Percakapan Platform Digital Forum Pemain Online Kembali Membicarakan Mahjong Ways Mahjong Wins 3 Menjadi Sorotan Ringan Pengguna Modern Perkembangan Tren Pemain Digital Soal Mahjong Ways Mahjong Wins 3 Kembali Meramaikan Platform Media Online Aktivitas Komunitas Online Terkait Permainan Mahjong Ways Mahjong Wins 3 Menjadi Topik Ringan Forum Digital Pengguna Online Modern Kembali Tertarik Pada Mahjong Ways Mahjong Wins 3 Menjadi Bahan Obrolan Ringan Digital Forum Komunitas Media Online Soal Mahjong Ways Mahjong Wins 3 Dan Fenomena Platform Yang Terus Berjalan Gelombang Tren Online Kembali Meramaikan Mahjong Ways Mahjong Wins 3 Menjadi Pusat Percakapan Komunitas Pengguna Digital Kembali Menyoroti Keunikan Mahjong Ways Mahjong Wins 3 Dan Obrolan Harian Pemain Online Platform Online Kembali Membahas Perkembangan Mahjong Ways Mahjong Wins 3 Menjadi Tren Ringan Media Digital Perhatian Komunitas Online Modern Ke Mahjong Ways Mahjong Wins 3 Menjadi Fenomena Online Yang Terus Aktif Forum Modern Online Menyoroti Fitur Mahjong Ways Mahjong Wins 3 Kembali Jadi Topik Pengguna Platform Perkembangan Media Online Terkait Tren Mahjong Ways Mahjong Wins 3 Menjadi Bahan Diskusi Komunitas Digital Aktivitas Platform Online Kembali Ramai Karena Mahjong Ways Mahjong Wins 3 Dan Fenomena Ringan Pemain Modern Pengguna Komunitas Media Online Menyoroti Mahjong Ways Mahjong Wins 3 Menjadi Obrolan Ringan Platform Digital Tren Pemain Online Kembali Membicarakan Mahjong Ways Mahjong Wins 3 Menjadi Pembahasan Ringan Komunitas Modern Perhatian Media Online Kini Tertuju Pada Mahjong Ways Mahjong Wins 3 Kembali Meramaikan Percakapan Digital Pola Platform Hiburan Modern Terkait Mahjong Ways Forum Komunitas Digital Mulai Menyoroti Mahjong Ways Mahjong Wins 3 Menjadi Topik Ringan Pengguna Online Mahjong Wins 3 Dan Aktivitas Online Yang Terus Berjalan Tren Komunitas Modern Kembali Mengarah Ke Mahjong Ways Mahjong Wins 3 Menjadi Sorotan Platform Media Sosial Percakapan Harian Pemain Online Soal Mahjong Ways Mahjong Wins 3 Dan Obrolan Komunitas Yang Terus Ramai Pengguna Digital Kembali Tertarik Pada Mahjong Ways Mahjong Wins 3 Menjadi Bagian Tren Platform Online Gaya Permainan Yang Sering Dibahas Adalah Mahjong Ways Mahjong Wins 3 Dan Fenomena Pengguna Modern Percakapan Media Online Kembali Ke Mahjong Ways Mahjong Wins 3 Menjadi Tren Ringan Komunitas Platform Online Menyoroti Keunikan Mahjong Ways Mahjong Wins 3 Kembali Muncul Di Obrolan Pengguna Komunitas Digital Modern Mulai Membahas Mahjong Ways Mahjong Wins 3 Menjadi Topik Populer Media Online Perhatian Pemain Online Tertuju Pada Mahjong Ways Aktivitas Digital Komunitas Kembali Ke Mahjong Ways Mahjong Wins 3 Dan Tren Platform Yang Terus Aktif Forum Pemain Modern Kembali Meramaikan Mahjong Ways Mahjong Wins 3 Menjadi Bahan Obrolan Harian Online Fenomena Media Sosial Yang Terkait Mahjong Wins 3 Mahjong Wins 3 Menjadi Topik Ringan Platform Digital Pengguna Komunitas Online Menyoroti Fitur Mahjong Ways Perhatian Komunitas Digital Kembali Terarah Ke Mahjong Ways Mahjong Wins 3 Menjadi Bagian Tren Online Terbaru Forum Online Kembali Menyoroti Perkembangan Mahjong Ways Mahjong Wins 3 Dan Pola Ringan Pengguna Modern Tren Online Modern Kembali Membahas Mahjong Ways Mahjong Wins 3 Menjadi Obrolan Komunitas Platform Digital Tren Komunitas Online Modern Kembali Membahas Mahjong Ways Mahjong Wins 3 Menjadi Obrolan Ringan Platform Digital Pengguna Media Online Menyoroti Keunikan Mahjong Ways Fenomena Komunitas Yang Terus Aktif Karena Mahjong Wins 3 Aktivitas Pemain Digital Kini Terarah Ke Mahjong Ways Mahjong Wins 3 Kembali Muncul Di Obrolan Harian Online Gaya Permainan Yang Sering Dibahas Adalah Mahjong Ways Mahjong Wins 3 Menjadi Bagian Dari Tren Media Sosial Forum Komunitas Online Kembali Meramaikan Mahjong Ways Mahjong Wins 3 Dan Pola Platform Digital Yang Terus Berjalan Perhatian Pengguna Online Kembali Ke Mahjong Ways Mahjong Wins 3 Menjadi Topik Ringan Komunitas Modern Platform Media Sosial Kembali Membahas Mahjong Ways Mahjong Wins 3 Dan Fenomena Online Yang Semakin Ramai Pengguna Digital Mulai Melirik Keunikan Mahjong Ways Mahjong Wins 3 Kembali Menjadi Bahan Obrolan Pemain Tren Komunitas Platform Online Soal Mahjong Ways Mahjong Wins 3 Menjadi Pembahasan Ringan Media Online Percakapan Digital Modern Kembali Terarah Ke Mahjong Ways Mahjong Wins 3 Dan Aktivitas Komunitas Yang Terus Aktif Tren Platform Online Kembali Diramaikan Mahjong Ways Mahjong Wins 3 Menjadi Bagian Obrolan Ringan Digital Pengguna Online Kembali Menyoroti Fitur Mahjong Ways Mahjong Wins 3 Dan Gelombang Komunitas Modern Forum Pemain Digital Mulai Membahas Mahjong Ways Mahjong Wins 3 Menjadi Sorotan Media Online Terbaru Perkembangan Komunitas Online Soal Mahjong Ways Mahjong Wins 3 Kembali Muncul Di Percakapan Harian Aktivitas Platform Digital Kini Tertuju Pada Mahjong Ways Mahjong Wins 3 Menjadi Tren Ringan Pengguna Online Komunitas Online Kembali Meramaikan Topik Mahjong Ways Mahjong Wins 3 Menjadi Obrolan Platform Media Sosial Pengguna Digital Menyoroti Karakter Unik Mahjong Ways Mahjong Wins 3 Dan Fenomena Ringan Komunitas Modern Perhatian Pemain Online Kembali Pada Mahjong Ways Mahjong Wins 3 Menjadi Bahan Pembahasan Harian Platform Online Modern Kembali Melirik Mahjong Ways Mahjong Wins 3 Dan Tren Komunitas Yang Terus Aktif Forum Digital Kembali Membicarakan Mahjong Ways Mahjong Wins 3 Menjadi Topik Ringan Pemain Online Percakapan Komunitas Modern Kembali Ke Mahjong Ways Mahjong Wins 3 Menjadi Fenomena Ringan Media Online Pengguna Platform Online Kembali Membahas Mahjong Ways Mahjong Wins 3 Dan Tren Digital Yang Terus Berjalan Aktivitas Pemain Media Sosial Soal Mahjong Ways