Difference between revisions of "Phyton Code"

From ccitonlinewiki
Jump to: navigation, search
Line 1: Line 1:
Untuk mengoptimalkan penyimpanan hidrogen pada tekanan 8 bar dengan kapasitas 1 liter dan anggaran maksimal Rp500.000, dapat diselesaikan dengan phyton code dibawah :
+
Untuk mengoptimisasi penyimpanan hidrogen pada tekanan 8 bar dengan kapasitas 1 liter dan anggaran maksimal Rp500.000, dapat diselesaikan dengan phyton code dibawah :
  
 
<syntaxhighlight lang="xml">
 
<syntaxhighlight lang="xml">
Line 46: Line 46:
  
 
[[File:Hasil_optimasi.png|500x300px]]
 
[[File:Hasil_optimasi.png|500x300px]]
 +
 +
Untuk menunjukan grafik antara total penyimpanan dan optimisasi penyimpanan hidrogen dapat digunakan phyton code di bawah ini
 +
 +
<syntaxhighlight lang="xml">
 +
 +
import numpy as np
 +
import matplotlib.pyplot as plt
 +
from scipy.optimize import minimize
 +
 +
# Harga dan kapasitas
 +
harga_per_unit = 100000  # Harga per unit penyimpanan hidrogen
 +
kapasitas_per_unit = 1  # Kapasitas penyimpanan hidrogen per unit
 +
 +
# Anggaran maksimal
 +
budget_maksimal = 500000
 +
 +
# Fungsi tujuan
 +
def fungsi_tujuan(x):
 +
    return -x
 +
 +
# Kendala
 +
def kendala(x):
 +
    return budget_maksimal - (harga_per_unit * x[0])
 +
 +
kendala_anggaran = [{'type': 'ineq', 'fun': kendala}]
 +
 +
# Nilai awal
 +
x0 = [0]
 +
 +
# Batasan
 +
batas = [(0, None)]
 +
 +
# Membuat fungsi untuk menampilkan hasil
 +
def tampilkan_hasil(solusi):
 +
    print("Status:", "Optimal" if solusi.success else "Tidak ditemukan solusi")
 +
    print("Jumlah unit penyimpanan hidrogen yang akan dibeli:", solusi.x[0])
 +
    print("Total kapasitas penyimpanan:", solusi.x[0] * kapasitas_per_unit, "liter")
 +
    print("Total biaya:", solusi.x[0] * harga_per_unit, "Rupiah")
 +
 +
# Menyelesaikan masalah optimisasi
 +
solusi = minimize(fungsi_tujuan, x0, method='SLSQP', bounds=batas, constraints=kendala_anggaran)
 +
 +
# Menampilkan hasil
 +
tampilkan_hasil(solusi)
 +
 +
# Menghasilkan grafik
 +
anggaran = np.linspace(0, 10, 100)  # Range anggaran
 +
kapasitas = anggaran * kapasitas_per_unit  # Total kapasitas penyimpanan untuk setiap anggaran
 +
biaya = anggaran * harga_per_unit  # Total biaya untuk setiap anggaran
 +
 +
plt.figure()
 +
plt.plot(anggaran, kapasitas, label='Kapasitas Penyimpanan')
 +
plt.plot(anggaran, biaya, label='Total Biaya')
 +
plt.axhline(solusi.x[0] * kapasitas_per_unit, color='r', linestyle='--', label='Jumlah Unit Optimal')
 +
plt.axvline(solusi.x[0], color='g', linestyle='--', label='Anggaran Optimal')
 +
plt.xlabel('Anggaran')
 +
plt.ylabel('Kapasitas/Biaya')
 +
plt.title('Optimisasi Penyimpanan Hidrogen')
 +
plt.legend()
 +
plt.grid(True)
 +
plt.show()
 +
 +
</syntaxhighlight>
 +
 +
Kode di atas menghitung jumlah optimal unit penyimpanan hidrogen yang akan dibeli berdasarkan harga per unit, kapasitas per unit, dan anggaran maksimal yang diberikan.

Revision as of 03:03, 5 June 2023

Untuk mengoptimisasi penyimpanan hidrogen pada tekanan 8 bar dengan kapasitas 1 liter dan anggaran maksimal Rp500.000, dapat diselesaikan dengan phyton code dibawah :

from scipy.optimize import minimize

# Harga dan kapasitas
harga_per_unit = 100000  # Harga per unit penyimpanan hidrogen
kapasitas_per_unit = 1  # Kapasitas penyimpanan hidrogen per unit

# Anggaran maksimal
budget_maksimal = 500000

# Fungsi tujuan
def fungsi_tujuan(x):
    return -x

# Kendala
def kendala(x):
    return budget_maksimal - (harga_per_unit * x[0])

kendala_anggaran = [{'type': 'ineq', 'fun': kendala}]

# Nilai awal
x0 = [0]

# Batasan
batas = [(0, None)]

# Membuat fungsi untuk menampilkan hasil
def tampilkan_hasil(solusi):
    print("Status:", "Optimal" if solusi.success else "Tidak ditemukan solusi")
    print("Jumlah unit penyimpanan hidrogen yang akan dibeli:", solusi.x[0])
    print("Total kapasitas penyimpanan:", solusi.x[0] * kapasitas_per_unit, "liter")
    print("Total biaya:", solusi.x[0] * harga_per_unit, "Rupiah")

# Menyelesaikan masalah optimisasi
solusi = minimize(fungsi_tujuan, x0, method='SLSQP', bounds=batas, constraints=kendala_anggaran)

# Menampilkan hasil
tampilkan_hasil(solusi)

Kode di atas menggunakan fungsi tujuan untuk memaksimalkan jumlah unit penyimpanan hidrogen yang akan dibeli. Kendala anggaran diatur menggunakan fungsi kendala, yang memastikan bahwa total biaya tidak melebihi anggaran maksimal yang diberikan. Output akan menampilkan jumlah unit yang harus dibeli, total kapasitas penyimpanan, dan total biaya yang dibutuhkan. Di bawah ini merupakan hasil dari phyton code tersebut

Hasil optimasi.png

Untuk menunjukan grafik antara total penyimpanan dan optimisasi penyimpanan hidrogen dapat digunakan phyton code di bawah ini

import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import minimize

# Harga dan kapasitas
harga_per_unit = 100000  # Harga per unit penyimpanan hidrogen
kapasitas_per_unit = 1  # Kapasitas penyimpanan hidrogen per unit

# Anggaran maksimal
budget_maksimal = 500000

# Fungsi tujuan
def fungsi_tujuan(x):
    return -x

# Kendala
def kendala(x):
    return budget_maksimal - (harga_per_unit * x[0])

kendala_anggaran = [{'type': 'ineq', 'fun': kendala}]

# Nilai awal
x0 = [0]

# Batasan
batas = [(0, None)]

# Membuat fungsi untuk menampilkan hasil
def tampilkan_hasil(solusi):
    print("Status:", "Optimal" if solusi.success else "Tidak ditemukan solusi")
    print("Jumlah unit penyimpanan hidrogen yang akan dibeli:", solusi.x[0])
    print("Total kapasitas penyimpanan:", solusi.x[0] * kapasitas_per_unit, "liter")
    print("Total biaya:", solusi.x[0] * harga_per_unit, "Rupiah")

# Menyelesaikan masalah optimisasi
solusi = minimize(fungsi_tujuan, x0, method='SLSQP', bounds=batas, constraints=kendala_anggaran)

# Menampilkan hasil
tampilkan_hasil(solusi)

# Menghasilkan grafik
anggaran = np.linspace(0, 10, 100)  # Range anggaran
kapasitas = anggaran * kapasitas_per_unit  # Total kapasitas penyimpanan untuk setiap anggaran
biaya = anggaran * harga_per_unit  # Total biaya untuk setiap anggaran

plt.figure()
plt.plot(anggaran, kapasitas, label='Kapasitas Penyimpanan')
plt.plot(anggaran, biaya, label='Total Biaya')
plt.axhline(solusi.x[0] * kapasitas_per_unit, color='r', linestyle='--', label='Jumlah Unit Optimal')
plt.axvline(solusi.x[0], color='g', linestyle='--', label='Anggaran Optimal')
plt.xlabel('Anggaran')
plt.ylabel('Kapasitas/Biaya')
plt.title('Optimisasi Penyimpanan Hidrogen')
plt.legend()
plt.grid(True)
plt.show()

Kode di atas menghitung jumlah optimal unit penyimpanan hidrogen yang akan dibeli berdasarkan harga per unit, kapasitas per unit, dan anggaran maksimal yang diberikan.