20 September 2025
Requirements:
- Git Bash
- Quarto
- Python/R
Pada terminal git bash, pindah ke direktori untuk inisialisasi projek. Selanjutnya jalankan kode ini baris per baris
git clone https://github.com/aslab-math-ui/modul-prak.git
cd modul-prak
git submodule update --init --recursive modul/2025
Penjelasan:
git clone berfungsi untuk melakukan cloning project dari repo modul-prak ke local. git submodule update
Requirements:
- R
- Rtools
Pada terminal git bash, jalankan kode ini baris per baris
R
install.packages("renv")
renv::restore()
Pemahaman tentang git diperlukan untuk memahami alur penyimpanan projek ini. Berikut beberapa perintah yang perlu diingat.
git clone alamat/repo.git nama_di_local: Berfungsi untuk menduplikasi project github ke lokalgit pull: Mengambil update terbaru project dari github. Fitur ini sangat disarankan untuk dijalankan setiap kali kalian membuka project secara lokal.git add .: Menyimpan semua perubahan kedalam tahap "staging" (perubahan lokal yang tidak bisa diupdate ke github)git commit -m "Pesan commit": Menyimpan semua perubahan secara resmi (dalam bentuk commit) dan bisa di update ke githubgit push: Mendorong perubahan lokal ke github.
WARNING: Konflik yang sering terjadi adalah ketika banyak kontributor ingin melakukan perubahan dengan git push dalam kurun waktu yang dekat. Hal ini dapat diatasi dengan merge branch tapi untuk mencegah ini lebih baik melakukan git pull setiap kali membuka project secara lokal.
Projek ini memanfaatkan teknologi git submodules untuk mengatasi permasalahan alokasi memori pada github. Berikut beberapa perintah yang perlu diketahui
git submodule update --init nama-modul: Jalankan perintah ini apabila local kalian belum terhubung dengan git repomodulatauassetsgit submodule update nama-modul: Berfungsi serupa dengangit pull, apabila ada perubahan pada submodul (semisalmodul/2025), jalankan ini untuk memperoleh update terbaru.git submodule deinit nama-modul: Berfungsi untuk menghapus submodule (secara lokal).
Karena fitur git submodules masih cukup baru, dapat terjadi kendala
dimana setelah berganti branch, git submodule update --init nama-modul tidak menghubungkan folder ke repo yang seharusnya. Dalam kondisi seperti ini perlu dilakukan hard reset terhadap setingan git submodules
git submodule deinit -f .
rm -rf modul/* assets
rm -rf .git/modules/*
rm .gitmodules
Lalu tambahkan kembali submodules
git submodule add https://github.com/aslab-math-ui/modul_2025.git modul/2025
git submodule add https://github.com/aslab-math-ui/modul_2024.git modul/2024
git submodule add https://github.com/aslab-math-ui/modul_2023.git modul/2023
git submodule add https://github.com/aslab-math-ui/modul_2022.git modul/2022
git submodule add https://github.com/aslab-math-ui/modul_spesial.git modul/_spesial
git submodule add https://github.com/aslab-math-ui/asset.git assets
Apabila sudah menjalankan Local Setup ada satu folder dalam modul.
Untuk melihat modul pada tahun yang lalu (misal 2023) ketik pada terminal bash
git submodule update --init modul/2023
Apabila sudah puas melihat modul tahun lalu dan ingin menghapusnya dari projek lokal, ketik pada terminal bash
git submodule deinit modul/2023
Semua modul disimpan dalam folder modul/tahun_ajaran/semester/mata_kuliah. Untuk membuat modul, ada 2 cara.
Cara 1:
- Liat file modul
.qmdtahun lalu pada direktorimodulatau repo modul tahun lalu. - Copy ke dalam direktori
modultahun sekarang - Modifikasi sesuai keperluan asisten.
Cara 2:
- Buat file baru dengan ekstensi
.qmdpada direktori yang sesuai (didalammodul) - Silahkan menyusun modul dari awal
Gambar pada projek ini perlu di simpan pada repo asset terlebih dahulu. Silahkan cek repo asset untuk memastikan gambar sudah ada disana. Apabila belum, ikut langkah Upload Gambar atau Dataset ke Repo Asset
Untuk menyisipkan gambar pada modul, gunakan alamat lengkap dari repo asset. Misalkan ingin menggunakan linked_list.png dari asset/struktur_data/static/linked_list.png, maka pada modul
sisipkan
https://raw.githubusercontent.com/aslab-math-ui/asset/struktur_data/static/linked_list.png
Misalkan akan dirender modul PSD tahun 2025 yang terletak di
modul/2025/ganjil/pengantar_sains_data/psd2025.qmd
- Buka git bash, pastikan berada di direktori
modul-prak - Pada terminal git bash jalankan
quarto render modul/2025/ganjil/pengantar_sains_data/psd2025.qmd
- Hasil render akan berada di
docs/modul/2025/ganjil/pengantar_sains_data/psd2025.html - Hasil ini dapat ditampilkan pada web browser.
Notes: Apabila menemukan error seperti ini
WARN: Unable to resolve link target: modul\2024\genap\persamaan_diferensial_numerik\pdnum2024genap.qmd
menandakan modul yang dibuat bergantung pada modul tahun lalu. Peringatan
ini dapat diabaikan. Ini dapat diperbaiki dengan mengkoneksi modul/2024 ke project lokal (lihat Melihat Modul).
Misalkan saya telah menyelesaikan modul stuktur data 2025 di
modul/2025/ganjil/struktur_data/modul1.ipynb
- Buka git bash, pastikan berada di direktori
modul-prak - Pada terminal git bash jalankan
cd modul/2025
git switch main
git pull
git add .
git commit -m "Upload Modul 1 Struktur Data 2025"
git push
cd ../..
Penjelasan:
cd modul/2025mengubah direktori terminal ke dalam foldermodul/2025git switch mainmemastikan kita berada di branch main pada repomodul_2025cd ../..mengembalikan kita kembali ke direktori utama pada terminal
- Buka git bash, pastikan berada di direktori
modul-prak - Pastikan git berada di branch
maindengan mengetikgit branchdi terminal git bash - Copy hasil render ke folder lain (karena folder project akan ganti branch)
- Pada terminal git bash jalankan
git submodule deinit -f --all
git switch website
Penjelasan: Baris pertama akan menghapus semua dependensi projek ke repo lain, lalu baris kedua akan memindahkan project ke branch website
- Sekarang project berada di branch website, copy hasil render ke
docs/modul/2025/ganjil/struktur_data/ - Upload perubahan ini ke github melalui terminal git bash
git pull
git add .
git commit -m "Upload halaman modul strukur data 2025"
git push
- Untuk kembali ke branch awal, jalankan kedua baris ini di terminal git bash
git switch main
git submodule update --init --recursive
- Buka git bash, pastikan berada di direktori
modul-prak - Jalankan
git submodule update --init assetssehingga folder assets akan terkoneksi dengan repoasset. - Tambahkan gambar atau dataset pada folder yang sesuai dalam folder
assets - Pada terminal git bash jalankan
cd assets
git switch main
git pull
git add .
git commit -m "Added assets for struktur_data"
git push
cd ..
Penjelasan:
cd assetsmengubah direktori terminal ke dalam folderassetsgit switch mainmemastikan kita berada di branch main pada repoassetcd ..mengembalikan kita kembali ke direktori utama pada terminal
Apabila sudah melakukan git commit dan git push modul ingin
diperbaiki (dalam kurun waktu yang dekat) lakukan hal ini sebelum upload kembali.
Sebelum mengetik git add .
- Carilah nilai hash commit (biasanya dalam 7 digit hex seperti 2c4218a). Nilai ini bisa dilihat dengan
git logpada terminal - Ketik baris ini pada terminal
git reset --soft 2c4218a
- Gunakan
git push --forcedan bukangit pushyang biasa
Hal ini perlu dilakukan untuk mencegah memori repo membengkak dan banyaknya commit yang tidak optimal.