import streamlit as st from datasets import load_dataset import pandas as pd # Fungsi untuk membaca data dari Hugging Face dataset @st.cache_resource def load_data(): dataset = load_dataset("damand2061/id_cs_journal_articles", token=True) data = pd.DataFrame(dataset['train']) return data # Fungsi untuk menampilkan card def display_card(article_name, journal_name, article_url): return f"""
{article_name}

{journal_name}

""" # Fungsi untuk menampilkan data dalam 3 kolom def display_data(data, start_index, end_index): cols = st.columns(3) # Buat 3 kolom for i in range(start_index, end_index): article_name = data.iloc[i]['article_name'] journal_name = data.iloc[i]['journal_name'] article_url = data.iloc[i]['article_url'] # Menentukan kolom yang akan digunakan col_index = (i - start_index) % 3 cols[col_index].markdown(display_card(article_name, journal_name, article_url), unsafe_allow_html=True) # Fungsi untuk menambah data yang ditampilkan def show_more(): st.session_state.num_displayed += 18 # Main app def main(): st.set_page_config(page_title="ID CS Journal Aggregator", layout="wide") # Set layout lebar # Judul terpusat st.markdown("

Indonesian Computer Science
Journal Aggregator

", unsafe_allow_html=True) # Load data dari Hugging Face dataset data = load_data() # Inisialisasi jumlah data yang ditampilkan if 'num_displayed' not in st.session_state: st.session_state.num_displayed = 18 # Jumlah card yang ditampilkan awalnya # Tampilkan data end_index = min(st.session_state.num_displayed, len(data)) display_data(data, 0, end_index) # Tombol "Show More" if st.session_state.num_displayed < len(data):'' col1, col2, col3 = st.columns([1,2,1]) with col2: st.button("Show More", on_click=show_more, key="show_more", use_container_width=True) if __name__ == "__main__": main()