Materi: Stack
Pengajar: Asisten Praktikum 2021
Harap untuk membaca instruksi terlebih dahulu sampai dipahami!
Tugas ini berisi latihan-latihan dalam mengimplementasikan konsep stack dengan linked list menggunakan template pada bahasa pemrograman C++.
- Isi nama dan NPM pada file
README.md
- Baca dokumentasi pada file-file
stack.hpp
kemudian implementasikan pada file tersebut. - Baca juga dokumentasi pada file-file
problem_*.hpp
kemudian implementasikan pada fileproblem_*.cpp
yang terkait sesuai dengan deklarasinya. - Implementasikan kode sampai semua test berhasil/passing.
- GitHub Action akan menampilkan cek hijau jika semua test berhasil dan silang merah jika ada test yang gagal.
- Jika test berjalan di lokal tapi tidak pada GitHub, harap hubungi asisten praktikum!
Praktikan hanya bisa mengubah file-file berikut:
main.cpp
README.md
stack.hpp
problem_*.cpp
Isi
main.cpp
tidak akan diperhatikan oleh penilaian atau asisten. Jadi boleh digunakan sebagai tempat untuk testing atau debugging pribadi praktikan.
Penjelasan untuk file lainnya:
problem_*.hpp
adalah header file tugas (jangan diubah, kecuali diinstruksikan!)main_test.cpp
berisi spesifikasi test untuk tugas (JANGAN DIUBAH!)catch.hpp
berisi library testing Catch2 (JANGAN DIUBAH!)Makefile
digunakan untuk mengeksekusi perintah-perintah tugas (JANGAN DIUBAH!)- Direktori
img/
berisi gambar-gambar untukREADME.md
(JANGAN DIUBAH!)
File hasil kompilasi ada dua executable dan beberapa file .o
:
tugas
(atautugas.exe
pada Windows) berasal darimain.cpp
.tugas_test
(atautugas_test.exe
pada Windows) berasal darimain_test.cpp
yang akan dijalankan oleh GitHub autograder untuk penilaian. Akan tetapi bisa dijalankan juga oleh praktikan untuk testing secara lokal.- File-file
.o
adalah object code atau object file yang dihasilkan oleh proses kompilasi, jadi tidak perlu diperhatikan, hiraukan saja. Secara kasar,Source Code: code for humans
Object Code: code for machines
- Kompilasi terhadap
main.cpp
danmain_test.cpp
:make
- Kompilasi terhadap
main.cpp
saja:Untuk Windows:make tugas
make tugas.exe
- Kompilasi terhadap
main_test.cpp
saja:Untuk Windows:make tugas_test
make tugas_test.exe
- Untuk menjalankan semua test yang diberikan pada tugas:
Perintah diatas akan menjalankan
make test
tugas_test
. Jika filetugas_test
belum ada, maka akan secara otomatis dilakukan kompilasi terlebih dahulu.Perintah ini akan dijalankan oleh GitHub autograder untuk penilaian.
- Untuk menjalankan
main.cpp
:Perintah diatas akan menjalankanmake run
tugas
. Jika filetugas
belum ada, maka akan secara otomatis dilakukan kompilasi terlebih dahulu. - Untuk menghapus file-file hasil kompilasi:
make clean
- Kode hanya akan dievaluasi jika dapat dikompilasi! Karena jika tidak berhasil dalam proses kompilasi maka tidak akan ada file executable untuk melakukan test.
- Pencatatan nilai akan dilakukan oleh asisten pada commit terakhir saat deadline.
- Tugas juga akan dievaluasi secara manual oleh asisten.
- Penilaian juga akan dilakukan terhadap kualitas kode.
- Deadline dapat dicek pada GitHub Classroom. Jika tidak dapat ditemukan, hubungi asisten.
- Aturan dan instruksi lain yang disampaikan pada pertemuan praktikum juga berlaku.
- Jika ada kendala, segera hubungi asisten!
MIT License 2021