My first Magazine pemrograman-kompetitif-dasar | Page 11
1
Perkenalan Pemrograman Kompetitif
Untuk memulai pembahasan pada bab-bab selanjutnya, mari kita mulai dengan membahas
tentang apakah sebenarnya pemrograman kompetitif. Bab perkenalan ini juga memuat informasi
tentang kompetensi dasar yang Anda butuhkan dan konvensi yang digunakan pada penulisan
kode.
1.1
Kompetensi Dasar
Buku ini dirancang bagi pembaca yang sudah pernah belajar pemrograman sebelumnya,
namun masih awam mengenai dunia pemrograman kompetitif. Buku ini bukanlah buku untuk
belajar pemrograman. Terdapat sejumlah kompetensi dasar yang perlu Anda kuasai untuk dapat
memahami materi pada buku ini secara maksimal. Anda diharapkan untuk:
1. Memahami konsep pemrograman dan mampu menulis program secara umum.
2. Mengetahui jenis-jenis tipe data primitif seperti bilangan bulat, bilangan riil, boolean, dan
karakter.
3. Mengetahui konsep tipe data komposit seperti record (Pascal), struct (C), atau class
(C++ dan Java).
4. Memahami konsep dan mampu menulis struktur percabangan if pada program.
5. Memahami konsep dan mampu menulis struktur perulangan menggunakan for dan while
pada program.
6. Memahami konsep array , baik yang berdimensi satu maupun lebih.
7. Memahami konsep subprogram berupa fungsi dan prosedur.
8. Memahami konsep rekursi, mampu mengidentifikasi basis dan hubungan rekursif dari suatu
permasalahan, dan mampu menuliskannya pada program.
9. Mampu menghitung kompleksitas waktu dan memori dari suatu algoritma dan menyatakan-
nya dalam notasi big-Oh.
Apabila Anda belum menguasai seluruh kompetensi dasar tersebut, kami menyarankan Anda
untuk mempelajarinya terlebih dahulu. Sumber pembelajaran yang kami anjurkan adalah TLX
Training Gate (https://tlx.toki.id/training). Seluruh kompetensi dasar yang diperlukan
dibahas pada kursus berjudul "Pemrograman Dasar".
1.2
Tentang Pemrograman Kompetitif
Pemrograman kompetitif adalah kegiatan penyelesaian soal yang terdefinisi dengan jelas
dengan menulis program komputer dalam batasan-batasan tertentu (memori dan waktu). 1
Terdapat tiga aspek pada definisi tersebut, yaitu:
1. Soal terdefinisi dengan jelas. Artinya diketahui dengan jelas apa maksud soal dan tidak
ada keambiguan. Seluruh variabel pada soal diberikan batasan nilainya.
1