E
mpat siswa terbaik Indonesia yang Dalam dua hari pertandingan yang dis-
tergabung sebagai Tim Olimpiade elenggarakan, Steven Wijaya berhasil me-
Komputer Indonesia 2018 siap raih nilai 326, berada pada posisi 33 dari
bertanding di ajang International Olym- 335 peserta dan meraih medali Perak, se-
piad in Informatics ke 30 yang akan dis- dangkan Abdul Malik Nurrokhman me-
elenggarakan pada tanggal 1 s.d. 8 Septe- raih nilai 319, berada pada posisi 41 mer-
mber 2018 di Tsukuba, Jepang. aih medali Perak, Ahmad Haulian Yoga
Empat siswa terbaik Indonesia : Ab- Pratama, meraih niai 272 berada di posisi
dul Malik Nurrokhman (SMA Semesta 84 meraih medali Perak dan Muhammad
BBS Semarang), Steven Wijaya (SMAS Salman Al Farisi mengumpulkan nilai
Kanisius Jakarta(, Ahmad Haulian Yoga 230 dan meraih medali Perunggu.
Pratama (SMA Taruna Nusantara Mage- IOI ke 30 ini diikuti oleh 335 peser-
lang) dan Muhammad Salman Al-Farisi ta yang berasal dari 87 negara. Sebagian
(SMA Taruna Nusantara Magelang) ber- besar peserta memang mengakui bahwa
hasil mempersembahkan 3 medali perak soal-soal yang diberikan dalam IOI ini
dan 1 medali perunggu dalam ajang In- termasuk sulit. Nilai tertinggi diraih oleh
ternational Olimpiad in Informatics ke 30 Benjamin Qi dari Amerika Serikat yang
yang diselenggarakan di Tsukuba, Jepang memperoleh nilai 449 dari total skor 600.
pada tanggal 1 s.d. 8 September 2018 lalu. Setelah mengikuti 23 kali IOI total medali
Delegasi Indonesia didampingi oleh yang telah diraih Indonesia hingga saat ini
Team Leader Bpk. Dr. Yugo K. Isal (Dosen adalah 2 Medali Emas, 22 Medali Perak
Fasilkom UI dan Pembina TOKI) sebagai dan 37 Medali Perunggu.(fz)
leader dan Brian Marshall (Ikatan Alumni
TOKI) sebagai deputy leader.
1
Inggriani
Julio
Yudhi
KON
TRIBU
Fauzan
TOR Ammar
Adi Yonas
2
Selamat Datang di OSN 2019
Selamat Datang (kembali) di Manado
Pada awal bulan Juli 2019 ini kota Manado, Sulawesi Utara akan menjadi sorotan
dunia pendidikan menengah di Indonesia. Ya, .. disinilah akan diselenggarakan
kegiatan olimpiade sains paling bergengsi di Indonesia yaitu Olimpiade Sains Na-
sional ke XVIII. Bagi kota Manado sendiri tahun ini merupakan kali ke dua men-
jadi tuan rumah acara bergengsi ini, setelah sebelumnya juga pernah menjadi
tuan rumah Olimpiade Sains Nasional ke X pada tahun 2011 lalu.
Terdapat 9 bidang lomba yang akan dilaksanakan dalam OSN bidang SMA kali ini,
yaitu Bidang Matematika, Fisika, Kimia, Biologi Astronomi, Informatika/Kom-
puter, Ilmu Kebumian, Geografi dan Ekonomi. Dalam kurun waktu satu minggu
ini lebih kurang 750 siswa dari seluruh Indonesia akan bertanding mengerahkan
segala kemampuannya untuk menunjukkan diri mereka sebagai siswa-siswa ter-
baik dari seluruh Indonesia yang berilmu, berkarya dan berprestasi.
Disela-sela lomba tentunya para siswa juga dapat menyempatkan diri untuk
menikmati keindahan alam dan kelezatan kuliner kota Manado yang sudah san-
gat terkenal hingga ke dunia Internasional.
3
25 Tahun Indonesia di IOI 2019
I nternational Olympiad in Informatics
(IOI) ke 31 tahun 2019 ini akan menjadi
acara yang bersejarah bagi Tim Olim-
piade Komputer Indonesia (TOKI) dalam
kiprahnya mengikuti ajang kompetisi pal-
medali dalam seleksi terbaik di tingkat na-
sional (OSN) berhak mengikuti pembinaan
dan seleksi lanjutan.
Pembinaan pertama dilaksanakan di
Kampus Institut Pertanian Bogor pada tang-
ing bergengsi di bidang Informatika yang gal 16 September - 15 Oktober 2018. Ta-
diselenggarakan setiap tahun di lokasi yang hap pembinaan ini lebih menekankan pada
berbeda-beda. Tahun 2019 adalah tahun ke pembekal-an kemampuan fundamental para
25 Indonesia berpartisipasi dalam kegiatan siswa dalam pembuatan program. Ditengah-
tersebut. tengah jadwal pembinaan dilakukan pula tes
Indonesia pertamakali ikut IOI tahun psikologi bagi seluruh siswa yang bertujuan
1995 ketika itu dilaksanakan di Eindhoven, untuk mendapatkan gambaran minat dan
Belanda dengan mengirimkan 1 orang kon- bakat serta memperoleh rekomendasi siswa
testan (Wirawan Purwanto) dan seorang dari para psiokolog. Diakhir pembinaan di-
pendam-ping (Bpk. J.W. Saputro). Dalam lakukan seleksi dan ditetapkan 16 siswa yang
keikutsertaan pertama ini, Wirawan secara lolos dan berhak mengikuti pembinaan dan
mengejutkan berhasil meraih medali Perak. seleksi selanjutnya.
Sejak saat itu, TOKI selalu mengirimkan Pembinaan tahap selanjutnya dilak-
delegasinya ke IOI setiap tahunnya, Indone- sanakan di Kampus Institut Teknologi Sepu-
sia pernah batal mengirimkan delegasinya luh November, Surabaya pada tanggal 24
ketika di tahun 2003 ketika IOI diselengga- Februari sampai 10 Maret 2019. Pembinaan
rakan di Amerika Serikat. dilaksanakan bertujuan memberikan bekal/
memperkuat pemahaman para siswa dengan
Indonesia Menuju IOI 2019 teknik-teknik pemrograman dan materi-
Tahun 2019 ini Tim Olimpiade Kom- materi algoritma lanjut melalui kegiatan
puter Indonesia akan mengirimkan lagi 4 pengayaan materi, latihan, simulasi dan dis-
siswa terbaiknya dalam IOI ke 31. Empat kusi. Pembinaan di-pimpin langsung oleh
siswa tersebut terpilih melalui proses pem- bapak Rully Soelaiman, S.Kom.,M.Kom.
binaan dan seleksi secara berjenjang sejak Diakhir pembinaan diumumkan 8 siswa
tingkat sekolah, kota/kabupaten, propinsi terbaik yang berhak lolos mengikuti pembi-
dan seleksi nasional dalam Olimpiade Sains naan dan seleksi tahap 3.
Nasional 2018 yang kala itu diselenggarakan Pembinaan Tahap 3 dilaksanakan di
di Kota Padang, Sumatra Barat. Para peraih Kampus Baru Fakultas Ilmu Komputer, Uni-
4
Tahun Medali Total
versitas Indonesia, Depok pada tanggal 12
sampai 26 Mei 2019. Pembinaan ini diikuti G TOKISdi IOI B
Peroleh Medali
oleh 9 orang siswa. Dilaksanakan dengan 2018 0 3 1 4
kegiatan Pengayaan materi dan latihan yang
banyak dibantu oleh para alumni TOKI yang 2017 0 1 3 4
sudah memiliki pengalaman dan kesiapan 2016 0 0 4 4
mental dalam bertanding lebih banyak. Di
tengah pelatnas para peserta juga mengikut 2015 0 2 1 3
kegiatan Asia Pasific Olympian in Informat- 2014 0 0 4 4
ics 2019 yang hasilnya juga dimanfaatkan
sebagai salah unsur penilaian seleksi. Diakh- 2013 0 2 2 4
ir pembinaan terpilih 4 siswa dengan nilai 2012 0 1 3 4
ter-tinggi yang secara otomatis berhak me-
wakili Indonesia dalam ajang IOI ke 31 yang 2011 0 0 2 2
akan diselenggarakan di Baku, Azerbaijan 2010 0 2 1 3
bulan Agustus yang akan datang, yaitu :
1. Abdul Malik Nurrohman, SMA Se- 2009 0 2 1 3
mesta BBS Semarang 2008 1 0 3 4
2. Vincent Ng, SMA Pribadi Bandung
3. Fausta Anugrah Dianparama, SMA 2007 0 0 4 4
Negeri 1 Yogyakarta 2006 0 1 0 1
4. Moses Mayer, SMA Jakarta Interna-
tional School 2005 0 2 1 3
Sebelum berangkat ke Baku, 4 siswa 2004 0 2 1 3
tersebut masih akan mengikuti pembinaan
tahap 4 yang akan lebih banyak berupa latih 2002 0 1 1 2
tanding (sparring) dengan para alumni yang 2001 0 0 1 1
secara pengalaman dan teknik jauh lebih
unggul yang bertujuan untuk meningkat- 2000 0 0 2 2
kan semangat dan menambah pengalaman 1999 0 0 0 0
para siswa dalam bertanding, Kita doakan
bersama 4 siswa terbaik Indonesia ini da- 1998 0 2 1 3
pat menghasilkan prestasi terbaiknya dalam 1997 1 0 1 2
ajang IOI ke 31 tahun 2019 di Baku, Azer-
baijan. 1996 0 0 0 0
Go TOKI, Go Get Golds !! 1995 0 1 0 1
5
Untuk Guru dan Sekolah
Kurikulum Nasional K-12 Informatika
Oleh : Dr. Inggriani
(Pembina TOKI dan Narasumber Pengembangan Kurikulum Informatika)
S
ejak dihapusnya mata pelajaran TIK bot (mesin terprogram) yang kinerjanya jauh
(Teknologi Informasi dan Komunikasi) lebih efisien. Kemampuan yang dibutuhkan
dari kurikulum 2013, banyak guru geli- di zaman Industri 4.0 dan Society 5.0 adalah
sah. Padahal di beberapa negara lain, TIK juga kemampuan penyelesaian persoalan kompleks
dihapus tetapi langsung digantikan dengan In- yang solusinya dilandasi kemampuan berpikir
formatika (istilah Informatika di sini, dipakai komputasional, pembentukan pengetahuan,
sebagai padanan dari “informatics”, “Computer dan penerapan teknologi. Kemampuan ber-
Science”, “Computing”). Perbedaan antara TIK pikir komputasional ini sangat diperlukan ka-
dengan Informatika perlu diperjelas. rena saat ini manusia hidup dalam dua belahan
TIK berkaitan dengan penggunaan dan dunia yaitu dunia nyata, dan sekaligus dunia
pemanfaatan perangkat/produk teknologi digital karena komputer dan IoT (Internet of
(informasi), sedangkan informatika berkaitan Think) yang hadir di mana-mana.
dengan disiplin ilmu, yang mencakup peng- Melalui Permendikbud 35, 36, 37 Tahun
olahan informasi simbolik (dalam bentuk 2018, Informatika menjadi mata pelajaran
simbol) dengan mesin terprogram (yaitu kom- pilihan untuk SMA, sebagai alternatif dari Pra-
puter), untuk menghasilkan teori, pendekatan,
Background Image : https://steemit.com
6
kreatif untuk mampu menyelesaikan perso- produk TIK serta berkomunikasi dan
alan-persoalan global yang semakin kompleks berkolaborasi di dunia digital dengan me-
secara efisien dan optimal, tanpa melupa- manfaatkan sarana TIK.
kan untuk memupuk kearifan sebagai insan 3. Berpengetahuan, yaitu kemampuan ten-
berkarakter yang mampu berkolaborasi dalam tang keilmuan Informatika yang men-
dunia nyata maupun dunia digital. cakup lima area pengetahuan Informatika
yaitu Teknik Komputer, Jaringan Kom-
Sekilas Tentang Kurikulum Informatika puter/Internet, Analisis Data, Algoritme
Kurikulum K-12 Informatika untuk dan Pemrograman, dan Dampak Sosial
Indonesia -dalam konteks Kurikulum 2013- Informatika.
dirancang berkesinambungan mulai dari kelas 4. Berkarakter, yaitu berkemampuan dalam
I s.d Kelas XII, dengan mengacu ke kerangka mendayagunakan teknologi untuk me-
kurikulum internasional [https://k12cs.org], nunjang kehidupan dan berkomunikasi.
dan standar yang dikeluarkan oleh ACM dan Secara ringkas, kurikulum K-12 Informa-
CSTA [https://csta.org]. tika dilandasi Berpikir Komputasional (BK);
Kurikulum K-12 informatika disesuaikan mencakup empat bidang ilmu penge-tahuan
dengan kondisi Indonesia, yaitu (a) mengako- informatika yaitu Teknik Komputer (TK),
modir pengenalan dan pelatihan keterampilan Jaringan Komputer dan Internet (JKI), Anali-
memanfaatkan TIK, yang masih dinilai perlu sis Data (AD), Algoritme dan Pemrograman
untuk disampaikan bukan hanya teknologinya (AP), dan Dampak Sosial Informatika (DSI);
tetapi juga best practices dalam pemanfaatan- dilengkapi dengan Praktika Lintas Bidang
nya, dan (b) memunculkan Berpikir Kom- (PLB) serta pemanfaatan Teknologi Informasi
putasional secara eksplisit, karena memben- dan Komunikasi (TIK). Semua komponen
tuk kemampuan “berpikir” selama ini kurang tersebut digambarkan sebagai berikut :
diperhatikan dalam pelaksanaan kurikulum.
Terlepas dari muatan informatika, kuri-
kulum informatika dirancang untuk mewujud-
kan siswa menjadi SDM dengan kemampuan
yang dirumuskan pada [https://p21.org], yaitu
kemampuan berpikir kritis, kreatif, berkolabo-
rasi, dan komunikatif untuk menyelesaikan
problema dunia yang semakin kompleks. Se-
lain itu, untuk memenuhi standar siswa yang
didefinisikan oleh International Society for
Technology in Education [https://iste.org] yaitu:
empowered learner, digital citizen, knowledge
constructor, innovative designer, computational
thinker, global collaborator, effective communi-
cator.
Muatan Informatika dijabarkan menjadi
seperangkat Kompetensi Inti (KI) dan Kompe-
tensi Dasar (KD) yang mencakup kemampuan
sebagai berikut.
1. Berpikir, yaitu berpikir komputasion-
al yang menjadi landasan dan prinsip Rancangan kurikulum K12-informatika
pemecahan persoalan yang akan disele- tetap memerhatikan bahwa tidak semua siswa
saikan dengan bantuan komputer. akan melanjutkan studi atau bekerja di bidang
2. Berkarya dan terampil, yaitu kemampuan komputing, karena bidang studi-bidang studi
dalam menggunakan dan menghasilkan lainnya juga terbuka luas. Informatika perlu
7
diberikan, karena bidang studi lanjut apapun
membutuhkan komputer, sehingga menun-
tut siswa mampu berpikir komputasional dan
trampil memanfaatkan teknologi informasi.
Rancangan kurikulum K-12 Informatika
bersifat umum, masih memberi ruang un-
tuk dikembangkan pada sekolah vokasi, yaitu
penambahan keterampilan yang siap pakai dan
pembentukan tenaga kerja profesional dengan
kualifikasi Teknisi Komputer dan Jaringan,
Teknisi di bidang Rekayasa Perangkat Lunak,
Programmer, Administrator Basis Data.
8
silabus spesifik yang paling cocok diterapkan tetapi pemrograman atau software development
sesuai untuk siswa sekolahnya, dan memilih hanya dapat dilakukan oleh manusia.
kasus-kasus yang sesuai keadaan sekitarnya Memang, tak dapat dipungkiri bahwa
(urban, pedesaan, pertanian, maritim, perta- koding merupakan kegiatan yang paling “ter-
mbangan, pegunungan, pariwisata, atau lain- lihat” dan dapat dinikmati hasilnya, sehingga
nya). Sistem telekomunikasi dan Internet, per- bagi pemula, koding adalah kegiatan yang pa-
angkat keras (smartphone, tablet, laptop, PC) ling menyenangkan.
serta perangkat lunak memang diperlukan, Pemrograman, bahkan koding dapat
tetapi yang lebih diutamakan adalah guru yang dipakai sebagai salah satu cara untuk belajar
kreatif, inovatif, mumpuni, yang mampu mem- berpikir komputasional. Maka, jangan ragu
bawa siswa ke dalam proses pembelajaran ber- mulai dengan belajar koding, tapi patut di-
nuansa keilmuan yang membumi dan berpusat ingat bahwa siswa tidak boleh berhenti sampai
ke siswa (Student Centered Learning), dengan dengan koding, harus meningkat menuju pro-
menerapkan Problem Based Learning dan Pro- gramming dan problem solving.
ject Based Learning, untuk mengarahkan siswa Ajang IOI (International Olympiad in
mengkonstruksi pengetahuan (constructivist). Informatics) yang diikuti oleh TOKI setiap ta-
Selama proses pembelajaran, siswa diajak aktif hun sejak tahun 1995, merupakan ajang lomba
dalam mengamati dan menggali pengetahuan problem solving tingkat tinggi yang solusinya
melalui pengamatan, eksplorasi, eksursi, main dalam bentuk program yang efisien dan op-
peran, games, simulasi, atau mengerjakan pro- timal, yang didasari berpikir komputasional.
jek-projek menarik bernuansa STE(A)M – Sci- Untuk menuju ke IOI, siswa mengikuti seleksi
ence, Technology, Engineering, Art, Mathemat- berjenjang dalam jalur Olimpiade Sains Na-
ics. Buku siswa akan dikonstruksi oleh siswa sional (OSN) yang dalam proses seleksinya
sendiri berdasarkan aktivitas yang dijalaninya. membutuhkan kemampuan berpikir kom-
Semua materi dan bahan belajar dihimpun putasional tingkat tinggi, dan penerapan ilmu
dalam sebuah repositori pengetahuan sekolah, pengetahuan informatika dalam kehidupan
yang akan menjadi “resources” (sumber daya) sehari-hari untuk tingkat SMA.
belajar yang berguna bagi semua pihak.
Di akhir semester, guru dan siswa me- Penutup
nyusun portfolio yang merekam muatan dan Pembekalan informatika, sebagai salah
proses pembelajaran yang sudah dilaksanakan, satu ilmu formal yang serumpun dengan ilmu
disertai dengan refleksi dan evaluasi diri. Port- matematika, sudah menjadi kebutuhan masa
folio guru berguna untuk perbaikan berkela- kini. Pendidikan yang bertumpu kepada pem-
njutan dari pelaksanaan proses pembelajaran. bentukan karakter baik, dilandasi kemampuan
Portfolio siswa akan merekam jejak digital dari berpikir komputasional, mengasah daya pikir
semua pengetahuan yang dialami dan dirajut kritis, kreatif dan inovatif, serta ketrampilan
oleh siswa menjadi pengetahuan yang akan menggunakan teknologi (bukan “dijajah” oleh
berguna untuk berbagai bidang ilmu lainnya. teknologi) akan membentuk insan Indonesia
yang mampu bersaing di dunia global yang
Bagaimana Koding dan Pemrograman ? teknologinya selalu berubah dan berkembang
Koding adalah menuliskan implementasi pesat, apapun profesinya.
suatu solusi menjadi program komputer dalam Mengingat pentingnya penguasaan infor-
bahasa pemrograman tertentu. Pemrograman matika, kalaupun karena alasan administratif
adalah kegiatan problem solving, termasuk di sekolah belum dapat melaksanakan secara pe-
dalamnya mewujudkan solusi dalam bentuk nuh, sebaiknya sekolah mengambil keputusan
program dengan melakukan kegiatan koding. untuk tetap memulai mengadopsi kurikulum
Jadi, koding adalah bagian dari pemrograman. K-12 informatika sebagai bagian dari kegiatan
Koding dapat digantikan oleh code generator, ekstra kurikuler.
9
Soal OSN 2018 : Jembatan Layang
Time limit: 1 s, Memory limit: 64 MB - Soal ini ditulis oleh Ammar Fathin Sabili.
•
Panjang string tersebut adalah banyaknya
subsoal ditambah satu.
Karakter ke-0 (indeks dimulai dari 0) akan
berisi 0 jika kasus uji tersebut merupakan
dung asrama baru yang juga setinggi N lantai. contoh kasus uji, atau berisi ‘.’ (titik) jika bu-
Terdapat K buah jembatan layang di antara kan.
kedua gedung tersebut. Jembatan ke-i terletak • Untuk setiap nilai i di antara 1 hingga ban-
pada ketinggian lantai H[i]. Uniknya, setiap lan- yaknya subsoal, berlaku:
tai dari masing-masing gedung hanya terhubung • jika kasus uji tersebut memenuhi
pada tepat satu jembatan melalui sebuah ter- batasan subsoal ke-i, maka karakter
owongan khusus. Lantai i pada gedung lama han- ke-i berisi i, atau
ya terhubung pada jembatan ke-A[i], dan lantai • jika kasus uji tersebut tidak memenuhi
i pada gedung baru hanya terhubung pada jem- batasan subsoal ke-i, maka karakter
batan ke-B[i]. ke-i berisi karakter ‘.’ (titik).
Sekarang, pihak kampus akan merelokasi
seluruh mahasiswa ke gedung baru. Setiap lantai Sebagai contoh, apabila label sebuah kasus uji se-
di gedung lama akan direlokasi ke sebuah lantai buah soal adalah 0..345, maka:
di gedung baru. Tidak ada dua lantai di gedung • Soal tersebut memiliki 5 buah subsoal,
lama yang direlokasi ke lantai yang sama di ge- • Kasus uji tersebut merupakan contoh kasus
dung baru. Dengan kata lain, pihak kampus ingin uji, dan
mencari sebuah permutasi P dari {1, 2, ..., N} yang • Kasus uji tesebut memenuhi batasan subsoal
menyatakan bahwa penghuni lantai i di gedung ke-3, ke-4, dan ke-5.
lama akan direlokasi ke lantai P[i] di gedung baru.
Untuk alasan keamanan, pihak kampus me- Baris-baris berikutnya diberikan dalam format
nerapkan aturan untuk setiap relokasi lantai: berikut:
1. Penghuni lantai di gedung lama akan N K
menuju ke satu-satunya jembatan yang ter- H[1] H[2] .. H[K]
hubung, kemudian menyusuri jembatan A[1] A[2] A[3] .. A[N]
menuju gedung baru, lalu menuju ke salah B[1] B[2] B[3] .. B[N]
satu lantai di gedung baru yang terhubung
pada jembatan tersebut. Format Keluaran
2. Lantai di gedung lama dan lantai di gedung Sebuah baris berisi banyaknya permutasi yang
baru tidak boleh keduanya sekaligus lebih memenuhi syarat, modulo 1.000.000.007.
tinggi atau sekaligus lebih rendah daripada
jembatan yang menghubungkannya. Contoh Masukan 1
Atau dengan kata lain, secara formal, untuk setiap 0...45.7
i, seluruh syarat berikut harus dipenuhi: 6 1
• A[i] = B[P[i]] 3
• Jika i > H[A[i]], maka harus berlaku P[i] ≤ 1 1 1 1 1 1
H[A[i]]. 1 1 1 1 1 1
• Jika i < H[A[i]], maka harus berlaku P[i] ≥
H[A[i]]. Contoh Keluaran 1
Sekarang pihak kampus penasaran, sebenarnya 36
ada berapa permutasi berbeda yang mungkin?
Karena hasilnya bisa sangat besar, mereka hanya Penjelasan Contoh 1
penasaran pada hasilnya modulo 1.000.000.007. Terdapat 6 lantai, dan 1 jembatan layang
yang terletak pada ketinggian lantai 3. Setiap
Format Masukan lantai di gedung lama maupun gedung baru, ter-
Baris pertama akan berisi “label kasus uji”. Label hubung pada jembatan.
kasus uji adalah sebuah string yang dijelaskan se- Contoh ini diilustrasikan gambar berikut.
10
Gedung sebelah kiri adalah gedung lama, sedang- Perhatikan bahwa lantai 2 di gedung lama ter-
kan yang sebelah kanan adalah gedung baru. hubung pada jembatan yang berada pada keting-
gian lantai 1 (lantai lebih tinggi daripada jembat-
an), namun hanya lantai 3 dan 5 di gedung baru
yang terhubung pada jembatan tersebut (yang
juga lebih tinggi daripada jembatan). Pada kasus
ini, lantai 2 tidak dapat direlokasi ke manapun
tanpa melanggar aturan yang diberikan, sehingga
tidak ada permutasi yang mungkin.
Subsoal
Untuk semua subsoal, berlaku:
• 1 ≤ K ≤ N ≤ 100.000
Menurut aturan yang diberikan, maka: • 1 ≤ H[i] ≤ N
• Lantai 1 di gedung lama hanya bisa dire- • Nilai-nilai H[i] berbeda-beda.
lokasi ke lantai 3, 4, 5, atau 6 di gedung baru. • 1 ≤ A[i], B[i] ≤ K
• Lantai 2 di gedung lama hanya bisa dire- • A[i] mengandung setiap bilangan dari 1
lokasi ke lantai 3, 4, 5, atau 6 di gedung baru. hingga K.
• Lantai 3 di gedung lama bisa direlokasi ke • B[i] mengandung setiap bilangan dari 1
seluruh lantai di gedung baru. hingga K.
• Lantai 4 di gedung lama hanya bisa direloka- • Untuk setiap jembatan layang, banyaknya
si ke lantai 1, 2, atau 3 di gedung baru. lantai di gedung lama yang terhubung, sama
• Lantai 5 di gedung lama hanya bisa direloka- dengan banyaknya lantai di gedung baru
si ke lantai 1, 2, atau 3 di gedung baru. yang terhubung.
• Lantai 6 di gedung lama hanya bisa direloka-
si ke lantai 1, 2, atau 3 di gedung baru. Subsoal 1 (6 poin):
Perhatikan bahwa lantai-lantai 4, 5, dan 6 di ge- Hanya berisi kasus uji berikut:
dung lama pasti direlokasi ke lantai-lantai 1, 2, .1..45.7
dan 3 di gedung baru. Terdapat 3! = 6 cara. Si- 5 1
sanya, lantai-lantai 1, 2, 3 di gedung lama bisa 3
direlokasi ke lantai-lantai 4, 5, 6 di gedung baru. 1 1 1 1 1
Terdapat 3! = 6 cara. Dengan demikian, terdapat 1 1 1 1 1
total 6 × 6 = 36 permutasi yang mungkin.
Subsoal 2 (8 poin):
Contoh Masukan 2 Hanya berisi kasus uji berikut:
0...4..7 ..2.4..7
6 2 9 4
1 4 2 3 5 8
1 1 2 2 2 2 2 2 1 3 3 2 3 4 4
2 2 1 2 1 2 2 1 3 2 3 3 2 4 4
11
Pembahasan SOAL OSN 2019 Begitu pula apabila suatu lantai pada ge-
dung baru terhubung dengan jembatan dengan
Jembatan Layang ketinggian yang sama, maka lantai tersebut
Oleh : IA TOKI dapat menjadi tujuan relokasi dari semua lan-
tai pada gedung lama yang terhubung dengan
Subsoal 3 jembatan tersebut.
Karena banyaknya jembatan layang sama de- Terdapat 4 buah kasus yang memenuhi
ngan banyaknya lantai, maka setiap lantai yang aturan relokasi yang ada :
ada pada gedung lama dan gedung baru pasti 1. Pi + Qi = R’i + Q’i dan Ri = P’i
terhubung dengan tepat sebuah jembatan la- 2. Pi + Qi = R’i dan Ri = P’i + Q’i
yang. Maka hal ini mengakibatkan hanya ter- 3. Pi = R’i dan Ri + Qi = P’i + Q’i
dapat sebuah permutasi yang mungkin jika 4. Pi = R’i + Q’i dan Ri + Qi = P’i
dan hanya jika semua relokasi sudah meme- Perhatikan bahwa apabila Qi = 0 atau Q’i
nuhi syarat. Kompleksitas dari solusi ini adalah = 0 maka akan terdapat beberapa kasus yang
O(N). saling ekuivalen.
Dengan menggunakan kaidah penjum-
Subsoal 4 lahan, hitung banyaknya permutasi pada
Subsoal ini dapat diselesaikan menggunakan masing-masing kasus lalu jumlahkan untuk
complete search. Untuk setiap kemungkinan memperoleh jawaban yang diinginkan. Tetapi
permutasi yang ada, periksa apakah semua re- perhatikan pula bahwa himpunan penyele-
lokasi sudah memenuhi syarat. Kompleksitas saian kasus-kasus tersebut akan beririsan pada
dari solusi ini adalah O(N!). kasus berikut: Pi = P’i , Qi = Q’i, dan Ri = R0i
, yang menyebabkan kasus di atas terhitung 2
Subsoal 5 kali. Gunakan Prinsip Inklusi-Eksklusi untuk
Untuk mempermudah diskusi, mari kita guna- mengatasi kasus tersebut. Kompleksitas dari
kan denisi berikut: solusi ini adalah O(N).
• Denisi 1. Banyaknya lantai i pada gedung
lama yang terhubung dengan jembatan Subsoal 6
ke-j yang memenuhi i > H[j] dinyatakan Perhatikan bahwa banyaknya cara reloka-
dalam Pj . si berbeda yang melalui suatu jembatan layang
• Denisi 2. Banyaknya lantai i pada gedung tidak dipengaruhi oleh jembatan layang yang
baru yang terhubung dengan jembatan lain, sehingga kita dapat menghitung banyakn-
ke-j yang memenuhi i > H[j] dinyatakan ya cara relokasi berbeda untuk masing-masing
dalam P’j . jembatan layang lalu menggunakan kaidah
• Denisi 3. Banyaknya lantai i pada gedung perkalian untuk memperoleh jawaban akhir.
lama yang terhubung dengan jembatan Pada subsoal ini berlaku batasan Qi = 0
ke-j yang memenuhi i = H[j] dinyatakan dan Q’i = 0. Sehingga untuk setiap jembatan,
dalam Qj . hanya terdapat 1 buah kasus yang mungkin ter-
• Denisi 4. Banyaknya lantai i pada gedung jadi dan memenuhi aturan relokasi yang ada,
baru yang terhubung dengan jembatan yaitu: Pi = R’i dan Ri = P’i . Iterasi semua jembat-
ke-j yang memenuhi i = H[j] dinyatakan an yang ada, lalu kalikan banyaknya permutasi
dalam Q’j . pada masing-masing jembatan untuk memper-
• Denisi 5. Banyaknya lantai i pada gedung oleh jawaban yang diinginkan. Kompleksitas
lama yang terhubung dengan jembatan dari solusi ini adalah O(N).
ke-j yang memenuhi i < H[j] dinyatakan
Bacground : allwhitebackground.com
dalam Rj . Subsoal 7
• Denisi 6. Banyaknya lantai i pada gedung Subsoal ini merupakan gabungan dari
baru yang terhubung dengan jembatan Subsoal 5 dan Subsoal 6. Iterasi semua jem-
ke-j yang memenuhi i < H[j] dinyatakan batan yang ada, lalu untuk setiap jembatan,
dalam R’j. banyaknya permutasi yang mungkin dapat di-
Apabila suatu lantai pada gedung lama hitung dengan menggunakan solusi Subsoal 5.
terhubung dengan jembatan dengan keting- Kemudian kalikan banyaknya permutasi pada
gian yang sama, maka lantai tersebut dapat masing-masing jembatan untuk memperoleh
direlokasi ke semua lantai pada gedung baru jawaban yang diinginkan. Kompleksitas dari
yang terhubung dengan jembatan tersebut. solusi ini adalah O(N).
12
Bebras Indonesia
Oleh : DR. Inggriani dan Adi Mulyanto M.T. (Pembina TOKI)
T
antangan Bebras adalah sebuah ajang Apa Hubungan Kurikulum Informatika den-
lomba berpikir komputasional, yang di- gan Tantangan Bebras ?
adakan sejak tahun 2001, digagas oleh Siswa sekolah dasar dan menengah
Prof. Valentina Dagiene yang berasal dari Litu- membentuk dan mengasah kemampuan ber-
ania. Bebras adalah kata yang berarti “berang- pikir komputasional dengan menyelesaikan
berang” dalam bahasa Lituania, simbol bina- kasus-kasus persoalan terkait informatika,
tang yang cerdik dan banyak akal. dengan melakukan dekomposisi, abstraksi,
Tantangan Bebras diadakan secara rutin menuliskan algoritma, megembangkan model
setiap tahun pada minggu kedua bulan No- komputasi, mengenali pola solusi kasus-kasus.
vember. Tantangan disajikan dalam bentuk Dengan banyak latihan siswa bukan dilatih
soal menarik berlatar belakang informatika, menghafal, tetapi mengenali pola persoalan
tanpa secara eksplisit menggunakan istilah sehingga semakin efisien dalam proses meng-
informatika karena diperuntukkan bagi siswa- hasilkan solusi, dan solusinya juga semakin
siswi mulai berumur 5 tahun s.d. 18 tahun. efisien dan optimal pula.
Pada tahun 2019, tantangan bebras diadakan Setelah Tantangan berlalu, soal-soal
oleh lebih dari 54 negara dengan jumlah pe- dapat dipakai sebagai bahan belajar berpikir
serta lebih dari 2,78 juta anak. Informasi leng- komputasional dan topik-toik informatika
kap tentang Tantangan bebras dapat diakses di secara lebih sistematis. Melalui penyelesaian
https://www.bebras.org persoalan, siswa diajak untuk mendalami topik
informatika yang “tersembunyi” di balik soal.
Bebras Indonesia Siswa diharapkan mampu melihat dengan hati
Bebras Indonesia NBO bekerjasama dan menalar (seeing in the mind eyes) mengenai
dengan Biro Bebras, dengan dukungan dari ke- konsep informatika yang dipetakan dari cerita
mendikbud RI, telah mengadakan Tantangan keseharian kehidupan yang menjadi topik soal.
Bebras untuk ketiga kalinya sejak tahun 2016, Soal-soal dan pembahasan tantangan
bersama dengan negara anggota komunitas di Bebras dapat dijadikan sebagai bagian dari
seluruh dunia, yang hampir semuanya meru- unit pembelajaran Berpikir Komputasional
pakan negara peserta IOI, dengan tujuan untuk dalam kurikulum K-12 Informatika. Soal-soal
menumbuhkan kemampuan computational dapat dijadikan inspirasi bagi guru untuk dapat
thinking sejak dari usia dini, yang merupakan dikembangkan variasi dan kompleksitasnya
landasan penting dalam memecahkan persoal-
an pada IOI yang diadakan untuk siswa SMA. Apa Peran Biro Bebras ?
Biro Bebras merupakan sebuah lem-
Bagaimana Ikut Serta pada Tantangan Be- baga yang menjadi kepanjangan tangan dari
bras ? NBO yang berperan sebagai mitra beberapa
Guru sekolah mendaftarkan siswanya sekolah dalam menyelenggarakan tantangan
pada Biro bebras yang daftar dan kontaknya bebras. Kemitraan antara Biro Bebras dengan
dapat diakses di http://bebras.or.id/v3/bebras- sekolah di sekitarnya diharapkan memben-
biro/. Saat ini, sudah ada 50 Biro bebras yang tuk suatu jejaring sehingga guru secara rutin
tersebar di seluruh Indonesia. Sekolah juga mendapat informasi mengenai perkembangan
dapat mengusulkan Program studi komput- informatika yang sangat pesat, dan program
ing terdekatnya agar bergabung menjadi Biro studi yang menjadi Biro akan mendapatkan
Bebras. siswa yang sudah lebih baik pemahaman dan
Untuk mempersiapkan diri, siswa dapat pengetahuannya tentang informatika. Biro Be-
membuat akun dan latihan mandiri di situs bras juga dapat membantu untuk implementasi
https://olympia.id. kurikulum Informatika .
13
Algoritma String Matching Pada Mesin Pencarian
Oleh : Dr. Wahyono (TOKI Biro UGM)
G oogling”. adalah kata yang sudah tidak ingin dicari. Minimal ada tiga algoritma string
asing bagi milenial yang artinya mela- matching yang biasanya digunakan yaitu meng-
kukan pencarian data/dokumen/string gunakan pendekatan brute force, algoritma Boy-
dengan menggunakan kata kunci tertentu pada er-Moore, dan algoritma Knuth-Morris-Pratt.
laman Google. Coba diingat-ingat sudah berapa Di antara ketiga algoritma tersebut, pendekata
kali kita melakukan pencarian pada Google. brute force merupakan algoritma yang paling
Tentunya sudah tak terhitung karena semua in- mudah untuk diimplementasikan. Tetapi mem-
formasi yang kita ingin tahu selalu bisa didapat butuhkan waktu proses yang sa-ngat lama kare-
dengan mudah melalui Google. Pertanyaan- na harus mencocokan satu persatu setiap huruf
nya adalah kenapa mesin pencari Google (juga yang ada pada query ke string yang akan dicari.
berlaku untuk mesin lain seperti terlihat pada Oleh sebab itu pada ulasan ini akan dibahas al-
Gambar 1) begitu cepat prosesnya? goritma Knuth-Morris-Pratt (KMP).
Secara umum mesin pencarian dapat Algoritma KMP adalah merupakan
dibagi menjadi 3 bagian besar, yaitu web crawl- pengembangan dari algoritma brute force. Op-
ing, indexing, dan searching. Pada tahap web timasi yang dilakukan oleh algoritma KMP ini
crawling, mesin pencari akan menjelajahi adalah dengan cara melangkahi langkah yang
banyak halaman web dan mengambil setiap seharusnya tidak perlu dilakukan. Algoritma
(link) yang ada pada suatu web yang sedang di- ini dikembangkan secara terpisah oleh Donald
jelajahinya. Pada tahap indexing, isi dari setiap E. Knuth pada tahun 1967 dan James H. Mor-
halaman web yang dijelajahi akan dianalisis dan ris bersama Vaughan R. Pratt pada tahun 1966,
diberikan indeks berdasarkan isi yang diambil, namun keduanya mempublikasikannya secara
mungkin berupa judul, subjudul atau bagian bersamaan pada tahun 1977. Secara sistema-
khusus dari isi halaman. Pada tahap searching, tis, langkah-langkah yang dilakukan algoritme
mesin pencari akan menerima“kata kunci” Knuth-Morris-Pratt pada saat mencocokkan
dari pengguna yang berupa query, kemudian string:
mesin pencari akan mencari indeks dari kata 1. Algoritme Knuth-Morris-Pratt mulai
yang terdapat pada query tersebut. Pencarian mencocokkan pattern pada awal teks.
indeks ini dapat dilakukan dengan banyak cara 2. Dari kiri ke kanan, algoritme ini akan
pula, seperti membagi query menjadi beberapa mencocokkan karakter per karakter pat-
substring lalu melakukan pencocokan atau me- tern dengan karakter di teks yang ber-
la-kukan pencarian indeks per kata dari query. sesuaian, sampai salah satu kondisi berikut
Pada proses ketiga inilah biasanya algoritma dipenuhi:
background : 1001feedownloads.com
string matching dilakukan. Tentunya algoritme • Karakter di pattern dan di teks yang
yang digunakan harus sangat cepat sehingga dibandingkan tidak cocok (mis-
menghasilkan output pencarian dalam waktu match).
singkat. • Semua karakter di pattern cocok. Ke-
String Matching sendiri adalah suatu al- mudian algoritme akan memberita-
goritma yang digunakan untuk mencari suatu hukan penemuan di posisi ini.
string (pattern) apakah terdapat dalam suatu 3. Algoritme kemudian menggeser pattern
string lainnya (teks). Pencarian ini dilakukan berdasarkan tabel next, lalu mengulangi
dengan cara mencocokkan karakter yang ada langkah 2 sampai pattern berada di ujung
pada pattern dengan karakter pada teks yang teks.
14
Untuk memudahkan, mari sama-sama kita n di dalam teks dengan panjang m dengan kom-
bahas salah satu contoh pencarian string meng- pleksitas waktu O(m+n). Algoritme ini hanya
gunakan algoritma KMP. Namun sebelum itu membutuhkan O(n) ruang dari memory inter-
perlu memahami definisi prefix dan suffix pada nal jika teks dibaca dari file eksternal.
sebuah string yang nantinya akan dibutuhkan Demikiannya ulasan bagaimana algoritma
pada algoritma KMP. Prefix didefinisikan seba- string matching dapat diterapkan pada mesin
gai substring-substring dari sebuah string yang pencarian. Namun perlu diingat bahwa mesin
dimulai dari index awal dari string induk. Se- pencarian tidak hanya menerapkan algoritma
dangkan suffix adalah substring-subtring dari string matching. Masih ada langkah-langkah
sebuah string yang diakhiri dengan index akhir lainnya yang masih perlu dilakukan selain string
dari string sebagai contoh. Substring “a”, “ab”, matching. Dari sini kita bisa menyimpulkan
dan “abc” merupakan prefix dari string “abcda”, bahwa apa yang kita pelajari selama persiapan
sedangkan “da”, “cda” dan “bcda” merupakan Olimpiade Sains Nasional, nantinya akan sangat
suffix dari string “abcda”. Selanjutnya mari kita berguna dalam penerapan kehidupan sehari-
mencoba melihat bagaimana cara kerja algorit- hari.
ma KMP. Misal kita menginginkan melakukan
pencari-an dengan kata kunci P=“abacab” pada procedure preKMP(
input P: array[0..n-1] of char,
string T=“abacaabaccabacabaabb”, maka proses input n: integer,
pencarian kata kunci P diilustrasikan pada Ga- input/output kmpNext: array[0..n] of
mbar 2 dibawah:- integer
)
Deklarasi:
i,j: integer
Algoritme
i:= 0;
j:= kmpNext[0]:= -1;
while (i < n) {
while (j > -1 and not(P[i] = P[j]))
j:= kmpNext[j];
i:= i+1;
j:= j+1;
if (P[i] = P[j])
Gambar 2. Ilustrasi pencarian string dengan algoritma KMP. kmpNext[i]:= kmpNext[j];
else
Seperti terlihat pada Gambar 2, pada ilus- kmpNext[i]:= j;
trasi 1 proses pencocokan dilakukan pada setiap endif
endwhile
karaktar adalah katakunci dengan teks. Namun
pada indeks ke-6 karakter tidak sama (mis- procedure KMPSearch(
match) oleh sebab itu pencocokan dihentikan input m, n: integer,
yang selanjutnya adalah melakukan pergeseran. input P: array[0..n-1] of char,
input T: array[0..m-1] of char,
Proses pergesaran dilakukan dengan memper- output ketemu: array[0..m-1] of
timbangkan subtring yang sudah match dengan boolean
string T yaitu substring “abaca”. Oleh sebab itu )
pada definisi algoritma KMP, kita perlu men- Deklarasi:
cari prefix string “abaca” terpa-njang yang juga i, j,next: integer
merupakan suffix string “baca”. Dalam hal ini kmpNext: array[0..n] of interger
substring “a” merupakan prefix terpanjang string Algoritme:
“abaca” yang sekaligus suffix dari string “baca”, preKMP(n, P, kmpNext)
yang panjangnya 1. Oleh sebab itu pencocokan i:=0
pada iterasi berikutnya dimulai dari indeks 2 while (i<= m-n) do
j:=0
(yaitu karakter b pada kata kunci). Proses ini while (j < n and T[i+j] = P[j]) do
dilakukan terus menerus sampai interasi ke-5 di j:=j+1
mana didapatkan bahwa semua karakter pada endwhile
katakunci cocok secara berurutan pada string. if(j >= n) then
ketemu[i]:=true;
Selanjutnya algoritma akan mengeluarkan in- endif
formasi bahwa katakunci ditemukan. Lebih next:= j - kmpNext[j]
detail Gambar 3 adalah pseudocode algoritma i:= i+next
endwhile
KMP.
Secara umum, Algoritme ini menemukan
Gambar 3. Pseudocode Algoritma KMP (Wikipedia)
semua kemunculan dari pattern dengan panjang
15
HALL OF FAME
Moses belajar HTML dan bahasa pemrograman python sejak kelas 3 SMP berkenalan dengan
competitive programming sejak kelas 2 SMA lalu. Dalam waktu beberapa bulan, ia mempelajari ba-
hasa C++ dan competitive programming melalui TLX. Ia juga rajin mengerjakan soal-soal yang ada
di online judge hingga akhirnya mendapat medali pada OSN 2018 di Padang. Tidak hanya dalam
competitive programming, Moses juga menggunakan pengetahuannya dalam pemrograman untuk
riset, hingga ia berkesempatan menjadi pembicara pada event TEDx mengenai pengaplikasian
Game Theory dalam penyelesaian masalah epidemi populasi di Indonesia. Pada IOI 2019 nanti, ia
akan berusaha semaksimal mungkin dan berharap mendapatkan hasil sebaik-baiknya.
16