hilalrd's picture
Update EDA.py
cf9f7a4
import streamlit as st
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import plotly.express as px
import altair as alt
from PIL import Image
st.set_page_config(
page_title = 'SAHAM BBCA - EDA',
layout = 'wide',
initial_sidebar_state = 'expanded'
)
def run():
# Membuat Judul
st.title('BBCA Stock Daily Prediction')
# Membaut subheader
st.subheader('EDA untuk Analisis Saham BBCA 2020 - 2023')
# Membuat garis lurus
st.markdown('---')
# Membuat layout dengan dua kolom
col1, col2 = st.columns([1, 3])
# Menambahkan Gambar
with col1:
image = st.image("BCA.jpg", caption="Grup BCA")
with col2:
st.write('PT Bank Central Asia Tbk')
st.write('Kode Saham : BBCA')
st.write('Kapitalisasi Pasar : 1.112 Triliun')
# Menambahkan deskripsi
st.write('**Profil Perusahaan**')
st.write('PT Bank Central Asia Tbk. atau BBCA dalam bidang usaha bank umum. Anak perusahaan diantaranya: PT BCA Finance (Pembiayaan Konsumen, Sewa Guna Usaha dan Anjak Piutang), BCA Finance Limited (Money Lending- Jasa Pengiriman Uang), PT Bank BCA Syariah (Perbankan Syariah), PT BCA Sekuritas (Penjamin Emisi Efek dan Pialang Perdagangan Saham), dan PT Asuransi Umum BCA (Asuransi Umum atau Asuransi Kerugian).Pada 2017 BCA mendirikan PT Central Capital Ventura (CCV) guna mengikuti inovasi layanan keuangan berbasis digital.Produk dan layanan Perseroan yaitu: produk simpanan, layanan transaksi perbankan, perbankan elektronik, layanan cash management, kartu kredit, bancassurance, produk investasi, fasilitas kredit, Bank garansi, fasilitas ekspor impor dan fasilitas valuta asing. Pada 2017 Jumlah kantor wilayah ada 12 terdiri dari (146 kantor cabang utama, 856 kantor cabang pembantu dan 244 kantor kas) tersebar di seluruh Indonesia, kantor non wilayah (1 kantor cabang utama) dan satu kantor perwakilan di Jakarta pusat')
# Membuat garis lurus
st.markdown('---')
st.write('Pada page kali ini, penulis akan melakukan eksplorasi sederhana. Dataset yang digunakan adalah dataset saham BBCA 2020 - 2023. Dataset ini berasal dari web kaggle.com')
st.write('### BBCA STOCK DAILY 2020 - 2023')
# Show DataFrame
data = pd.read_csv('https://raw.githubusercontent.com/hilalrd/Data-Science/main/BBCA%20Price%20Daily/BBCA%20Daily.csv')
st.dataframe(data)
# Menghitung presentase selisih
start_price = data['close'].iloc[0]
end_price = data['close'].iloc[-1]
percentage_change = (end_price - start_price) / start_price * 100
# Membuat plot Harga
st.write('#### Grafik Harga Saham BBCA 2020 - 2023')
fig, ax = plt.subplots(figsize=(20, 5))
ax.plot(data['timestamp'], data['close'])
ax.set_title('Perubahan Harga Saham BBCA 2020-2023\nGain/Loss: {:.2f}%'.format(percentage_change))
ax.set_xlabel('Rentang Waktu')
ax.set_ylabel('Harga Saham')
st.pyplot(fig)
st.write('Secara Kumulatif selama 3 tahun terakhir saham BBCA terus mengalami kenaikan harga dengan harga all-time-high menyentuh angka Rp 9300 / Lembar sahamnya')
# Membuat plot Harga
st.write('#### Grafik Volume Perdagangan Saham BBCA 2020 - 2023')
fig, ax = plt.subplots(figsize=(20, 5))
ax.plot(data['timestamp'], data['volume'])
ax.set_title('Perubahan Volume Perdagangan Saham BBCA 2020-2023')
ax.set_xlabel('Rentang Waktu')
ax.set_ylabel('Volume Perdagangan')
st.pyplot(fig)
st.write('Volume perdagangan cenderung fluktuatif dan mengalami peningkatan volume menjelang berakhirnya semester atau quartal. Dapat disimpulkan sementara pergerakan volume perdagangan tersebut disebabkan oleh faktor-faktor berikut:')
st.write('1. Laporan Keuangan Q1 - Q4 (Quartal)')
st.write('2. Pembagian Deviden (Semester)')
# Membuat Histogram berdasarkan Input user
st.write('#### Input Histogram yang ingin dilihat')
pilihan = st.selectbox('Pilih column : ', ('open', 'close', 'quarter_end', 'G/L'))
fig = plt.figure(figsize=(15, 5))
sns.histplot(data[pilihan], bins=30, kde=True)
st.pyplot(fig)
# Membuat Plotly plot
st.write('#### Plotly Plot - Harga dengan Volume')
fig = px.scatter(data, x='close', y='volume', hover_data=('high', 'low'))
st.plotly_chart(fig)
st.write('Page ini dibuat oleh **Hilal Amirudin**')
if __name__== '__main__':
run()