Petunjuk Mengerjakan
Doni Setio Pambudi   2015-08-02 09:28:08

Video Tutorial Pengerjaan

Halaman Pengerjaan

Soal di sistem kompetisi ini dikerjakan dengan menuliskan kode untuk menggerakkan robot sehingga bagian yang ditandai sama dengan soal, berikut ini adalah gambaran dari halaman pengerjaan

Lembar pengerjaan

 

Keterangan :

  1. Soal yang sedang aktif, untuk mengganti soal pilih disini.
  2. Isi dari pertanyaan, yaitu Judul, Deskripsi, Parameter soal (kode maksimal, dan kode terpendek yang dicatat system)
  3. status jawaban terakhir jika pernah dijawab.
  4. Data yang digunakan untuk simulasi, dan data real ketika simulasi
  5. Pertanyaan
  6. Arena Simulasi
  7. Kode yang diinputkan peserta
  8. Tempat error dari proses kompilasi kode peserta

Ketentuan Umum

  1. Panjang kode yang diinputkan telah diatur oleh soal, dan panjang kode jawaban tidak boleh melebihi panjang kode yang ditentukan.
  2. Maksimum stack move yang diijinkan adalah 1000. Untuk melihat kegunaan stack move dapat dilihat pada bagian stack move.
  3. Maksimum stack processing yang diijinkan adalah 200. Untuk melihat kegunaan stack processing dapat dilihat pada bagian stack processing.
  4. Maksimum stack move dan maksimum stack processing telah diset dengan nilai yang tinggi dan secara teori tidak mungkin jawaban mempunyai nilai stack move dan stack processing lebih tinggi dari yang ditentukan pada no 2 dan 3.
  5. Arah robot ditentukan oleh panah yang ada, arah dapat atas, bawah, kiri dan kanan, arah ini mempengaruhi perintah S (maju).

Kode

Kode yang dapat dituliskan adalah HURUF (A-Z), ANGKA (0-9), : (titk dua), dan enter, jenis kode dibagi menjadi beberapa bagian :

  1. Kode standard

    , karakter yang digunakan dalam kode standard tidak boleh digunakan sebagai nama fungsi, karakter/huruf kode standard yaitu :
    • S = straight (berfungsi untuk memajukan robot 1 langkah / 1 kotak). kemana majunya bergantung pada arah robot
    • L = left (berfungsi untuk mengubah arah robot ke kiri tanpa berpindah posisi).
    • R = right (berfungsi untuk mengubah arah robot ke kanan tanpa berpindah posisi).
    • D = down (berfungsi untuk mengaktifkan pena dari robot untuk menandai posisi / kotak yang dilewati dengan tanda warna merah).
    • U = up (berfungsi untuk menonaktifkan pena dari robot sehingga kotak yang terlewati tidak ditandai dengan warna merah). 
      Catatan pada perintah U, jika pen diangkat dan robot bergerak pada daerah yang telah ditandai, maka robot akan menghilangkan tanda pada posisi yang dituju.
  2. Fungsi

    yaitu sekumpulan karakter yang dijadikan 1 dan dapat dipanggil dengan nama fungsi tersebut, penulisan fungsi adalah karakter selain no 1 dan : (titik dua) kemudian diikuti titik dua dan fungsi yang ingin dijadikan 1, isi dari fungsi dibatasi hanya dari titik dua sampai dengan enter (hanya 1 baris) namun jumlah karakter tiap fungsi tidak dibatasi, misalkan :
    A:SSLSS

    contoh : tanpa memakai fungsi maka kode untuk maju 8 langkah adalah :
    SSSSSSSS

    jika memakai fungsi maka kode untuk maju 8 langkah adalah :
    A:SSSS
    AA

    Nama fungsi hanya bisa 1 karakter. Fungsi dapat dipanggil dari fungsi yang lain dengan syarat harus ditulis terlebih dahulu diatasnya, contoh :
    A:SSS
    B:AA
    B

    contoh diatas benar, contoh dibawah ini adalah contoh yang salah
    B:AA
    A:SSS
    B


    contoh diatas salah karena A ditulis setelah B

  3. Perintah Utama

    Semua yang ada didalam kode peserta selain definisi fungsi adalah perintah utama, perintah utama inilah nantinya yang akan dijalankan oleh sistem, dalam perintah utama dapat dituliskan fungsi, contoh perintah utama adalah sebagai berikut :
    A:SSS
    B:ALL
    BSUSSDAB

    contoh diatas yang tebal adalah perintah utama, perintah utama dapat terdiri dari banyak baris, atau melewati sebuah fungsi, misalkan

    DRS
    A:SSS
    LR
    B:ALL
    B
    contoh diatas yang tebal adalah perintah utama

    simulator akan menjalankan apa yang ada diperintah utama, bukan di definisi fungsi, jadi seandainya ada kode sebagai berikut tidak akan menghasilkan apapun :
    A:SSSS

    perintah utama akan dieksekusi dari depan hingga perintah utama selesai, apabila ada fungsi yang dipanggil, maka fungsi akan diterjemahkan hingga menjadi kode standard.

  4. Rekursif

    Dalam sistem ini sebuah definisi fungsi dapat memanggil nama fungsi tersebut atau yang lebih dikenal dengan rekursif, contoh fungsi rekursif :

    A:SSA

    DA
    fungsi A diatas memanggil dirinya sendiri sehingga dapat dikatakan fungsi ini selalu berulang, sehingga hasil output dari fungsi adalah bergerak hingga melebihi move stack atau melebihi processing stack.

 Stack Move

Tiap sebuah karakter kode standard adalah bernilai 1 stack move, semakin banyak gerakan yang dihasilkan dari sebuah kode, maka nilai stack move juga akan semakin besar, nilai maksimum stack move adalah 1000. semua kode yang ada akan diterjemahkan menjadi kode standard pada simulasi, dan nilai stack move diakumulasikan oleh berapa banyak gerakan yang dilakukan, apabila gerakan melebihi maksimum stack move, maka yang diambil adalah 1000 gerakan pertama.

Contoh :

SSSSLRSDUSS

Stack move = 11

 

A:SS

AAAA

Stack move = 8

 

Stack Processing

stack processing digunakan untuk menerjemahkan sebuah kode menjadi kode standard untuk mengisi stack move, namun nilai stack processing akan bervariasi dan tidak selalu bertambah tergantung kebutuhan pada saat kompilasi.

misalkan ada sebuah kode :

A:SS

A

maka nilai stack processing adalah 2, karena A diganti dengan SS

 

Nilai stack move dan stack processing tidak perlu membingungkan peserta, nilai maksimumnya telah diset sehingga semua solusi dari pertanyaan dipastikan dapat diraih dengan nilai maksimum yang ada.

 

Perhitungan Nilai

Dalam sistem ini terdapat 2 buah jenis nilai :

  1. Jumlah soal yang dijawab dengan benar.
    Setiap 1 soal dijawab dengan benar, maka sistem akan mencatat sebagai 1 poin
  2. Jumlah bonus nilai.
    Jika soal dijawab dengan benar dan kode yang digunakan dibawah batas yang ditentukan, maka peserta mendapatkan bonus nilai dengan perhitungan sebagai berikut :
    NILAI BONUS = BATAS KODE MAKSIMUM - PANJANG KODE PESERTA

 

Peringkat

Peringkat kompetisi ditentukan dengan cara sebagai berikut :

  1. Diurutkan berdasarkan jumlah soal yang dijawab dengan benar, jika sama, maka
  2. Diurutkan berdasarkan bonus nilai yang terbesar, jika sama maka
  3. Dirutkan berdasarkan peserta yang mengerjakan lebih dahulu