Pemrograman kompetitif: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Skylens (bicara | kontrib)
Skylens (bicara | kontrib)
Baris 19:
Pada sebagian besar kontes, penilaian dilakukan otomatis oleh komputer, biasanya dikenal sebagai ''judge.'' Setiap solusi yang dikirimkan oleh kontestan akan diuji oleh ''judge'' melewati serangkaian kasus uji (biasanya rahasia). Secara normal, soal-soal dari kontes memiliki sistem penilaian ''all-or-none'', yang berarti kontestan akan mendapat skor jika dan hanya jika solusi yang mereka berikan berhasil melewati seluruh kasus uji yang diberikan oleh ''judge'', dan tidak akan mendapat apa-apa jika ada paling tidak satu kasus uji yang gagal dilewati. Namun, ada beberapa soal yang memiliki sistem penilaian parsial, yang berarti kontestan akan mendapat skor tergantung dari jumlah kasus uji yang berhasil dilewati, kualitas dari hasil, atau kriteria lainnya. Pada beberapa kontes, kontestan hanya perlu mengirimkan output dari input yang diberikan, lalu ''judge'' cukup menganalisa output yang dikirimkan.
 
''Online judge'' adalah tempat penilaian yang dilakukan secara daring. ''Online judge'' memiliki fitur ranklist yang menampilkan peserta yang memiliki jumlah solusi yang berhasil, dan/atau waktu tercepat untuk menyelesaikan masalah.<ref>[https://www.amazon.com/Programming-Challenges-Steven-S-Skiena/dp/0387001638 Programming Challenges (Skiena & Revilla)] {{ISBN|0387001638}}, {{ISBN|978-0387001630}}</ref>
 
== Kompetisi terkenal ==
Baris 106:
! style="min-width:15%" |[[Situs web|Situs Web]]
|-
|[[:en:CodeChef|CodeChef]]<ref name="Luigi16">{{cite journal|last1=Luigi|first1=William Di|last2=Farina|first2=Gabriele|last3=Laura|first3=Luigi|last4=Nanni|first4=Umberto|last5=Temperini|first5=Marco|last6=Versari|first6=Luca|year=2016|title=oii-web: an Interactive Online Programming oii-web: an Interactive Online Programming Contest Training System|url=https://ioinformatics.org/journal/v10_2016_207_222.pdf|journal=Olympiads in Informatics|volume=10|pages=207–222}}</ref><ref name="oi_vol82oi_vol8">{{cite journal|last1=Combéfis|first1=Sébastien|last2=Wautelet|first2=Jérémy|year=2014|title=Programming Trainings and Informatics Teaching Through Online Contests|url=https://ioinformatics.org/journal/v8_2014_21_34.pdf|journal=Olympiads in Informatics|volume=8|pages=21–34}}</ref>
|
Dipelihara oleh [[Unacademy]], yang mengadakan sebuah kontes berdurasi 10 hari dan dua buah kontes kecil setiap bulan (satu bergaya IOI bernama Lunchtime dan yang lainnya bergaya ICPC bernama Cook-Off), juga menyediakan tempat pengadaan kontes untuk institusi edukasi secara gratis. Dua pemenang teratas dari kontes panjang mendapatkan hadiah tunai dan 10 teratas mendapatkan sebuah kaus.
Baris 113:
|[[CodeCup]]
|
Kompetisi pemrograman [[kecerdasan buatan]] permainan papan internasional tahunan yang diatur oleh Dutch Olympiad in Informatics sejak tahun 2003.<ref name="hak113hak11">Lasse Hakulinen. [https://www.academia.edu/1606336/Survey_on_Informatics_Competitions_Developing_Tasks Survey on Informatics Competitions: Developing Tasks] – Olympiads in Informatics, 2011, Vol. 5, 12–25.</ref><ref name="les143les14">{{cite web|last=Wevers|first=Lesley|year=2014|title=Monte-Carlo Tree Search for Poly-Y|url=http://lesley.ws/files/polyy14.pdf|location=[[University of Twente]]|archive-url=https://web.archive.org/web/20170413210719/http://lesley.ws/files/polyy14.pdf|archive-date=13 April 2017|accessdate=16 September 2018}}</ref>
|[https://codecup.nl codecup.nl]
|-
Baris 138:
|[https://hackerrank.com hackerrank.com]
|-
|[[:en:Project_Euler|Project Euler]]<ref name="oi_vol82oi_vol8" />
|Koleksi besar masalah komputasi matematika (yang tidak berhubungan langsung dengan pemrograman namun seringkali membutuhkan kemampuan memprogram untuk memecahkannya).
|[https://projecteuler.net projecteuler.net]
Baris 155:
|-
|[[Open Kattis]]
|Versi publik dari sistem manajemen kontes Kattis, dengan arsip yang berisi lebih dari 2.600 buah masalah.<ref name="sigcse164sigcse16">{{cite journal|last1=Bloomfield|first1=Aaron|last2=Sotomayor|first2=Borja|title=A Programming Contest Strategy Guide|url=https://people.cs.uchicago.edu/~borja/pubs/sigcse2016-programming-contests.pdf|journal=SIGCSE '16: Proceedings of the 47th ACM Technical Symposium on Computing Science Education}}</ref>
 
Kattis dikembangkan untuk membantu kursus ilmu komputer, juga digunakan untuk mengadakan kompetisi yang bergengsi, seperti ICPC World Finals.<ref>{{cite journal|author1=Enström, E.|author2=Kreitz, G.|author3=Niemelä, F.|author4=Söderman, P.|author5=Kann, V.|year=2011|title=Five years with Kattis – using an automated assessment system in teaching|url=https://www.csc.kth.se/~gkreitz/kattis-fie11/kattis-fie11.pdf|journal=IEEE Frontiers in Education Conference}}</ref>
Baris 172:
 
== Manfaat dan kritik ==
Partisipasi dalam kontes pemrograman dapat meningkatkan antusiasme siswa terhadap bidang studi [[ilmu komputer]]. Kemampuan yang didapatkan dari kontes pemrograman seperti ICPC juga meningkatkan prospek karir kedepannya, karena kemampuan tersebut dapat berguna untuk mengerjakan soal-soal interview kerja, yang seringkali kandidat diminta untuk menyelesaikan masalah pemrograman kompleks dan algoritma secara langsung.<ref name="sigcse163sigcse16">{{cite journal|last1=Bloomfield|first1=Aaron|last2=Sotomayor|first2=Borja|title=A Programming Contest Strategy Guide|url=https://people.cs.uchicago.edu/~borja/pubs/sigcse2016-programming-contests.pdf|journal=SIGCSE '16: Proceedings of the 47th ACM Technical Symposium on Computing Science Education}}</ref>
 
Namun ada juga kritik terhadap pemrograman kompetitif yang secara spesifik disampaikan oleh pengembang perangkat lunak profesional.<ref name="rg15">{{cite web|last=Smith|first=Duncan|date=December 2, 2015|title=The Competitive Programming Debate|url=https://www.redgreencode.com/the-competitive-programming-debate/}}</ref> Salah satu poin penting yang disampaikan adalah banyak kompetisi pemrograman serba cepat yang mengajarkan kompetitornya kebiasaan pemrograman dan gaya kode yang buruk. Contohnya seperti penggunaan makro yang tidak perlu, kurangnya abstraksi [[pemrograman berorientasi objek]], kode komentar yang menjelaskan isi dari kode tersebut, penamaan variable yang pendek, dan lain-lain.<ref>{{cite web|last=Halim|first=Steven|title=CS3233 - Competitive Programming|url=https://www.comp.nus.edu.sg/~stevenha/cs3233.html|website=NUS School of Computing}}</ref><ref name="rg152rg15">{{cite web|last=Smith|first=Duncan|date=December 2, 2015|title=The Competitive Programming Debate|url=https://www.redgreencode.com/the-competitive-programming-debate/}}</ref> Selain itu, dengan hanya menawarkan permasalahan algoritmik yang kecil dengan solusi yang relatif singkat, kompetisi pemrograman seperti ICPC dan IOI tidak serta merta mengajarkan keterampilan dan praktik rekayasa perangkat lunak yang baik, sedangkan proyek perangkat lunak pada dunia kerja biasanya memiliki ribuan baris kode dan dikembangkan oleh tim besar dalam jangka waktu yang lama.<ref name="rg153rg15">{{cite web|last=Smith|first=Duncan|date=December 2, 2015|title=The Competitive Programming Debate|url=https://www.redgreencode.com/the-competitive-programming-debate/}}</ref> [[Peter Norvig]] menyatakan bahwa berdasarkan data yang tersedia, menjadi pemenang dari kontes pemrograman berkorelasi negatif dengan kinerja ''programmer'' pada pekerjaannya di Google. Meski demikian, pemenang kontes memiliki peluang lebih tinggi untuk mendapatkan pekerjaan.<ref>{{cite web|date=April 5, 2015|title=Winning at programming competitions is a negative factor for being good on the job|url=https://www.youtube.com/watch?v=DdmyUZCl75s}}</ref>
 
Ada juga sentimen lain yang berkata bahwa daripada membuang-buang waktu dengan berkompetisi secara berlebihan menyelesaikan masalah yang solusinya sudah ada, ''programmer'' lebih baik menginvestasikan waktu mereka dengan menyelesaikan dunia nyata.<ref name="rg154rg15">{{cite web|last=Smith|first=Duncan|date=December 2, 2015|title=The Competitive Programming Debate|url=https://www.redgreencode.com/the-competitive-programming-debate/}}</ref>
 
== Literatur ==
Baris 189:
 
== Referensi ==
<references responsive="" />
== Pranala luar ==