Belajar Fokus

Belakangan aku mulai menyadari kalau masih sulit buat fokus. Di tengah koding atau belajar, ada aja godaan buat sekedar ngecek facebook, twitter, atau g+. Padahal ya nggak ada notif apa-apa, nggak ada yg posting atau mention. Agaknya ini juga yg bikin quarter pertamaku di kampus rada berantakan. Aku nggak bisa efisien ngatur waktu. Yang biasanya dulu bisa santai2 aja tiap mau kuliah, sekarang harus lebih banyak sadar diri, nyicil ngerjain banyak tugas kuliah dan riset dari Professor. Masih sulit rasanya fokus mendisiplinkan diri, mengalokasikan waktu sepenuhnya buat belajar.
Quarter kedua ini aku nggak boleh mengulang kesalahan yang sama. Hari ini aku membuktikan bahwa kamarku yang kukira tempat paling enak buat belajar, ternyata merupakan tempat yang paling tidak ideal buat belajar. Kamar ini terlalu nyaman sampai bikin males belajar. Kasur selalu membayang2 ~~” Pasang internet ternyata jadi bumerang; kebanyakan nonton youtube & film! Akhirnya siang tadi kuputuskan bakal nyelesaikan paper readingku di kampus. Yup, ngampus di hari minggu2. Surprisingly, I’m not alone. Banyak juga students yang menghabiskan weekendnya di kampus. Entah belajar di perpustakaan atau di ruang kelas yang kosong. Aku sendiri ngendon di officeku dari jam 2 siang sampai 8 malam, nyelesaikan rangkuman 2 paper sisa semalam. Walau reading speedku masih lelet, masih sering ngulang2 dan banyak istirahat, tapi lumayan lebih fokus lah di kampus. Malam sebelumnya aja, baca 1 paper di kamar, nggak cukup 4 jam, kebanyakan “nyambi”nya 😦
Oke, mulai sekarang harus lebih fokus. Cari terobosan2 baru biar lebih produktif. Masih banyak to-do list yang harus dikerjakan. SEMANGAT!!!

Kenapa mulai nulis lagi?

Kebutuhan. Ya, bersosialisasi itu salah satu kebutuhan manusia kan? Dan itulah yang masih sulit kutemukan di sini.
Hari ini mungkin sudah genap satu setangah bulan aku tinggal di Chicago. Hidup merantau ke negri orang itu berat. Kita harus memulai lagi semuanya dari awal. Beradaptasi dengan dunia yang baru, tempat yang baru, budaya dan cara hidup yang serba baru, dan teman-teman yang baru. Yang terakhir ini mungkin yang paling susah. Bahasa dan budaya jadi kendala paling utama.
Bayangkan bagaimana rasanya ketika kamu jadi satu-satunya orang Indonesia di tengah-tengah mahasiswa China yang ketika mereka ngumpul, secara reflek ngobrolnya jadi bahasa mandarin semua. Jengkel banget karena jadi nggak bisa ikut ngobrol. Aku yang awalnya pengan beramah-tamah, guyon, gojeg, seketika itu juga cuma bisa diem ngeliatin mereka ngobrol dari pojokan tanpa tahu apa arti dibalik tawa dan gurauan mereka. Bukan salah mereka pastinya, jelas bukan. Mungkin kalau dibalik posisinya, yang mayoritas itu orang Indonesia, aku juga pasti akan reflek ngomongnya pakai bahasa Indonesia. Tapi tetap saja, yang kaya gini bikin aku jadi sulit bersosialisasi. Untungnya ada teman seruangan dari NY yang cukup cerewet dan bisa kutimpali obrolannya kalau dia lagi ngoceh.
Kadang-kadang aku suka terjaga sampai malam cuma buat nengokin timeline teman-teman di Indonesia. Berharap ada yang bisa kuajakin ngobrol, saling lempar comment. Makin dewasa kita, ternyata semakin banyak komitmen dan prioritas yang harus didahulukan. Makin sulit menemukan teman-teman yang dahulu sering jadi tempat kita curhat, ngobrol. Aku sendiri sebenarnya bukan orang yang mudah terbuka dengan orang lain. Hanya 1-2 teman yang mungkin ngerti seperti apa aku sebenarnya.
Mencari teman sejati itu sulit. Tidak semua teman bisa menjadi tempat kita bebas berbagi atau bertukar cerita. Tapi, kebutuhan untuk bercerita itu tidak bisa untuk tidak disalurkan. Memendamnya terus cuma bikin makin penat. Maka itulah aku nulis. Setidaknya ini bisa bikin aku tetap waras.

Revival of my blog (?)

Nulis itu bukan satu hal yang aku kuasai. Terbukti dengan mangkraknya blog ini selama hampir 4 tahun. Banyak hal sebenernya yg pengen aku ceritain. Banyak cerita2 menarik yang terjadi dalam hidupku yang akhirnya jadi koleksi memoriku sendiri.
Nulis hal-hal pribadi seperti terasa tabu dilakukan di jejaring sosial atau blog. Paling banter twitter yang jadi sarana kalau mau ngoceh gak jelas. Singkat, tidak terlalu menarik perhatian, dan cepat dilupakan.
Sampai akhirnya blog lamaku di multiply.com tiba-tiba hilang. Cuma telat sehari buat ngebackup tulisan2 itu, dan sekarang udah gak ada lagi jejaknya. Hilang. Saat itu aku merasa kalau memori-memori itu penting banget. Di situ aku nulis puisi-puisi favoritku. Disitulah tersimpan interaksiku sama temen-temen lewat komentar-komentar. Memorable banget. Dan semua hilang. Moga-moga aja yang terjadi sama multiply nggak terjadi sama worpressku ini.
Aku akan coba mulai nulis lagi. Mungkin tulisannya nggak akan seserius dulu, yang isinya tentang programming, kompetisi, kampus. Kali ini aku akan coba nulis lebih santai.
Aku pengen nulis tentang aku. Yah, mungkin semacam jurnal pribadi.
Tenang kawan tak perlu kau khawatir jikalau timeline Facebook dan Twittermu bakal penuh dengan keluh-kesahku. Cukup disini saja aku akan menumpahkan semuanya.

Kata Spiral

Untuk menyambut semakin dekatnya Olimpiade sains Nasional, saya pengen berbagi sedikit solusi soal OSN Komputer. Semoga bisa membantu adik2 sekalian yang hendak berkompetisi di OSN nanti. Kali ini saya mau membahas soal favorit saya, Kata Spiral, soal OSN 2005.

Deskripsi

Suatu sistem sandi menyandikan kalimat yang diberikan dalam bantuk spiral.

Penyusunan tersebut dilakukan membentuk matriks spiral yang dimulai pusat matriks

1 karakter pertama, lalu 1 karakter berikutnya ke kanan, lalu 1 karakter berikutnya ke

bawah, lalu 2 karakter berikutnya ke kiri, lalu 2 karakter berikutnya ke atas, 3 karakter

berikutnya ke kanan, 3 karakter berikutnya ke bawah, dan seterusnya hingga semua

karakter dalam kalimat termasuk dalam spiral. Khususnya, karakter spasi di ganti

dengan β€œ_” (underscore), dan jika ada baris/kolom tersisa setelah karakter terakhir

maka elemen-elemen matriks diisi juga dengan β€œ_” (underscore) tsb. Misalnya

kalimat β€œSeluruh peserta OSN bidang komputer harus mengerjakan soal-soal sebaikbaiknya

untuk mendapatkan peringkat terbaik.” Dikodekan kedalam matriks sebagai

berikut.

Continue reading

Program Penerjemah Bilangan

Ok, next program, pengeja bilangan.
Kebetulan, dulu temen saya pernah minta tolong dibuatkan program ini untuk tugas kuiahnya, jadi saya tinggal copy-paste πŸ˜›

Bagaimana caranya membuat program untuk membaca digit angka ini?
Sebeumnya, mari kita analisis masalahnya dulu.
Disediakan bilangan yang tersusun dari m digit angka.
Kita lihat angka ini mulai dari yang paling kanan.
Untuk n>=0 berlaku lemma sebagai berikut :

  1. Digit ke 3n+1 (dari kanan) pasti diikuti kata “ribu”, “juta”, “milyar”, dst
    KECUALI JIKA digit 3n+1 hingga digit 3n+3 bernilai ‘0’.
  2. Digit ke 3n+2 pasti diikuti kata “puluh”, KECUALI :
    • digit tersebut ‘0’
    • digit ke 3n+2=’1′ dan digit ke 3n+1<>’0′ (karena menghasilkan angkabelasan)
  3. Digit ke 3n+3 pasti dikuti kata “ratus” KECUALI digit tersebut = ‘0’
  4. Karakter ‘1’ ditulis sebagai “satu” jika berada pada posisi 3n+1. KECUALI pada posisi ke 4 (ribuan), bisa ditulis sebagai “se” (‘seribu’) jika dua digit didepannya (digit 5 dan 6) adalah ‘0’. Selain pada posisi itu dan posisi 3n+2, ‘1’ ditulis sebagai “se”.
  5. Jika karakter ‘1’ menempati posisi 3n+2, maka
    • jika karakter dibelakangnya (3n+1) adalah ‘0’ maka kedua digit ditulis sebagai “se”+”puluh”
    • jika karakter dibelakangnya (3n+1) bukan ‘0’ maka kedua digit ditulis sebagai “”+”belas”, kemudian ind dan i masing2 dikurangi 1
      yang berarti kedua digit sudah diterjemahkan.
  6. Karakter ‘0’ tidak diterjemahkan.

Dari lemma-lemma diatas, terlihat bahwa blok seleksi/ logika akan sangat dominan dalam program ini. Pertama-tama kata-kata untuk menerjemahkan digit angka ini kita simpan dahulu dalam array. Dan untuk memudahan penerjemahan dan indexingnya (yup! kita akan bermain-main dengan index di sini πŸ™‚ ), angka ini kita baca dari yang paling kanan (atau lebih mudahnya, angkanya kita balik!). Oh, iya! Jangan lupa dengan special casenya yah! Hati-hati dengan angka 0 dan 1!

So, here it is listing yang saya buat

var pangkat3:array[0..4] of string=('','ribu ','juta ','milyar ','trilyun ');

    //pangkat3 => kata untuk orde 10^3n

    atrib:array[0..3] of string=('belas ','','puluh ','ratus ');

    //atrib => untuk ratusan, puluhan dan belasan

    angka:array[0..9] of string=('se','satu','dua','tiga',

                                 'empat','lima','enam',

                                 'tujuh','delapan','sembilan');

    //angka => menerjemahkan tiap digit angka

    inp:string;

    //inp => angka yang akan diterjemahkan

    ind:integer;

    //ind => bernilai 1-3 untuk menyatakan digit ke 3n+ind

    //berfungsi menentukan atrib yang akan digunakan

    i,j:integer;

    c:char;

begin

  readln(inp);

  i:=length(inp);

  inp:='0'+inp;            //mengatasi input '0'

  while (inp<>'') and (inp[1]='0') do

    begin

      delete(inp,1,1);

    end;

  if inp='' then

    begin

      writeln('nol');

      halt;

    end;

  i:=length(inp);

  while i mod 3<>0 do      //ditambah '0' sampai panjangnya kelipatan 3

    begin                  //untuk mempermudah penulisan nantinya

      inp:='0'+inp;

      inc(i);

    end;

  ind:=3;

  for j:=1 to i div 2 do   //angka dibalik, biar gampang diproses

    begin

      c:=inp[j];

      inp[j]:=inp[i+1-j];

      inp[i+1-j]:=c;

    end;

  while i<>0 do

    begin

      {angka 1 biasa atau menimbulkan angka belasan?}

      if inp[i]='1' then

        if ind<>2 then

          {pilih "se" atau "satu"?}

          if ((ind=1) and (i<>4)) or

             ((i=4) and ((inp[5]<>'0') or (inp[6]<>'0'))) then

             write(angka[1],' ')

          else

            write(angka[0])

        else

          begin

            {angka belasan dan "sepuluh"}

            if (inp[i-1]='0') then write(angka[0])

            else

              begin

                if inp[i-1]='1' then write(angka[0],atrib[0])

                else

                  begin

                    val(inp[i-1],j);

                    write(angka[j],atrib[0]);

                  end;

                dec(i);

                dec(ind);

              end;

          end

      else

        if inp[i]<>'0' then

          begin

            {angka-angka lainnya}

            val(inp[i],j);

            write(angka[j],' ');

          end;

      {ratus dan puluh}

      if inp[i]<>'0' then write(atrib[ind]);

      {ribu, juta, milyar}

      if (ind=1) and ((inp[i]<>'0') or (inp[i+1]<>'0') or (inp[i+2]<>'0')) then

        write(pangkat3[(i-1) div 3]);

      dec(ind);

      dec(i);

      if ind=0 then ind:=3;

    end;

  writeln;

  readln;

end.

Segitiga Pascal – part II

Karena banyaknya permintaan, saya coba buat coding untuk program Segitiga Pascal dalamΒ  C++. Mohon maaf, untuk

program dalam bahasa JAVA, saya belum bisa buat karena pemahaman OOP saya masih cetek dan lebih-lebih, laptop saya

yang sudah tuwa dan mulai rewel menolak untuk diinstall JDK T_T
Algoritmanya tidak jauh berbeda dengan program sebelumnya dalam bahasa Pascal. Hanya saja, untuk kemudahan, saya

gunakan array 2 dimensi saja. Listingnya sebegai berikut

#include <iostream.h>

int main(){
int n,i,j;
unsigned long long arr[101][101];

cin>>n;
for (i=1;i<=n;i++){
for (j=1;j<i;j++){
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
cout<<arr[i][j]<<‘ ‘;
}
arr[i][i]=1;
cout<<arr[i][i]<<‘\n’;
}

return 0;
}

Katanya, banyak jalan menuju Roma. Begitu pula dalam pemrograman. banyak algoritma yang bisa diterapkan untuk

menyelesaikan satu masalah. Berikut ini salah satu coding lain untuk membuat Segitiga Pascal. Masih mengunakan

bahasa C++, hanya dengan sedikit sentuhan STL dan trik minimalisasi memori (duuh, kayakya bahasanya ketinggian,

hehehe… :p ). Here they are

#include <iostream.h>
#include <vector.h>

int main(){
int n,i,j,tmp1,tmp2;
vector <unsigned long long> arr;
bool odd;

cin>>n;
arr.push_back(0);
arr.push_back(1);
if (n>=1) cout<<arr[1]<<‘\n’;

for (i=2;i<=n;i++){
odd=i%2;
tmp1=0;
for (j=1;j<=i/2;j++){
tmp2=arr[j];
arr[j]=tmp1+arr[j];
tmp1=tmp2;
}

for (j=1;j<=i/2;j++) cout<<arr[j]<<‘ ‘;
if (odd) {
arr.push_back(2*tmp1);
cout<<arr[i/2+1]<<‘ ‘;
}
for (j=i/2;j>=1;j–) cout<<arr[j]<<‘ ‘;
cout<<‘\n’;
}
return 0;
}

Kira-kira demikianlah πŸ™‚
semoga bisa membantu dan semoga tidak ngebug juga :p

IOI 2008: Kabar dari Kairo

Atas doa restu segenap bangsa Indonesia akhirnya Tim Olimpiade Komputer Indonesia berhasil merebut 1 medali emas dan 3 perunggu di International Olympiad on Informatics (IOI) ke 20 di Kairo, Mesir. Penantian yang sangat panjang sejak medali emas pertama sebelumnya yaitu pada IOI ke 9 tahun 1997 di Cape Town, Afrika Selatan, akhirnya berhasil dipersembahkan melalui Irvan Jahja, siswa kelas XII, SMA Aloysius I, Kota Bandung.

Hasil yang manis ini disertai juga oleh 3 medali perunggu yang masing-masing diperoleh ketiga anggota tim lainnya: Aditya Surya Pradhitya, siswa kelas XII SMA Kolese Kanisius, Jakarta Pusat, Risan, siswa kelas XII SMAN I Tanggerang dan Listiarso Wastuargo, ex siswa SMAN III Yogyakarta. Sekedar catatan bahwa untuk IOI setiap negara hanya boleh diwakili paling banyak oleh 4 siswa dan masing-masing maksimum mendapatkan satu medali dari sekian banyak medali yang disediakan.

Ini menjadi kado dari Tim Olimpiade Indonesia untuk hari ulang tahun Kemerdekaan Bangsa dan Negara Kesatuan Republik Indonesia yang peringatannya baru berlalu beberapa hari yang lalu.

Perolehan ini menjadi prestasi terbaik yang pernah dicapai oleh tim Olimpiade Komputer Indonesia selama 14 kali mengikuti IOI. Sebagai bandingannya, prestasi terbaik sebelumnya adalah 11 tahun yang lalu dimana Indonesia mendapatkan 1 emas dan 1 perunggu, Jika dihitung jumlah medali, tahun ini mengulangi tahun lalu saat keempat peserta masing-masing berhasil memperoleh medali perunggu bahkan melebihi dengan kualitas medali yang diperoleh. Dengan hasil ini, kiprah Indonesia di olimpide Komputer dunia telah mengkoleksi 2 emas, 9 perak dan 15 perunggu.

Absolute Winner diraih oleh siswa dari China. Sementara dari 24 medali emas yang diperebutkan China dan Polandia masing-masing berhasil menyabet 3 medali emas, AS, Rusia, Taiwan dan Thailand masing-masing memperoleh 2 medali emas. Indonesia bersama dengan 8 negara lainnya (Jepang, Kanada, Australia, dan sejumlah nagara Eropa Timur) mendapatkan masing-masing 1 medali emas. Jadi, Indonesia tahun ini masuk sebagai salah satu dari hanya 14 negara pemenang medali emas, berarti pula berada dalam peringkat 14 besar jika ditinjau dari jumlah medali emas dari 77 negara yang ikut olimpiade informatika ini.

Sebagai bandingan dengan negara lainnya, banyak negara yang sebelumnya adalah pelanggan medali emas, kali ini terpaksa hanya mendapatkan beberapa medali perak atau bahkan perunggu saja atau malahan tidak mendapatkan satu medali pun. Inggris, Bulgaria, Hongaria, Ceko, Belanda, Swedia dan Singapura mendapatkan beberapa medali perak. Negara seperti Jerman, Finlandia, Perancis, Spanyol, Denmark, dan Austria hanya mendapatkan beberapa perunggu saja. Bahkan negara maju seperti Portugal dan Irlandia tidak mendapatkan satu medali pun.

Perjuangan tim Indonesia tidaklah mudah. Soal-soal yang diberikan memiliki tingkat kesulitan yang sangat tinggi. Beberapa soal bahkan memerlukan kemampuan analitis seorang mahasiswa S2 dalam memecahkan persoalan yang diberikan. Sebagaimana yang sering dijelaskan, pertandingan tingkat IOI sudah tidak lagi mempersoalkan ketrampilan pemrograman, melainkan ketajaman analitikal dalam memecahkan persoalan. Setelah persoalan dipecahkan, berikutnya mencari metoda dan pendekatan yang paling tepat dan paling efisien agar ketika solusinya diterjemahkan menjadi program maka program yang dihasilkan memiliki ketepatan dan kecepatan yang setinggi-tingginya. Kesalahan kecil berakibat fatal. Ketidak efisienan menghasilkan berkurangnya nilai yang diperoleh. Program yang benar saja untuk menjawab persoalan yang diberikan paling hanya memperoleh nilai 15 angka. Semua itu harus dikerjakan dalam rentang waktu yang sangat singkat (3 soal dalam 5 jam per harinya).

Irvan yang juga adalah pemenang medali emasi APIO (Olimpiade Komputer tingkat Asia Pasific) 2008, di hari pertama melakukan kesalahan kecil saja tetapi berakibat fatal sehingga hasilnya yang paling kecil di antara peserta kita, yaitu 126 dari nilai maksimal 300. Sempat juga ia terpukul mentalnya akibat kesalahan tersebut, tetapi syukurlah pada hari yang kedua ia bangkit dan memperoleh nilai 235 dari nilai maksimal 300, yaitu saat peserta lainnya yang giliran nilainya jatuh, menjadi total 365. Dengan demikian, ia berhasil mengejar ketinggalan dari sejumlah peserta untuk masuk kategori emas. Sementara para pemenang emas lainnya adalah mereka yang memperoleh nilai cukup baik di dua hari pertandingan tersebut..

Reinardus Surya Pradithya, Risan dan Listiaso masing-masing memperoleh perunggu kerena tidak berhasil mencapai batas nilai perak yaitu 230 sementara mereka masing-masing adalah 213, 184 dan 153. Sekedar catatan, nilai yang diperoleh Reinardus Surya Pradhitya berselisih 17 angka dari batas nilai perak.

Atas apa yang telah diperoleh ini, perlu kami menyampaikan penghargaan kami ke berbagai pihak. Selama di Kairo pihak KBRI sangat memperhatikan keberadaan rombongan dan standby apabila sewaktu-waktu rombongan memerlukan bantuan. Bapak Duta Besar sempat memberikan wejangan yang membangkitkan motivasi terutama keempat siswa kita. Dengan semua dukungan ini cukup melegakan bagi rombongan selama mengikuti pertandingan karena cuaca panas (sekitar 380 C di siang hari) dan makanan yang tentu tidak sama dengan di tanah air.

Tak kalah dukungannya adalah dari rekan-rekan Direktorat SMA di tanah air yang hampir setiap hari menghubungi rombongan untuk mengetahui perkembangan yang terjadi. Begitu juga halnya para rekan-rekan pembina lainnya tidak ikut ke Kairo. Usaha, tenaga, perhatian dan dukungan termasuk doa yang telah diberikan selama ini baik mulai dari tingkat seleksi paling awal hingga rankaian pelatnas yang dilalui, hingga keberadaan di Kairo ternyata telah berbuahkan hasil yang cukup membanggakan. Di antaranya juga, para alumni TOKI yang sangat penting partisipasinya baik langsung maupun tidak langsung dalam mengasah ketajaman analsis para adik-adiknya ini. Para peserta seleksi 2007-2008 yang tidak lolos secara tidak langsung juga berperanan bagi keberhasilan ini. Persaingan yang ketat saat di OSN, dan serangkaian pelatnas terutama pelatnas III yang “jauh lebih sengit” lagi persaingannya telah membentuk mental bertanding keempat anggota TOKI 2008 ini.

Dilain pihak, berkaca dari negara-negara yang lebih baik prestasinya, rasanya kita masih perlu meningkatkan keseriusan dalam hal ini. Pembinaan yang dilakukan lebih untuk memoles dan mempersiapkan siswa tetapi hasil yang diperoleh tetap lah sangat bergantung potensi siswa yang bersangkutan. Jika keberhasilan kali ini karena berhasil menjaring siswa berpotensi seperti Irvan cs., maka di masa depan harusnya lebih banyak lagi siswa potensial demikian bisa direkrut untuk dibina. Mereka pastinya cukup banyak tersebar di seantero tanah air, namun banyak kendala baik dari sekolah, birokrat dinas pendidikan setempat, maupun keterbatasan pusat sehingga mereka tidak muncul kepermukaan. Seandainya semua pihak melihat hal ini sebagai kepentingan nasional, bukannya sebagai kepentingan yang sempit, rasanya kita tidak akan kalah dari Thailand bahkan dari China, AS dan Rusia sekalipun.

Semoga ini menjadi motivasi bagi para siswa kita di tanah air untuk berdiri tegak menghadapi tantangan masa depan mereka sendiri. Prestasi ini telah membuktikan bahwa kita memiliki kemampuan yang tidak kalah dari bangsa lain selama kita mau belajar tekun dengan tekad yang kuat. Tidak bisa dipungkiri lagi bahwa masa depan penuh tantangan dan keberhasilan kita sangatlah ditentukan oleh keuletan untuk menguasai ilmu dan teknologi khususnya teknologi informasi dan ilmu komputer.

Salam dari Kairo.
22 Agustus 2008

  • Suryana Setiawan (Delegation Leader)
  • Adi Mulyanto (Deputy Leader)
  • Julio Adisantoso (Pembina)
  • Ilham W Kurnia (Pembina)
  • Irvan Jahja
  • Reinardus S Pradhitya
  • Risan
  • Listiarso Wastuargo

(diutip dari toki.or.id)

Wow!!

Great Achievement!

Akhirnya pecah telur nih, 10 tahun tanpa emas. Plus, semua pulang bawa medali ^o^

Nice job Bro! You did good!

Selamat..selamat..selamat..

Selamat dan terima kasih juga kepada semua pembina dan alumni TOKI yang telah guyub rukun menggojlok TOKI 2008 ini.

Semoga prestasi ini dapat terus dipertahankan, atau bahkan ditingkatkan ditahun-tahun yang akan datang.

Amiiin!!!

Standing Applause for TOKI!! πŸ™‚

And Indonesia Represented by…..

Berikut adalah hasil final PELATNAS 3 (Tim Olimpiade Komputer Indonesia) TOKI 2008 yang telah dilaksanakan di Fakultas Ilmu Komputer Universitas Indonesia pada tanggal 5-17 Mei 2008 yang lalu. Pada kesempatan PELATNAS 3 tersebut, para peserta pun sempat mengikuti dan meraih prestasi pada ajang APIO 2008 (baca : [tokinet] Siswa Indonesia Raih Medali Emas di Ajang Olimpiade Informatika Asia Pasifik 2008 (APIO 2008))
Empat siswa terbaik pada PELATNAS 3 ini tentunya akan mewakili Indonesia pada ajang International Olympiad in Informatics (IOI) yang akan diadakan di Mesir pada tanggal 16-24 Agustus 2008 nanti.

ID NAMA ASAL SEKOLAH POIN (maks 33600) NILAI (maks 100)
P080301b IRVAN JAHJA SMA ST. ALOYSIUS 1 BANDUNG 22072 65.69
P080303b REINARDUS SURYA PRADHITYA SMA KANISIUS JAKARTA 15185.67 45.2
P080302b RISAN SMAN 1 TANGERANG 14340.78 42.68
P080307b LISTIARSO WASTUARGO SMAN 3 YOGYAKARTA 13934.23 41.47
P080305b RICKY WINATA SMA XAVERIUS 1 JAMBI 13038.77 38.81
P080304b GREGORIUS RONNY KALUGE SMA KOLESE SANTO YUSUP MALANG 12262.01 36.49
P080311b ANGELINA VENI JOHANNA SMAK 1 BPK PENABUR JAKARTA 9636.78 28.68
P080308b SAMBYA ARYASA SMAK 1 BPK PENABUR JAKARTA 9121.97 27.15
P080306b YUDI UMAR SMA SUTOMO 1 MEDAN 6346.19 18.89

Selamat kepada empat besar terpilih. Semoga prestasi kalian tidak berhenti sampai PELATNAS 3 ini saja, melainkan juga pada IOI 2008 dan ajang-ajang berikutnya. Bagi yang belum berkesempatan untuk menjadi empat besar pada PELATNAS 3 ini, usaha kalian sudah baik hingga mencapai PELATNAS 3, kesuksesan TOKI pada IOI 2008 pun tidak akan luput dari usaha kalian yang telah memberikan kompetisi yang baik dan tidak mudah untuk empat besar terpilih. Bagi siswa/i di seluruh Indonesia yang sedang mempersiapkan OSN 2008, semoga berita ini menjadi penyemangat. Bisa jadi kalian yang menjadi salah satu dari empat siswa siswa/i terbaik milik Indonesia untuk IOI berikutnya!
Go Get Gold! Viva TOKI!

(dikutip dari toki.microbrainx.net)

Vector di C++. Array dinamis di Pascal???

Beberapa hari yang lalu, tumben lagi semangat coding. Mulai buka2 deh tutorial STL untuk C++. Kenapa STL? Karena konon katanya, STL C++ tuh isinya banyak tentang struktur data baru dan sintaks2 aneh lainnya. Bayangin aja, prosedur quicksort yang kalo koding di pascal bisa beberapa baris (rawan bug pula), bisa diselesaikan pake STL dengan hanya 1 baris sintaks, qsort().

Cukup sebel juga awalnya, kenapa di pascal kok gak bisa yah? Karena itu, terpaculah saya belajar STL. Yang pertama aku baca yaitu tentang vector. Vector nih bisa dibilang evolusinya array, atau aku sebut saja smart array. Kenapa? Antara lain, sifatnya sangat dinamis. vector ini bisa berkembang dan menyusut sewaktu-waktu dengan sintaks(atau mungkin lebih tepat disebut member, karena sepertinya vector itu sejenis class) yang simple. Sebut saja push_back(), yaitu menambahkan elemen baru sebagai elemen terakhir di vector, atau pop_back() yaitu menghapus/ memotong elemen terakhir dari vector. Dengan ini, kita bisa dengan mudah membuat dan mengolah struktur data , misal stack, tanpa harus repot memikirkan ukuran array. suatu vector juga dapat melaporkan ukurannya, yaitu dengan sintaks size(). Selain itu, masih banyak lagi member-member vector yang sangat amat berguna.

Dan ketika sedang terkagum-kagum dengan vector, esok harinya tiba-tiba Pak Janoe menjelaskan tentang deklarasi array dinamis di Pascal (????????).
Hah? ada ya?
Memang sih, cuma ada di beberapa compiler, Free Pascal misalnya. Tapi itu itu sudah cukup membuat saya shock. Deklarasinya mirip deklarasi array pada umumnya. Bedanya, ukuran array tidak ditentukan di awal, seperti ini :

var arr:array of integer;

Nah lo, ukurannya gimana? Ukuran array tersebut kemudian kita tentukan dengan sintaks
setlength(nama_array,ukuran);
Array dinamis ini pun bisa mengembang dan menyusut sewaktu-waktu, tentunya dengan menggunakan sintaks setlength beberapa kali. Bahkan, ketika arraynya kita perbesar, data yang kita masukkan sebelumnya tidak hilang!!

AArrgh!! Meringis hatiku! Coba aku tahu tentang array ini 2 tahun yang lalu! T_T

Pengalaman Jadi Asisen TOKI

Selama 2 minggu lebih, aku jadi asisten Pelatnas II TOKI yang baru tahun ini, dicoba dilaksanakan di kampusku, UGM. Awalnya kupikir mudah, ternyata capek banget. 2 minggu lebih aku nemenin peserta selama pelatihan. Nyiapkan soal (masang tok sih, bukan bikin), set grader, rekap nilai dan masih banyak yang lain. Kadang-kadang buat nyiapin latihan aja, sampai jam 9 di Lab. Bayangin aja, berangkat jam 7 pagi, pulang rumah jam 9 malem. “Dah kaya orang kerja aja, tinggal nikahnya aja yang blom”, kata temen sekontrakanku :D. Banyak matakuliahku yang terpaksa harus bolos untuk nepatin jadwal jaga asisten dan nyelesaikan tugas. Apesnya, ban motor sampai harus diganti 2 kali bulan ini. Belum lagi kalau ternyata ada salah cetak, salah testcase, soal belum dikirim dari pusat, nyariin soal tambahan, dan yang parah kalo tiba-tiba peserta tanya deskripsi soal dan aku nggak bisa jawab gara-gara belum baca soalnya. Gawat deh pokoknya.
Tapi walau capek, ternyata seru juga. Mungkin lebih seru dari pada waktu aku jadi peserta tahun lalu. Lewat pelatnas ini aku jadi kenal banyak orang lebih dekat. Mulai dari Dosen, peserta pelatnas, asisten-asisten lain dan masih banyak lagi yang lain. Pengeluaran bulanan juga bisa ngirit banget, makan siang dan malem bisa ngambil dari lebihannya jatah peserta :p. Akses internet jor-joran ampe gak kuat, pingin muntah rasanya. Dan malem minggu, ikutan jalan-jalan deh, nemenin anak-anak ke sekatenan dan Ambarrukmo. Asik deh pokoknya.
After all, sekarang aku ngerti gimana repot dan capeknya jadi asisten pelatnas. Gimana dulusi Roberto nyiapin soal buat pelatnasku. Untungnya, aku disupport banyak orang disekitarku. Thanks to Mas Wahyono yang dah mau repot nyariin soal dan set grader harian. To Brian Marshal, Prima Ch, Adrian KP dan alumni TOKI lain yang banyak banget kontribusi soal untuk pelatnas ini(Pelatnas gak bakal jalan tanpa kalian). Para Dosen yang telah banyak memberi materi. Bu Inge, Pak Adi, Bu Fazath yang sudah jauh-jauh menyempatkan diri datang ke Jogja untuk membimbing peserta. Roberto dan Kevin yang juga banyak banget bantu. Thanks a lot to Bang Afif yang kebagian desain booklet dan rencana jalan-jalan (Maaf ya Bang, laptop saya rewel). Mas Aaron dan Ardian yang dah banyak bantu dan ngejagain selama Pelatnas. Dan tidak lupa Mbak Hanna dan Fristi sang bendahara. Semoga kerjasama ini dapat berlangsung terus kedepan. Dan semoga, UGM bisa menyelenggarakan pelatnas lagi tahun depan (tentunya saya ikut lagi jadi asisten lagi :P).