import streamlit as st import pandas as pd import seaborn as sns import matplotlib.pyplot as plt import plotly.express as px from PIL import Image def run(): # Membuat judul st.title('Credit Card Default') # Membuat Sub Header st.header('EDA untuk Analisa Dataset Credit Card Default', divider='gray') # Menambahkan Gambar image = Image.open('image.png') st.image(image, caption = 'Credit Card Default', channels='RGB') # Menambahkan Divider st.divider() # Menampilkan Dataframe st.header('Dataframe', divider='gray') data = pd.read_csv('dataset.csv') st.dataframe(data) st.divider() # Membuat Bar Plot 1 st.write('#### Hubungan Jenis Kelamin dengan Gagal Bayar') fig = plt.figure(figsize=(12,8)) sns.barplot(x='sex', y='default_payment_next_month', data=data) # Menambah Title dan Label plt.title('Hubungan Jenis Kelamin dengan Gagal Bayar') plt.xlabel('Jenis Kelamin') plt.ylabel('Gagal Bayar') # Menampilkan Plot plt.tight_layout() st.pyplot(fig) # Keterangan plot1 = '''Keterangan : 1 = Pria 2 = Wanita''' st.markdown(plot1) st.divider() # Membuat Bar Plot 2 st.write('#### Hubungan Tingkat Pendidikan dengan Gagal Bayar') fig = plt.figure(figsize=(12,8)) sns.barplot(x='education_level', y='default_payment_next_month', data=data) # Menambah Title dan Label plt.title('Hubungan Status Pernikahan dengan Gagal Bayar') plt.xlabel('Status Pernikahan') plt.ylabel('Gagal Bayar') # Menampilkan Plot plt.tight_layout() st.pyplot(fig) # Keterangan plot2 = '''Keterangan : 1 = Graduate School, 2 = University, 3 = High School, 4 = Tidak Menjawab''' st.markdown(plot2) st.divider() # Membuat Bar Plot 3 st.write('#### Hubungan Status Pernikahan dengan Gagal Bayar') fig = plt.figure(figsize=(12,8)) sns.barplot(x='marital_status', y='default_payment_next_month', data=data) # Menambah Title dan Label plt.title('Hubungan Status Pernikahan dengan Gagal Bayar') plt.xlabel('Status Pernikahan') plt.ylabel('Gagal Bayar') # Menampilkan Plot plt.tight_layout() st.pyplot(fig) # Keterangan plot3 = '''Keterangan : 1 = Menikah, 2 = Belum Menikah, 3 = Tidak Menjawab''' st.markdown(plot3) st.divider() # Membuat Bar Plot 4 st.write('#### Status Pembayaran') fig = plt.figure(figsize=(12,8)) sns.countplot(x='default_payment_next_month', data=data) # Menambahkan label Sumbu dan judul plt.xlabel('Status Pembayaran') plt.ylabel('Count') plt.title('Kemungkinan Nasabah Mengalami Kegagalan Pembayaran') # Menampilkan Plot plt.tight_layout() st.pyplot(fig) # Keterangan plot4 = '''Keterangan : 0 = Membayar Tagihan, 1 = Gagal Membayar Tagihan''' st.markdown(plot4) st.divider() if __name__ == '__main__': run()