Pemrograman kompetitif: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Skylens (bicara | kontrib)
k Kontes online dan sumber latihan: Mengubah link ke wikipedia id
Warren Mazmur (bicara | kontrib)
Edit links
Baris 1:
 
[[Berkas:ЯндексАлгоритм.jpg|jmpl| Petr Mitrichev (kiri) dan Gennady Korotkevich (kanan), dua ''programmer'' kompetitif terkemuka dalam sebuah kontes.]]
'''Pemrograman kompetitif''' adalah [[olahraga pikiran]] yang diadakan menggunakan [[internet]] atau [[Jaringan Lokalarea Nirkabellokal|jaringan lokal]], di mana para perserta mencoba untuk membuat program komputer sesuai dengan spesifikasi yang diminta, dalam waktu yang terbatas. Kontestan dari pemrograman kompetitif biasa disebut juga ''sport programmers''. Pemrograman kompetitif diakui dan didukung oleh beberapa perusahaan perangkat lunak dan internet multinasional, seperti [[Google]]<ref>{{cite web|title=Google Code Jam|url=http://code.google.com/codejam|work=google.com|accessdate=2016-02-20}}</ref><ref>{{cite web|title=TCO12 Sponsor: Google - TCO 12|url=http://community.topcoder.com/tco12/overview-sponsor/tco12-sponsor-google/|work=topcoder.com|archiveurl=https://web.archive.org/web/20120216103218/http://community.topcoder.com/tco12/overview-sponsor/tco12-sponsor-google/|archivedate=February 16, 2012|url-status=dead}}</ref> dan [[Facebook]]<ref>{{cite web|title=Facebook Hacker Cup|url=http://www.facebook.com/hackercup|work=Facebook|accessdate=2016-02-20}}</ref>. Ada beberapa organisasi yang mengadakan kompetisi pemrograman secara teratur.
 
Sebuah kompetisi pemrograman biasanya melibatkan tuan rumah yang memberikan sejumlah masalah logika dan matematika, yang disebut juga sebagai teka-teki, kepada para kontestan (yang jumlahnya beragam mulai dari puluhan hingga ribuan orang), dan para kontestan ini diminta untuk menuliskan program-program komputer yang memiliki kemampuan untuk menyelesaikan setiap masalah yang diberikan. Penilaian seringkali berdasarkan jumlah masalah yang diselesaikan dan waktu yang dihabiskan untuk memprogram solusi yang benar, namun dapat juga dipengaruhi oleh faktor-faktor lainnya (kualitas dari keluaran yang dihasilkan, waktu untuk mengeksekusi program, ukuran dari program, dan lain-lain).
Baris 36:
* [[Google Code Jam]] - kompetisi yang diadakan dari tahun 2003, disediakan dan disponsori oleh [[Google]]
* [[IEEEXtreme Programming Competition]] <ref name="oi_vol8">{{Cite journal|last=Combéfis|first=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> - kompetisi tahunan untuk Anggota Mahasiswa IEEE yang diadakan sejak tahun 2006 oleh [[Institute of Electrical and Electronics Engineers|IEEE]] .
* [[Topcoder Open]] (TCO) - Kompetisi algoritma yang diadakan sejak tahun 2001 oleh [[Topcoder]]
 
Untuk sebagian besar kompetisi-kompetisi di atas, karena jumlah kontestan yang mengikutinya cukup banyak, maka biasanya kompetisi-kompetisi tersebut dibagi menjadi beberapa babak. Babak tersebut biasa diadakan secara online terkecuali babak terakhir, yang diadakan di tempat. Sebuah pengecualian khusus untuk ini adalah IEEEXtreme yang merupakan kompetisi pemrograman virtual tahunan yang berdurasi selama 24 jam. Para kontestan terbaik IOI dan ICPC mendapatkan medali emas, perak, dan perunggu, sedangkan di kontes-kontes lainnya para pemenang diberi hadiah uang tunai. Selain itu, mendapatkan peringkat atas pada papan skor dalam kompetisi-kompetisi semacam ini juga dapat menarik minat para perekrut dari perusahaan perangkat lunak dan Internet.
Baris 43:
 
* HackerRank Week of Code<ref>{{Cite web|title=Programming problems and Competitions :: HackerRank|url=http://www.hackerrank.com/contests/w22|website=HackerRank|access-date=2016-02-20}}</ref>
* [[ICFP Programming Contest]] - kompetisi tahunan berdurasi 3 hari yang diadakan sejak tahun 1998 oleh [[International Conference on Functional Programming]]
* Topcoder Marathon Matches
* Codechef Long Challenges - diadakan setiap bulan - berlangsung paling lama 10 hari
Baris 53:
* CodeCup – kompetisi kecerdasan buatan permainan papan yang diadakan secara tahunan sejak tahun 2003. Aturan permainan diumumkan pada bulan September dan turnamen finalnya diadakan pada bulan Januari.<ref>{{cite web|title=CodeCup|url=https://www.codecup.nl/intro.php|work=www.codecup.nl}}</ref><ref name="hak11">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="les14">{{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>
 
* [[Google [[AI Challenge]] – kompetisi yang diadakan dua kali setiap tahun untuk mahasiswa yang berlangsung dari tahun 2009 hingga 2011
 
* [[Halite]]<ref>{{cite web|title=Halite Artificial Intelligence Programming Challenge|url=https://www.halite.io|work=www.halite.io}}</ref> – Sebuah tantangan pemrograman kecerdasan buatan yang disponsori oleh Two Sigma, Cornell Tech,<ref>{{cite web|title=Two Sigma Announces Public Launch of Halite|url=https://tech.cornell.edu/news/two-sigma-announces-public-launch-of-halite-ai-coding-game|work=tech.cornell.edu}}</ref> and Google<ref>{{cite web|title=Halite helps students and developers compete to build better AI on Google Cloud Platform|url=https://cloud.google.com/blog/big-data/2017/10/halite-helps-students-and-developers-compete-to-build-better-ai-on-google-cloud-platform}}</ref>
 
* [[Russian AI Cup]] kontes pemrograman kecerdasan buatan terbuka
Baris 118:
|[[Codeforces]]<ref name="sigcse16">{{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><ref name="Luigi16" />
|
Sumber daya Russia, dipelihara oleh [[Universitas ITMO]], yang biasanya menyediakan kontes-kontes pendek secara cukup sering (hingga dua per minggu). Fitur khusus: semua solusi bersifat [[sumber terbuka]], kemampuan untuk mengecek kebenaran dari solusi para kontestan lainnya selama “fase peretasan”, kontes virtual, pelatihan, dll.
|[https://codeforces.com codeforces.com]
|-
|[[CodinGame]]
|[[Teka-teki]] (kesulitan meningkat), code[[kode golf]]. Mengadakan kompetisi daring reguler (tantangan [[kecerdasan buatan]], [[masalah optimisasi]]).
|[https://www.codingame.com www.codingame.com]
|-
Baris 131:
|[[HackerEarth]]<ref name="Luigi16" />
|
Perusahaan yang berbasis di Bangalore[[Bengaluru]], [[India]]. HackerEarth menyediakan lingkungan seperti kontes daring yang bertujuan untuk menyediakan solusi penilaian rekrutmen.
|[https://www.hackerearth.com www.hackerearth.com]
|-
Baris 174:
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="sigcse16"/>
 
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="rg15"/> 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="rg15"/> [[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="rg15"/>
Baris 194:
; Proyek sumber terbuka untuk menjalankan kontes
 
* [https://github.com/cms-dev/cms ContestSistem ManagementPengelolaan SystemKontes] Alat sumber terbuka yang dibuat dengan [[Python (bahasa pemrograman)|Python]] untuk menjalankan dan mengelola kontes pemrograman di sebuah server [[Olimpiade Internasional dalam Informatika|IOI 2012 dan IOI 2013]] .
[[Kategori:Kontes pemrograman]]
[[Kategori:Kompetisi ilmu komputer]]