Anak kosan itu hidupnya susah, jauh dari orang tua, jauh dari rumah, jauh dari ketenangan batin, uang pas-pasan belum lagi ada yang ngutang, makan gak teratur, udah gak teratur makanannya gak sehat lagi, menu pamungkas anak kos itu mie instant + nasi satu piring, itu udah kenyang banget. Saya yakin semua anak kosan prihatin dengan kehidupan mereka yang tidak sehat ini, saya ingin membantu menyelesaikan masalah asupan gizi mereka dengan uang pas-pasan ala anak kos tapi bisa memenuhi kebutuhan gizi dan vitamin tubuh mereka selama menunggu gajian selanjutnya dari orang tua.
Nutrisi yang ingin dioptimalkan adalah protein dan magnesium, protein dibutuhkan untuk pertumbuhan, asupan nutrisi dan perkembangan otak dan magnesium dibutuhkan tubuh untuk menjaga metabolisme sel, detoksifikasi, produksi energi menjaga kesehatan jantung dan tulang. Diketahui bahwa protein yang dibutuhkan tubuh perhari adalah 1g/kg berat badan. Jika dirata-ratakan berat badan anak kos-kosan adalah 50kg berarti jumlah protein yang dibutuhkan tubuh perhari adalah 50g. Adapun jumlah magnesium yang dibutuhkan tubuh perhari adalah 400mg. Makanan yang terjangkau yang mengandung banyak protein dan magnesium adalah bayam dan tempe dengan tabel sebagai berikut:
Makanan | Protein | Magnesium | Harga |
---|---|---|---|
Bayam | 14g/ikat | 248mg/ikat | 2500/ikat |
Tempe | 57g/bungkus | 243mg/bungkus | 2000/bungkus |
Batasan | >= 50g | >= 400mg | <= 15000 |
In [3]:
import solver
import pulp
bayam = 'bayam'
tempe = 'tempe'
problem_name = 'Optimasi Gizi Anak Kos'
# decision variables (variabel keputusan)
x = pulp.LpVariable(bayam, lowBound=0, cat='Integer')
y = pulp.LpVariable(tempe, lowBound=0, cat='Integer')
# objective / fungsi tujuan
max_protein = 14 * x + 57 * y
max_magnesium = 248 * x + 243 * y
maximize = max_protein + max_magnesium
# constrains / fungsi kendala
protein = ((14 * x + 57 * y) >= 50 ) # 14x+57y >= 50
magnesium = ((248 * x + 243 * y) >= 400) # 248x+243y >= 400
harga = ((2500 * x + 2000 * y) <= 15000) # 2500x+2000y <= 15000
# magics
solver = solver.Solver(problem_name, pulp.LpMaximize) # init the solver with maximize solution
solver.tujuan(maximize) # add objective/fungsi tujuan
solver.kendala(protein, magnesium, harga) # add constraints/fungsi kendala
solver.hasil(x, y) # print result if solved
In [5]:
# print max
max_protein = 14 * x.value() + 57 * y.value()
max_magnesium = 248 * x.value() + 243 * y.value()
print "Max protein yang didapat sehari adalah {}g dari total minimal yang dibutuhkan (50g)".format(max_protein)
print "Max magnesium yang didapat sehari adalah {}mg dari total minimal yang dibutuhkan (400mg)".format(max_magnesium)
print "Dengan pengeluaran perhari {} dari 15000 jatah belanja perhari".format(2500 * x.value() + 2000 * y.value())
In [ ]: