Bab II Dasar Teori Kontes Pemrograman
|
|
|
- Inge Kusuma
- 9 tahun lalu
- Tontonan:
Transkripsi
1 Bab II Dasar Teori Pada Bab ini, akan dibahas hasil studi literatur maupun eksplorasi yang akan dipakai pada Tugas Akhir ini. Studi literatur ini mencakup penjelasan mengenai kontes-kontes pemrograman, desain dan aspek security yang harus dimiliki sebuah sistem kontes pemrograman. Karena sistem ini akan dibangun secara terdistribusi untuk meningkatkan skalabilitas maka di bab ini juga akan dijelaskan mengenai dasar teori load sharing pada sebuah sistem terdistribusi Kontes Pemrograman Pada bagian ini akan dibahas mengenai kontes pemrograman yang merupakan latar belakang dari pembangunan sistem pelatihan kompetisi pemrograman ini Ikhtisar Kontes Pemrograman Kontes pemrograman secara umum memiliki banyak peran. Kontes pemrograman sebagai sebuah olahraga, memberikan hiburan kepada penonton dan juga peserta. Kontes juga bertujuan sebagai wadah untuk berprestasi. Kontes memotivasi peserta untuk memasuki sebuah disiplin ilmu, mempelajari, dan berlatih berbagai kemampuan dan keterampilan. Kontes juga berperan sebagai model bagi kompetisi yang serupa dan memajukan kontes-kontes yang lain serta kurikulum informatika. Dengan adanya kontes, dapat terbangun sebuah komunitas yang terdiri atas pelajar, pelatih, dan pendukung lainnya [COR06]. Adanya kontes membuat pengajaran berbagai bidang menjadi lebih atraktif. Saat pelajar mempelajari sebuah konsep dasar dari ilmu komputer, mereka segera dapat menemukan tempat di mana mereka dapat mendemonstrasikan kemampuan mereka, karya mereka, membagikan pemikiran mereka, dan membandingkan diri mereka dengan orang lain [DAG06]. II-1
2 II Kontes-Kontes Pemrograman Pada subbab-subbab berikut akan dibahas mengenai 2 buah kontes pemrograman yang paling popular di dunia sekarang ini yakni IOI yang menjadi model utama materi kompetisi pemrograman yang digunakan serta ACM ICPC ACM Intercollegiate Programming Contest ACM ICPC [ACM09] adalah sebuah kontes pemrograman yang ditujukan bagi mahasiswa. Pada kontes ini, sebuah tim yang terdiri dari 3 orang berbagi sebuah komputer dan diminta untuk mengerjakan beberapa soal dalam waktu 5 jam. Setiap soal terdiri atas deskripsi permasalahan, format masukan, format keluaran, dan juga sebuah contoh sederhana antara masukan dan keluaran yang diminta. Tim dapat mengerjakan setiap persoalan tanpa urutan tertentu dan menghasilkan sebuah potongan program yang ditulis dalam bahasa pemrograman seperti Pascal, C. C++, dan Java. Program tersebut harus dapat menangani semua masukan yang valid. Kode program yang dihasilkan oleh tim, dikumpulkan secara online ke judge yang kemudian melakukan pengujian terhadap semua test case. Jika program tersebut berjalan pada waktu dan memori yang ditentukan serta menghasilkan keluaran yang benar maka program diterima, sebaliknya ditolak. Tidak ada penilaian untuk test case yang benar (partial). Setiap tim dapat mengumpulkan kembali jawaban kembali jika jawaban sebelumnya salah. Ketika sebuah program diterima maka tim akan mendapat penalti, 1 poin untuk setiap menit berjalan sejak kontes dimulai dan 20 poin untuk setiap jawaban yang salah yang sudah dikumpulkan. Peringkat peserta ditentukan dari jumlah soal yang berhasil dikerjakan dengan jumlah penalti sebagai tie-breaker. Selama kontes berjalan, terdapat sebuah papan skor yang menampilkan jumlah soal yang diselesaikan dan penalti untuk setiap tim. Kontestan dan penonton (untuk kontes onsite dan online) dapat melihat papan skor. Meski demikian papan skor tidak diupdate selama satu jam terakhir untuk menimbulkan rasa tegang bagi peserta sebelum pengumuman dilaksanakan. Pada setiap komputer peserta akan
3 II-3 dipasang balon-balon berwarna warni untuk setiap soal yang telah diselesaikan oleh peserta International Olympiad of Informatics International Olympiad of Informatics atau IOI [IOI05] adalah sebuah kompetisi tahunan di bidang ilmu komputer. IOI pertama kali didirikan pada tahun 1989 dan meniru model International Mathematical Olympiad. IOI ditujukan bagi peserta dari sekolah menengah terutama yang memiliki bakat di bidang ilmu komputer. Tujuan dari IOI adalah untuk mempopulerkan disiplin ilmu komputer kepada pelajar sekolah. Setiap delegasi sebuah negara terdiri dari 4 orang peserta. Setiap peserta berkompetisi dalam dua buah sesi 5 jam yang dipisahkan pada hari yang berbeda. Pada setiap sesi peserta diminta untuk menyelesaikan 3 buah soal yang mempunyai spesifikasi mirip dengan ACM ICPC. Soal ini telah diterjemahkan ke dalam bahasa asal peserta. Solusi harus ditulis dalam bahasa Pascal, C, dan C++ dan dikumpulkan secara online. Meski demikian peserta tidak dapat melihat nilai dari hasil pekerjaannya. Peserta dapat mengumpulkan jawaban berkali-kali. Nilai akan diumumkan secara tertulis kepada peserta satu persatu di hari setelah sesi dilaksanakan. Test case juga diberikan supaya peserta dapat melihat letak kesalahannya ataupun juga melakukan protes kepada panitia jika peserta yakin bahwa test case tersebut salah. Berbeda dengan ACM ICPC, IOI memberikan nilai kepada jawaban untuk setiap test case yang berhasil dikerjakan oleh program peserta (partial scoring). Batas waktu runtime program biasanya sangat ketat sehingga hanya algoritma yang terbaik yang dapat menyelesaikan semua test case. Selain dari tipe soal yang mirip ACM ICPC tersebut, terdapat 2 jenis soal yang lain yakni output only dan interactive. Pada tipe soal output only atau yang lebih dikenal dengan open-data test, peserta telah diberikan sekumpulan test case masukan. Dengan test case tersebut peserta diminta untuk menghasilkan data keluaran yang diharapkan. Pada tipe interactive task, peserta diminta membuat
4 II-4 sebuah program yang nantinya akan berinteraksi dengan program yang dimiliki oleh panitia. Tujuan dari interactive task ini biasanya adalah untuk mensimulasikan sebuah permainan di mana program peserta akan mengeluarkan langkah untuk menjawab langkah yang diberikan oleh program yang diberikan untuk memaksimalkan keuntungan pada permainan. Pada IOI 2008, implementasi interaksi ini dilakukan dengan format library. Peserta diminta untuk mengumpulkan jawaban dalam bentuk library. Sebelum 2008, implementasinya dilakukan dengan menggunakan standard input dan output Sistem Manajemen Kontes Pemrograman Untuk melaksanakan kontes-kontes pemrograman seperti yang dibahas pada Subbab sebelumnya, diperlukan adanya sistem yang membantu penyelenggara kontes. Sistem ini biasanya menyediakan fungsionalitas untuk melakukan penilaian jawaban peserta secara otomatis di samping fungsionalitas seperti manajemen kontestan, administrasi, dan lain-lain Desain Sistem Manajemen Kontes Pemrograman Fungsionalitas utama yang disediakan oleh sebuah sistem kontes pemrograman adalah automated judge. Perangkat ini bertugas untuk melakukan evaluasi jawaban kontestan secara otomatis. Proses evaluasi biasanya dilakukan dalam 3 tahap utama yakni melakukan kompilasi kode program jawaban, mengeksekusi program tersebut pada beberapa test case yang telah disediakan, dan terakhir memeriksa kebenaran keluaran program. Fungsionalitas lain yang penting dalam menyelenggarakan sebuah sistem kontes adalah manajemen user (termasuk autentikas dan pengaturan akses), administrasi (menambahkan/menyunting soal, test case, konfigurasi soal, dan melakukan rejudging jawaban peserta), dan sebuah portal kontes (menampilkan ranking, jawaban, klarifikasi, dan informasi lain) Beberapa kontes sistem yang ada sekarang ini memberikan fungsionalitas tambahan seperti melakukan backup data dan juga mencetak kode jawaban.
5 II Kebutuhan Sistem Kontes Pemrograman Forizek menyebutkan bahwa terdapat beberapa kebutuhan yang harus dimiliki oleh sebuah sistem kontes [FOR06]. 1. Flexibility Setiap kontes pemrograman memiliki kebutuhan yang berbeda satu sama lain. Sebuah sistem kontes harus dapat dengan mudah diadopsi untuk peraturan kontes yang berbeda-beda. Untuk mencapai fleksibilitas yang baik, sebuah kontes harus didesain secara moduler. 2. Robustness Sistem kontes harus robust dan reliable. Sistem tidak boleh crash sewaktu-waktu ketika kontes sedang dijalankan. 3. User-friendliness and Support Sistem harus mudah digunakan dan memiliki dokumentasi yang baik. Kebanyakan sistem kontes hanya memiliki fungsionalitas minimal untuk dapat berjalan. Banyak sistem yang memiliki dokumentasi sangat minim sehingga hanya dapat digunakan oleh pengembang. 4. Trust Sistem harus dapat membatasi akses ke beberapa informasi, menjaga integritas hasil kontes, dan lain-lain. Pengembang sistem kontes harus dapat menjaga kepercayaan dari pemilik kontes Implementasi Perangkat Lunak Manajemen Kontes Pemrograman Pada subbbab ini dibahas 3 buah sistem manajemen kontes pemrograman yang telah banyak digunakan: Mooshak, PC 2, dan MO-Eval Mooshak Mooshak [MOO08] adalah sebuah sistem manajemen kontes pemrograman yang berbasis web. Fitur-fitur dasar Mooshak terdiri atas automatic judging untuk
6 II-6 jawaban peserta kontes, tanya jawab untuk soal, manajemen soal, dan lain-lain. Selain itu Mooshak juga menyediakan fitur-fitur administrasi yang cukup lengkap seperti melakukan replikasi dan backup data kontes, peserta, jawaban, dan juga soal. Mooshak juga mendukung berbagai jenis aturan kontes yang ada. Penyelenggara kontes diberikan banyak sekali pilihan-pilihan konfigurasi untuk kontes dan soal yang akan digunakan. Mooshak dikembangkan sebagai aplikasi open source untuk lingkungan dengan sistem operasi Linux menggunakan server Apache dan bahasa script TcL. Sistem ini mampu menangani source code dalam berbagai bahasa pemrograman, khususnya yang sering digunakan dalam kompetisi pemrograman: C, C++, Java dan Pascal. Bahasa pemrograman jamak ditangani dengan menggunakan kompilator-kompilator eksternal yang harus didefinisikan terlebih dahulu oleh administrator sistem. Mooshak juga sering digunakan pada pembinaan yang diadakan oleh TOKI PC 2 PC 2 atau Programming Contest Control System [PCC09] dan sering diucapkan P-C-square adalah sebuah sistem yang dikembangkan untuk mendukung pelaksanaan sebuah lomba dalam berbagai lingkungan komputasi. Aplikasi ini mempunyai fasilitas pengumpulan jawaban berupa kode melalui jaringan komputer. Juri dapat melakukan kompilasi ulang jawaban tersebut, mengeksekusinya, melihat isi jawaban, melihat hasil penilaian, dan mengirimkan respons kepada peserta atas jawaban yang sudah dikumpulkan. Sistem secara otomatis memberi penanda waktu dan menyimpan jawaban yang dikirim, menampilkan dan melakukan update kedudukan sementara dari para peserta dalam berbagai cara, dan memberikan fasilitas kepada juri untuk mengambil dan menilai ulang jawaban yang sudah pernah dikirim. Aplikasi ini juga memberikan fasilitas bagi peserta untuk meminta klarifikasi kepada para juri. Para juri juga dapat menuliskan pengumuman bagi semua peserta. Selain itu, PC2 juga mendukung pengadaan kontes yang diadakan secara simultan pada tempat yang berbeda-beda dan menampilkan sebuah papan kedudukan untuk setiap tempat.
7 II-7 Sistem ini juga memberikan banyak opsi-opsi yang dapat dipilih dan dikonfigurasi secara bebas oleh administrator untuk menyesuaikan sistem untuk peraturan kontes yang lebih spesifik. Opsi tersebut antara lain jumlah peserta, jumlah soal, bahasa pemrograman yang digunakan, metode penilaian, dan lain-lain. Aplikasi juga memberikan kemudahan untuk penyuntingan langsung ke dalam basisdata. Sistem ini dikembangkan di California State University. Sistem ini pertama kali dikembangkan dengan menggunakan Turbo Pascal. Akan tetapi versi terakhir dikembangkan menggunakan Java dengan antarmuka Java Swing. Sistem ini sering dipakai dalam kontes pemrograman ACM ICPC. PC 2 didistribusikan dalam bentuk binary dan closed source MO-Eval MO-Eval [MAR07] yang memiliki nama asli MO Contest Environment adalah sebuah sistem manajemen kontes sederhana yang menerapkan aturan kontes pada IOI. Pada aturan ini, peserta kontes mengerjakan soal dan kemudian mengirimkan jawaban yang nantinya akan dinilai secara offline pada akhir kontes. Meski demikian MO-eval di masa depan akan dikembangkan lebih moduler sehingga dapat memfasilitasi konfigurasi-konfigurasi aturan kontes lain seperti ACM- ICPC. Tipe soal yang didukung oleh sistem ini antara lain offline task (batch), interactive, dan open-data task (output only). Oleh pengembangnya, MO-eval digunakan pada Czech Olympiad in Programming dan Czech-Polish-Slovak Preparation Camp. MO-eval dikembangkan oleh Martin Mares sejak tahun Sistem ini dikembangkan dengan bahasa C dan bahasa shell scripting Bash untuk mesin bersistem operasi Linux dengan arsitektur prosesor i386. Sistem ini didistribusikan secara open source dibawah lisensi GPL2. Tabel II-1. Perbandingan Kontes Sistem Mooshak PC 2 MO-Eval Antarmuka Web based Desktop based Command line Penggunaan Online Onsite Offline Teknologi CGI dan TcL Java Bash dan C Tipe soal Batch task IOI & Batch task ACM Custom defined task ACM style
8 II Sistem Pelatihan Pemrograman Online Selain dari sistem-sistem manajemen kontes yang digunakan secara langsung pada saat kontes berjalan, terdapat sistem-sistem pelatihan yang dapat digunakan oleh pelajar untuk melakukan latihan setiap saat. Dengan sistem ini pelajar dapat mengukur kemampuannya dengan hasil yang diberikan oleh sistem. Meski demikian umumnya sistem pelatihan menyediakan fungsi kontes di mana peserta selain dapat mengukur kemampuannya juga dapat membandingkannya dengan peserta lain. Pada subbab berikut penulis akan menjabarkan 2 buah sistem pelatihan online yang banyak digunakan di dunia USACO Training USACO (USA Computing Olympiad) Training [USA09] adalah sistem pelatihan berbasis Internet yang berupa kumpulan tulisan yang sifatnya instruksi dan berisi soal-soal pemrograman yang mendukung. Sistem ini dibuat untuk mendukung pelatihan di USACO sendiri meski sistem ini juga memperbolehkan peserta di luar Amerika Serikat untuk mengaksesnya dan melakukan latihan di sana. Pada sistem ini, peserta dihadapkan oleh beberapa bab latihan. Bab-bab tersebut disusun dari tingkat kesulitan terendah sampai tersulit. Untuk mengerjakan soalsoal pada bab tersebut, peserta diharuskan untuk membaca instruksi atau materi yang ada di awal bab. Setelah itu peserta dapat membuka soal-soal dan mengumpulkan jawaban. Untuk dapat mengakses sebuah bab, peserta harus menyelesaikan semua soal-soal yang ada di bab sebelumnya. Selain dari layanan pelatihan, USACO juga memberikan kesempatan bagi peserta untuk mengikuti kontes yang diadakan secara periodik. Setiap kontes dibagi ke dalam 3 tingkat kesulitan : bronze, silver, dan gold. Tingkat kesulitan soal termudah terdapat pada tingkat bronze hingga gold merupakan kontes dengan soal yang tersulit. Untuk dapat mengikuti kontes silver, peserta harus mempunyai rating yang cukup setelah mengikuti kontes bronze. Setelah itu peserta dapat naik ke kontes silver hingga kontes gold.
9 II Z-Trening Z-Trening [ZTR09] adalah sebuah situs pelatihan pemrograman online. Situs ini dibuat oleh Alexandar Zlateski. Situs ini memiliki fitur yang sangat lengkap. Peserta dapat melihat melihat kumpulan-kumpulan soal yang disediakan pada situs. Soal-soal ini dikelompokkan berdasarkan kategori-kategori tertentu. Peserta dapat mengakses setiap soal yang ada kemudian mengumpulkan jawaban untuk soal tersebut. Proses penilaian yang dilakukan oleh sistem secara realtime. Peserta dapat melihat status jawabannya mulai dari pengumpulan, menunggu autograder, dan pengujian pada test case secara langsung. Selain itu peserta dapat melihat statistik pengumpulan jawaban yang sudah dilakukan. Pada statistik ini, sistem menampilkan trend pengumpulan jawaban, jumlah jawaban benar, jumlah soal yang dikerjakan, persentase jawaban benar, dan lain-lain. Untuk setiap soal yang ada, sistem menampilkan deskripsi soal, informasi soal, rating soal, rasio jawaban benar, jawaban-jawaban terakhir yang dikumpulkan oleh peserta, peserta-peserta yang menjawab benar, dan lain-lain. Situs juga menyediakan forum-forum diskusi untuk setiap soal sehingga peserta-peserta dapat berdiskusi mengenai soal tersebut. Sebagai tambahan, situs ini juga menyelenggarakan kontes-kontes yang diadakan secara online dan periodik. Peserta dapat mengikuti kontes-kontes yang diadakan tersebut. Sistem juga menampilkan kontes-kontes yang telah diikuti oleh seorang peserta dan medali yang didapatkannya. Selain itu sistem juga menampilkan kontes-kontes yang telah diadakan sebelumnya dan juga kontes yang akan datang dalam bentuk kalender Aspek Penting Pada Sistem Pelatihan dan Kontes Pemrograman Beberapa kebutuhan untuk sebuah sistem kontes pemrograman telah dijelaskan pada Subbab 2.2.2: flexibility, robustness, user-friendliness, dan trust. Di dalam Tugas Akhir ini penulis memfokuskan pada aspek yang menjadi rumusan masalah. Rumusan masalah ini merupakan bagian dari kebutuhan tersebut. Kebutuhan flexibility ingin dicapai pada aspek extensibility sehingga sistem dapat
10 II-10 beradaptasi dengan kebutuhan-kebutuhan dan perkembangan tipe-tipe soal baru. Selain itu aspek security dan scalability merupakan bagian dari kebutuhan robustness di mana sistem dapat terjaga sehingga tidak mudah crash Extensibility Extensibility adalah kemudahan pengadaptasian produk perangkat lunak terhadap perubahan spesifikasi [MEY97]. Ada 2 hal yang penting di dalam meningkatkan extensibility 1. Design simplicity Arsitektur yang sederhana akan mudah diadaptasi daripada yang lebih rumit. 2. Decentralization Semakin otonom sebuah modul maka kemungkinan besar perubahan kecil hanya akan mempengaruhi satu atau sedikit modul daripada menimbulkan efek berantai yang mempengaruhi sistem secara keseluruhan. Di dalam pengembangan soal, aspek extensibility pada sistem dimaksudkan untuk memfasilitasi pengembangan soal sehingga sistem mampu menggunakan soalsoal yang telah dibuat atau akan dibuat meski terdapat perubahan-perubahan spesifikasi dalam sistem Security Karena sebuah sistem kontes umumnya menerima source code sebagai bentuk jawaban maka sistem ini menjadi sangat rentan untuk diserang. Forizek juga mendaftarkan beberapa serangan-serangan yang dapat terjadi pada sebuah sistem kontes. Serangan-serangan ini dapat diklasifikasikan menjadi 3 jenis berdasarkan waktu serangan: compilation-time, execution-time, dan contest-time. Serangan compilation-time dan execution-time terjadi pada saat proses penilaian jawaban peserta sementara serangan contest-time meliputi serangan-serangan lain. Selain berdasarkan waktu serangan, serangan juga dapat diklasifikasikan berdasarkan tujuan serangan: denial of service, privileges escalation, destructive attack, dan covert channel. Serangan denial of service bertujuan untuk membatasi beberapa pengguna dalam mengakses layanan sistem. Serangan priviliges
11 II-11 escalation bertujuan untuk mendapatkan akses ke area atau materi yang seharusnya tidak dapat diakses. Destructive attack bertujuan untuk merusak layanan sistem sehingga tidak dapat diakses oleh siapapun. Covert channel adalah situasi di mana penyerang menggunakan sebuah cara yang tidak diberikan oleh pengembang sistem untuk berkomunikasi dengan pengguna lain Forcing High Compilation Time Serangan ini termasuk ke dalam tipe compilation-time dan denial of service. Sebuah kode yang pendek dan sederhana dapat membutuhkan waktu kompilasi yang sangat lama. Jika sistem tidak membatasi waktu kompilasi maka hal ini akan digunakan untuk membatasi aktivitas compiler dan dapat berujung pada terhentinya proses automated judging. #include <map> using namespace std; typedef map<int,int> M1; typedef map<m1,m1> M2; typedef map<m2,m2> M3; typedef map<m3,m3> M4; typedef map<m4,m4> M5; typedef map<m5,m5> M6; typedef map<m6,m6> M7; typedef map<m7,m7> M8; int main() { M8 tmp; } Kode II-1. Forcing High Compilation Time Untuk pencegahan, sistem perlu memberikan batasan waktu kompilasi. Selain itu, menggunakan lebih dari satu mesin akan mengurangi dampak dari serangan ini; jika sebuah mesin terhenti maka mesin yang lain masih dapat berjalan untuk melakukan automated judging Consuming Resource At Compilation Time Serangan ini termasuk ke dalam tipe compilation-time dan denial of service. Beberapa compiler melakukan lookahead dalam melakukan parsing kode
12 II-12 program (untuk memahami sebuah kode, compiler harus melihat kode yang mengikutinya dan hal ini tidak dapat dibatasi). Jika compiler diberikan sebuah masukan yang sangat besar maka compiler akan membaca seluruh input tersebut ke dalam memori. Sebuah baris kode #include /dev/random pada mesin dengan sistem operasi UNIX akan berakibat fatal bagi sistem. Compiler akan terus membaca masukan random ke dalam memori sampai seluruh memori digunakan. Untuk mencegah serangan ini, perlu adanya pembatasan lingkungan kompilasi pada proses kompilasi. Compiler hanya dapat mengakses beberapa resource tertentu. Hal sederhana yang dapat dilakukan adalah untuk menjalankan compiler dengan lingkungan yang sama dengan yang digunakan pada saat menjalankan program kontestan Accessing Restricted Material Serangan ini termasuk ke dalam tipe compilation-time, execution time, dan priviliges escalation. Penyerang mungkin mengakses materi-materi yang sifatnya rahasia: keluaran yang benar, solusi juri, jawaban lain, berkas nilai, dan lain-lain. Salah satu contoh serangan ini adalah pada saat kompilasi, jika seorang kontestan mengetahui atau menebak lokasi yang benar dari sebuah resource maka kontestan akan mencoba memasukkan resource tersebut ke dalam kode program. Pada saat kompilasi dan eksekusi, seharusnya resource tersebut tidak tersedia pada mesin yang sedang digunakan Misusing The Network Serangan ini termasuk ke dalam tipe contest-time dan priviliges escalation. Jika kontestan dapat memonitor dan menyimpan trafik jaringan terutama trafik ke sistem automated judge, maka kontestan dapat melakukan intersepsi jawaban kontestan lain dan mengumpulkan jawaban tersebut sebagai miliknya. Kontestan juga dapat melakukan komunikasi dengan kontestan lain melalui jaringan atau menggunakan password kontestan lain untuk mencuri jawaban milik kontestan tersebut. Untuk mencegahnya, komunikasi pada sistem kompetisi berbasis web
13 II-13 harus dilakukan dengan menggunakan protokol HTTPS. Untuk sistem kompetisi onsite, pencegahan juga dapat dilakukan dengan cara melakukan konfigurasi jaringan, memonitor trafik jaringan, dan juga mencatat aksi-aksi kontestan Modifying or Harming Testing Environment Serangan ini termasuk ke dalam tipe execution time, destructive, dan DoS. Serangan paling sederhana dari tipe ini adalah dengan mengirimkan kode yang dapat menghilangkan berkas apa pun yang bisa dihilangkan. Cara lain adalah dengan menuliskan keluaran sebesar-besarnya sehingga sistem menjadi kekurangan space harddisk. Meski dengan penggunaan sandbox, pengembang sistem kontes harus tetap berhati-hati atas apa yang boleh dijalankan oleh program peserta. Hampir semua yang tidak penting untuk program yang benar dapat disalahgunakan untuk merusak sistem Circumventing the Time Measurement Serangan ini termasuk ke dalam tipe execution time. Pada serangan ini, peserta berusaha untuk memotong waktu hasil pengukuran automated judge untuk memperoleh waktu komputasi yang lebih lama. Salah satu caranya adalah jika sistem hanya mengukur waktu proses yang dijalankan oleh sistem maka proses tersebut dapat mengeksekusi fork untuk membuat child process yang akan menjalankan komputasi Exploiting Covert Channel Serangan ini termasuk ke dalam tipe contest-time dan covert channel. Sistem kontes biasanya memberitahukan hasil penilaian kepada peserta secara langsung. Informasi ini biasanya bergantung pada perilaku program peserta terhada test case yang rahasia. Informasi yang diberikan ini dapat digunakan untuk mendapatkan informasi mengenai test case yang rahasia tersebut. Informasi yang diberikan biasanya berupa informasi mengenai kompilasi gagal, eksekusi gagal, penggunaan memori berlebihan, dan waktu eksekusi berlebihan. Dengan menggunakan informasi ini peserta dapat menebak-nebak test case. Pencegahan dapat dilakukan dengan mendesain test case yang bagus.
14 II-14 void sendinformation(int n) { malloc(1024*(n&31));//send 5 bits in the memory size n >>= 5; if (n==0) exit(0);//terminate with a wrong answer if (n==1) assert(0);//abort if (n==2) while(1);//exceed the time limit if (n==3) { int a=3*n; a/=9-a; }//division by zero } Kode II-2. Exploiting Covert Channel Misusing Additional Services Serangan ini termasuk ke dalam tipe contest-time dan denial of service. Biasanya sistem kontes memiliki fasilitas tambahan seperti pencetakan kode program dan juga fasilitas backup. Peserta dapat melakukan serangan terhadap fasilitas seperti ini, contohnya mencetak berkas sebanyak 500 halaman sehingga menghabiskan kertas pada printer. Peserta juga dapat melakukan backup data yang sangat besar sehingga mesin kehabisan space pada harddisk. %!PS /Times-Roman findfont 100 scalefont setfont /page 0 def { /page page 1 add def % increment the page counter page 4 gt { exit } if % try omitting this line! moveto page 20 string cvs show % print the page number showpage % ship out the page } loop Kode II-3. Misusing Additional Service Exploiting Bugs In Operating System Serangan ini termasuk ke dalam tipe execution-time, contest-time dan priviliges escalation. Jika kontestan mampu mengakses mesin di mana jawaban dinilai, maka kontestan dapat melakukan scanning mesin ini untuk mencari kelemahan
15 II-15 sistem dan mencoba mengeksploitasinya. Kontestan dapat mencoba menjalankan sebuah kode pada mesin termasuk di dalamnya sebuah exploit. Eksploitasi yang berhasil akan berujung pada pemaparan test case yang rahasia sampai membiarkan kontestan merusak sistem yang bersangkutan. Untuk mencegahnya, perlu dibuat isolasi pada beberapa subsistem sehingga tidak dapat diakses oleh kontestan. Kontestan hanya dapat berinteraksi dengan sebuah komputer yang berperan sebaga antar muka dari kontes. Jawaban kontestan harus dieksekusi pada sebuah sandbox yang aman untuk dapat mencegah pengaksesan bagian-bagian dari sistem operasi Obfuscation Obfuscation bukan merupakan tipe serangan melainkan sebuah cara untuk membantu kesuksesan tipe serangan yang lain. Sebagai contoh, pada banyak sistem kontes metode penanganan fungsi-fungsi terlarang pada kode program dilakukan dengan mencari nama fungsi tersebut pada kode program. Akan tetapi cara demikian tidak cukup ketika nama kode program diobfuskasi. Untuk melakukan pencegahan pemanggilan fungsi tersebut perlu dilakukan pencegahan pada level system call. Sistem perlu mendeteksi pemanggilan system call yang dilakukan oleh program peserta Scalability Peningkatan kinerja adalah salah satu isu yang paling penting di dalam sistem komputasi terdistribusi. Peningkatan kinerja ini biasanya ditangani dengan 2 cara yakni menambahkan node ke dalam sistem (scale out) atau meningkatkan kapasitas dari sebuah node (scale up). Meski demikian, banyak situasi buruk disebabkan oleh pendistribusian kerja yang buruk pada keseluruhan sistem. Untuk itu dibutuhkan strategi load balancing yang baik pada pembagian kerja dari node sumber pekerjaan (source) kepada node yang melakukan pekerjaan. (server) Load sharing adalah usaha untuk menjaga kemampuan sistem dalam bekerja dengan menjamin bahwa tidak ada satu node yang idle dalam menunggu pekerjaan [WAN85]. Load balancing sendiri adalah pendekatan dimana proses yang ingin dikerjakan akan didistribusikan ke pada semua node sehingga beban
16 II-16 kerjanya menjadi sama. Load sharing sering diacu sebagai load balancing karena proses load sharing juga bertujuan untuk menyamakan beban kerja pada setiap node. Sifat-sifat yang diinginkan dari adanya load sharing antara lain 1. Optimal Overall System Performance Jumlah kapasitas pemrosesan menjadi maksimal dan mempunyai jeda yang dapat diterima. 2. Fairness of Service Kinerja yang adil untuk setiap pekerjaan yang dilakukan. 3. Failure Tolerance Sistem dapat berjalan dengan baik meski dapat terjadi beberapa kesalahan. Wang juga membagi load sharing kedalam dua jenis taksonomi. Taksonomi pertama membagi load sharing kedalam dua jenis yakni source initiative dan server initiative. Di dalam source initiative, source akan memilih server node untuk diberi pekerjaan. Sedangkan server initiative, algoritma pembentukan antrian dilakukan pada server node. Perbedaan yang lain adalah pada source initiative, keputusan pembagian terjadi pada saat pekerjaan tiba, sedangkan pada server initiative, keputusan terjadi pada saat pekerjaan pergi dari server. Tabel II-2. Klasifikasi Load Sharing Information Source Initiate Server Initiate Dependency 1 server = f(source) source = f(server) 2 server = f(source, ω) source = f(server, ω) 3 server = f(source, ω, sequence state) source = f(server, ω, sequence state) 4 server = f(source, ω, source = f(server, ω, sequence state, sequence state, server busy/idle status) source queue emptiness) 5 server = f(source, ω, source = f(server, ω, sequence state, sequence state, server queue length) source queue length) 6 server = f(source, ω, server = f(source, ω, sequence state, sequence state, server queue length, arrival epoch of jobs at departure epoch of source) completed job at servers) 7 server = f(source, ω, server = f(source, ω,
17 II-17 Information Source Initiate Dependency sequence state, server queue length, departure epoch of completed and remaining job at servers) * ω randomly generated parameter Server Initiate sequence state, server queue length, arrival epoch and execution times of jobs at sources) Taksonomi kedua disebut dengan information dependency. Jenis ini membagi load sharing ke dalam derajat-derajat berdasarkan informasi yang dibutuhkan oleh server node tentang status dari source node atau sebaliknya. Terdapat 7 derajat ketergantungan informasi mulai dari derajat pertama di mana pembagian kerja tidak membutuhkan informasi sama sekali dan derajat terakhir di mana strategi membutuhkan informasi tambahan. Adanya informasi ini akan meningkatkan kinerja dengan penambahan overhead pada komunikasi dan koordinasi. Tabel II.2 menunjukkan perbedaan information dependency pada sourceinitiative dan server-initiative. Algoritma source-initiative dilambangkan dengan sebuah fungsi. yang berarti server yang ditunjuk merupakan fungsi dari. Begitupula dengan algoritma server-initiative..
TOKI Learning Center Sistem Pelatihan Kompetisi Pemrograman Komputer
TOKI Learning Center Sistem Pelatihan Kompetisi Pemrograman Komputer LAPORAN TUGAS AKHIR Disusun sebagai syarat kelulusan tingkat sarjana oleh: Petra Novandi Barus NIM: 13505059 PROGRAM STUDI TEKNIK INFORMATIKA
Bab III Analisis Analisis Masalah
Bab III Analisis Bab ini terdiri dari dua bagian yakni Analisis Masalah dan Analisis Perangkat Lunak. Bagian pertama menjelaskan masalah yang menjadi fokus utama Tugas Akhir yakni pengembangan sistem pelatihan
PENJURIAN ONLINE BERBASIS WEB SERVICE
PENJURIAN ONLINE BERBASIS WEB SERVICE Dwi Sunaryono 1, Wahyu Suadi 2, I Made Krisna Widhiastra 3 1,2,3 Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember Surabaya, 60111 E-mail : [email protected],
Bab I Pendahuluan Latar belakang
Bab I Pendahuluan 1.1. Latar belakang Saat ini ada banyak kompetisi pemrograman untuk pelajar setingkat sekolah menengah yang telah diselenggarakan baik secara internasional maupun regional. Kompetisi-kompetisi
INSTITUT TEKNOLOGI BANDUNG SENIOR PROGRAMMING CONTEST 3 REGULASI DAN PERATURAN
INSTITUT TEKNOLOGI BANDUNG SENIOR PROGRAMMING CONTEST 3 REGULASI DAN PERATURAN 1. PENGANTAR. Institut Teknologi Bandung Programming Contest 3 ( ITBPC 3 ) adalah acara tahunan yang diadakan oleh Program
OLIMPIADE SAINS NASIONAL VII
PERATURAN KOMPETISI OLIMPIADE SAINS NASIONAL VII BIDANG INFORMATIKA MAKASSAR, SULAWESI SELATAN Selamat Bekerja, Berkompetisi, Jadilah Yang Terbaik! OSN 2008 Bidang Komputer Peraturan Kompetisi Ringkasan
INSTITUT TEKNOLOGI BANDUNG JUNIOR PROGRAMMING CONTEST 3
INSTITUT TEKNOLOGI BANDUNG JUNIOR PROGRAMMING CONTEST 3 REGULASI DAN PERATURAN 1. PENGANTAR. Institut Teknologi Bandung Programming Contest 3 ( ITBPC 3 ) adalah acara tahunan yang diadakan oleh program
SISTEM OPERASI TERDISTRIBUSI
SISTEM OPERASI TERDISTRIBUSI PENGANTAR DATA TERDISTRIBUSI Materi: 1. Pendahuluan 2. Manfaat Sistem Operasi Terdistribusi 3. Komponen Inti Sistem Operasi Pertemuan: 5 Pendahuluan Sistem operasi terdistribusi
BAB II TINJAUAN PUSTAKA DAN DASAR TEORI. Tabel 2.1 Tinjauan Pustaka
BAB II TINJAUAN PUSTAKA DAN DASAR TEORI 2.1 Tinjauan Pustaka Tinjauan pustaka diambil dari beberapa karya tulis, sebagai berikut : Tabel 2.1 Tinjauan Pustaka No parameter Objek Bahasa interface penulis
Manual Book 5 th NPLC
Isi Panduan: Total Halaman (+Cover): 16. Manual Book 5 th NPLC Instruksi : Bacalah panduan ini dengan Seksama! Didukung Oleh: Daftar Isi 1. Penjelasan Umum.... 3 1.1 Pilihan Ganda (Multiple Choice Question)....
RULE BOOK IDEAFUSE 2018 ACM ICPC Multi-Provincial Programming Contest
Peraturan, Syarat, Ketentuan, dan Kriteria Penilaian RULE BOOK IDEAFUSE 2018 ACM ICPC Multi-Provincial Programming Contest DESKRIPSI KOMPETISI ACM ICPC merupakan kompetisi pemrograman yang dinaungi oleh
RULE BOOK ACM-ICPC 2017 ACM ICPC Maranatha Provincial Programming Contest
Peraturan, Syarat, Ketentuan, dan Kriteria Penilaian RULE BOOK ACM-ICPC 2017 ACM ICPC Maranatha Provincial Programming Contest DESKRIPSI KOMPETISI ACM ICPC merupakan kompetisi pemrograman yang dinaungi
RULE BOOK IDEAFUSE 2017 ACM ICPC Multi-Provincial Programming Contest
Peraturan, Syarat, Ketentuan, dan Kriteria Penilaian RULE BOOK IDEAFUSE 2017 ACM ICPC Multi-Provincial Programming Contest DESKRIPSI KOMPETISI ACM ICPC merupakan kompetisi pemrograman yang dinaungi oleh
Bagi peserta OSN 2014 dan calon peserta Open OSN William Gozali, Teknis OSN
Bagi peserta OSN 2014 dan calon peserta Open OSN 2014 William Gozali, Teknis OSN 2014 1 Dokumen ini ditujukan ke semua calon peserta OSN, agar memahami : Persiapan yang seharusnya dilakukan dalam menghadapi
RULE BOOK PROGRAMMING ARTECHNO 2016
Programming I Deskripsi Programming merupakan salah satu cabang yang diperlombakan pada acara ARTechno 2016 yang diselenggarakan oleh Universitas Sumatera Utara. Cabang programming merupakan kontes pemrograman
DAFTAR ISI DAFTAR ISI... 1 I. KETENTUAN UMUM... 2 II. III. IV. KETENTUAN KOMPETISI...5 PESERTA...10 PENGAWASAN DAN PENJURIAN...12 V. PENUTUP...14 LAMP
BUKU PANDUAN PESERTA TISIGRAM (KOMPETISI PEMROGRAMAN) 2017 HIMPUNAN MAHASISWA KOMPUTER POLITEKNIK NEGERI BANDUNG DAFTAR ISI DAFTAR ISI... 1 I. KETENTUAN UMUM... 2 II. III. IV. KETENTUAN KOMPETISI...5 PESERTA...10
Mahasiswa dapat memahami konsep dasar deskripsi dan kontrol pada proses
Deskripsi dan Kontrol Proses (Pertemuan ke-3) Agustus 2014 Pokok Bahasan Pokok Bahasan: Deskripsi dan Kontrol Proses Sub Pokok Bahasan: Konsep proses Elemen-elemen proses Model proses 2 status, 5 status,
BAB I PENDAHULUAN 1.1 LATAR BELAKANG
BAB I PENDAHULUAN Bab ini berisi bagian pendahuluan yang mencakup latar belakang, rumusan dan batasan masalah, tujuan, metodologi pengerjaan, serta sistematika pembahasan dari Tugas Akhir ini. 1.1 LATAR
BAB I PERSYARATAN PRODUK
BAB I PERSYARATAN PRODUK 1.1 Pendahuluan PT. Telekomunikasi Indonesia, Tbk. adalah salah satu perusahaan terbesar di Indonesia yang bergerak dalam bidang telekomunikasi. Sebagai sebuah perusahaan besar,
3.1 APLIKASI YANG DITANGANI OLEH CODE GENERATOR
BAB III ANALISIS Bab ini berisi analisis mengenai aplikasi web target code generator, analisis penggunaan framework CodeIgniter dan analisis perangkat lunak code generator. 3.1 APLIKASI YANG DITANGANI
FALCON PROGRAMMING CONTEST
Peraturan, Syarat, Ketentuan, dan Kriteria Penilaian BUKU PANDUAN PESERTA FALCON PROGRAMMING CONTEST for High School Students DESKRIPSI Falcon Programming Contest for High School Students (FPC-HS) merupakan
RULES BOOK IDEAFUSE 2016 ACM ICPC Multi-Provincial
Peraturan, Syarat, Ketentuan, dan Kriteria Penilaian RULES BOOK IDEAFUSE 2016 ACM ICPC Multi-Provincial DESKRIPSI KOMPETISI ACM ICPC merupakan kompetisi pemrograman yang dinaungi oleh ACM (Association
1. Hardware terdistribusi. 2. Program terdistribusi. Nama : Gede Doddi Raditya Diputra NIM : Kelas : 5.C
Nama : Gede Doddi Raditya Diputra NIM : 0805021099 Kelas : 5.C 1. Hardware terdistribusi Hardware terdistribusi adalah hardware yang pemakaiannya bisa dipakai bersamasama (sharing) yang dihubungkan oleh
3. Tema Kegiatan Kebangkitan Generasi Muda untuk Membangun Bangsa dengan Teknologi dan Kebudayaan Nusantara
1. Pendahuluan DINAMIK (Dies Natalies Mahasiswa Ilmu Komputer) merupakan acara tahunan yang diselenggarakan oleh Kemakom UPI (Keluarga Mahasiswa Komputer UPI). Sebagai bentuk program kerja masa bakti kepengurusan
4. SISTEM OPERASI TERDISTRIBUSI
4. SISTEM OPERASI TERDISTRIBUSI APAKAH SISTEM OPERASI TERDISTRIBUSI? Sistem operasi terdistribusi adalah salah satu implementasi dari sistem terdistribusi, di mana sekumpulan komputer dan prosesor yang
BAB 3 Landasan Teori
BAB 3 Landasan Teori 3.1 Internet Internet adalah sistem global jaringan komputer yang saling berhubungan yang menggunakan standar Internet Protocol (TCP / IP) untuk menghubungkan perangkat di seluruh
Sistem Jaringan Terdistribusi
Sistem Jaringan Terdistribusi Apa yang dimaksud dengan Sistem Jaringan Terdistribusi? Apa Keuntungan dan Kerugiannya (permasalahan yang dihadapi)? Pengertian Sistem Terdistribusi adalah Sekumpulan komputer
Sistem Operasi PENGATURAN PROSES
Sistem Operasi PENGATURAN PROSES Konsep Proses Dalam Sistem Operasi Jenis Proses Subject Penjadwalan Proses Deadlock Concurency Sebuah perangkat lunak yang deprogram sebagai penghubung antara Sistem Operasi
Rulebook. Uinic Programming Competition. Deskripsi Lomba
Rulebook Uinic Programming Competition Deskripsi Lomba Uinic Programming Competition merupakan kompetisi yang diselenggarakan oleh Himpunan Mahasiswa Teknik Informatika UIN Sunan Kalijaga Yogyakarta untuk
TISIGRAM (KOMPETISI PEMROGRAMAN) 2016
BUKU PANDUAN PESERTA 9 APRIL 2016 Last Update: 6 April 2016 HIMPUNAN MAHASISWA KOMPUTER POLITEKNIK NEGERI BANDUNG 2016 DAFTAR ISI DAFTAR ISI... i I. KETENTUAN UMUM... 2 A. Waktu dan Tempat... 2 B. Pendaftaran
Gambar 3.1 Perancangan Sistem
BAB III PERANCANGAN SISTEM Bab ini akan membahas tentang perancangan sistem monitoring yang terbagi menjadi dua bagian, sistem bagian pertama adalah objek yang akan dimonitor, sistem bagian kedua merupakan
TISIGRAM (KOMPETISI PEMROGRAMAN) 2017
BUKU PANDUAN PESERTA TISIGRAM (KOMPETISI PEMROGRAMAN) 2017 HIMPUNAN MAHASISWA KOMPUTER POLITEKNIK NEGERI BANDUNG DAFTAR ISI 1 I. KETENTUAN UMUM2 II. III. IV. KETENTUAN KOMPETISI5 PESERTA10 PENGAWASAN DAN
PERTEMUAN KE <JUDUL PERTEMUAN PRAKTIKUM>
Tanggal Penyerahan Laporan Praktikum LAPORAN PRAKTIKUM SISTEM OPERASI PERTEMUAN KE NAMA : KELAS : NIM : NAMA : PRAKTIKAN : ASISTEN PRAKTIKUM : STMIK AMIKOM YOGYAKARTA JURUSAN
Bab 1. Pengenalan Sistem Terdistribusi
Bab 1. Pengenalan Sistem Terdistribusi 1.1. Definisi Sitem Terdistribusi Sistem distribusi adalah sebuah sistem yang komponennya berada pada jaringan komputer. Komponen tersebut saling berkomunikasi dan
MODUL 2 KOMPONEN, LAYANAN SISTEM OPERASI M. R A J A B F A C H R I Z A L - S I S T E M O P E R A S I - C H A P T E R 2
MODUL 2 KOMPONEN, LAYANAN SISTEM OPERASI M. R A J A B F A C H R I Z A L - S I S T E M O P E R A S I - C H A P T E R 2 1 KOMPONEN SO LAINNYA Jaringan (Sistem Terdistribusi) Sistem terdistribusi adalah sekumpulan
PENGATURAN PROSES. Proses adalah program yang sedangdieksekusi atau sofware yang sedang dilaksanakan.
PENGATURAN PROSES Proses adalah program yang sedangdieksekusi atau sofware yang sedang dilaksanakan. 1. Konsep Dasar : Multiprogramming system. Melakukan proses satu persatu secara bergantian dalam waktu
I. PENDAHULUAN. jaringan dan aplikasi yang dibuat khusus untuk jaringan. Akibatnya, interaksi
I. PENDAHULUAN 1.1 Latar Belakang Perkembangan teknologi komputer, khususnya dalam hal jaringan komputer sangatlah pesat karena saat ini sudah banyak berbagai macam jenis peralatan jaringan dan aplikasi
BAB II KAJIAN PUSTAKA
BAB II KAJIAN PUSTAKA Dalam pengembangan kemampuan automatic grade Marmoset terhadap project dan hasil penilaian pemrograman ini diperlukan beberapa teori untuk mendukung proses pengembangannya. Berikut
APLIKASI BERBASIS WEB
Pendahuluan Komputer sejak diluncurkan pertama kali dengan bobot yang cukup berat hingga hingga saat ini dengan produk notebook yang sangat ringan dan dapat di bawa kemana-mana, berbagai macam aplikasi
BAB III LANDASAN TEORI
BAB III LANDASAN TEORI III.1. Sistem Informasi Sistem informasi adalah suatu sistem yang dibuat oleh manusia yang terdiri dari komponen komponen dalam organisasi untuk mencapai suatu tujuan yaitu menyajikan
Aplikasi Komputer. Pengenalan, fungsi, program-program utilitas dan jenisjenis sistem operasi. Ita Novita, S.Kom, M.T.I. Modul ke:
Modul ke: Aplikasi Komputer Pengenalan, fungsi, program-program utilitas dan jenisjenis sistem operasi Fakultas Ilmu Komputer Ita Novita, S.Kom, M.T.I Program Studi Informatika www.mercubuana.ac.id Pengenalan
BAB IV ANALISIS DAN PERANCANGAN SISTEM. hasil analisis ini digambarkan dan didokumentasiakan dengan metodologi
BAB IV ANALISIS DAN PERANCANGAN SISTEM 4.1. Analisis Sistem yang Sedang Berjalan Kegiatan analisis sistem yang berjalan dilakukan dengan analisis yang berorientasi pada objek-objek yang diperlukan oleh
BAB II TINJAUAN PUSTAKA. Sistem Operasi adalah sebuah perangkat lunak (software) yang berfungsi
BAB II TINJAUAN PUSTAKA 2.1. Landasan Teori 2.1.1 Sistem Operasi Sistem Operasi adalah sebuah perangkat lunak (software) yang berfungsi untuk mengalokasikan sumber daya untuk proses. Menurut Stalling (2005)
PEMBUATAN CONTENT MANAGEMENT SYSTEM (CMS) UNTUK SISTEM PENJURIAN LOMBA INFORMATICS LOGICAL PROGRAMMING COMPETITION DI UNIVERSITAS SURABAYA
PEMBUATAN CONTENT MANAGEMENT SYSTEM (CMS) UNTUK SISTEM PENJURIAN LOMBA INFORMATICS LOGICAL PROGRAMMING COMPETITION DI UNIVERSITAS SURABA Santos Sabanari Jurusan Teknik Informatika / Fakultas Teknik Universitas
BAB 1 PENDAHULUAN. semua kalangan masyarakat memiliki telepon seluler, personal digital assistant
BAB 1 PENDAHULUAN 1.1 Latar Belakang Teknologi mobile telah menjadi bagian kehidupan kita sehari-hari. Hampir semua kalangan masyarakat memiliki telepon seluler, personal digital assistant (PDA) atau sejenisnya
Syarat & Ketentuan. Ketentuan Umum Kompetisi FesTIval 2017
Deskripsi Competitive Programming Contest (CPC) FesTIval 2017 merupakan salah satu kompetisi pemrograman yang diselenggarakan oleh Himpunan Mahasiswa Teknik Informatika (HIMTI) Universitas Multimedia Nusantara,
BAB 1 PENDAHULUAN. 1.1 Latar Belakang
BAB 1 PENDAHULUAN 1.1 Latar Belakang Java telah menjadi salah satu bahasa pemrograman yang cukup populer di industri software internasional maupun domestik. Java memiliki keuntungan bahwa banyak platform
Mata Kuliah : Sistem Operasi Kelas : Teknik Informatika 4
Mata Kuliah : Sistem Operasi Kelas : Teknik Informatika 4 Part I Pilih jawaban yang paling tepat! 1. Pendekatan desain microkernel yang dimodifikasi merupakan jenis kernel? a. Kernel hibrida b. exokernel
BAB 1 PENDAHULUAN. 1.1 Latar Belakang. 1.2 Rumusan Masalah
BAB 1 PENDAHULUAN 1.1 Latar Belakang Server merupakan kebutuhan utama bagi hampir setiap perusahaan maupun untuk para pengguna pada umumnya. Akan tetapi server merupakan sebuah mesin yang terhubung ke
SISTEM OPERASI TERDISTRIBUSI
SISTEM OPERASI TERDISTRIBUSI Sistem Operasi (Operating System atau OS) Adalah Perangkat lunak sistem yang bertugas untuk melakukan kontrol dan manajemen perangkat keras serta operasi-operasi dasar sistem,
BAB I PENDAHULUAN. I.1 Pendahuluan
BAB I PENDAHULUAN I.1 Pendahuluan Dalam kegiatan manusia sehari-hari, terutama dalam kegiatan transaksi, seperti transaksi perbankan, rekam medis, transaksi jual beli dan transaksi lainnya harus dicatat
BAB III LANDASAN TEORI. permasalahan yang dibahas dan juga menjelaskan aplikasi-aplikasi yang akan
BAB III LANDASAN TEORI Pada bab ini akan dijelaskan dasar-dasar teori yang berhubungan dengan permasalahan yang dibahas dan juga menjelaskan aplikasi-aplikasi yang akan digunakan. Hal ini sangat penting
PENDAHULUAN. Gambar 1.1 Hasil Survey Webserver oleh Netcraft [NET17]
PENDAHULUAN Dalam bab ini dijelaskan secara umum mengenai latar belakang, identifikasi masalah, lingkup tugas akhir, tujuan tugas akhir, metodologi tugas akhir beserta sistematika penulisan laporan tugas
BAB II LANDASAN TEORI. Pada tahap ini berisi pengertian dan penjelasan teori-teori yang digunakan penulis untuk pembangunan sistem.
BAB II LANDASAN TEORI Pada tahap ini berisi pengertian dan penjelasan teori-teori yang digunakan penulis untuk pembangunan sistem. 2.1 Pengertian Sistem Sistem dapat didefinisikan dengan pendekatan prosedur
BAB III LANDASAN TEORI
BAB III LANDASAN TEORI III.1. Sistem Informasi Sistem dapat didefinisikan sebagai suatu kesatuan yang terdiri dari dua atau lebih komponen atau subsistem yang berinteraksi untuk mecapai suatu tujuan, sedangkan
perguruan tinggi (SD, SMP, SMA, atau sederajat), sedangkan SCPC diperuntukkan bagi mahasiswa (Diploma, S1, atau S2).
Deskripsi Competitive Programming Contest CompFest 8 merupakan kompetisi pemrograman berskala nasional yang diselenggarakan oleh Fakultas Ilmu Komputer Universitas Indonesia. Competitive Programming Contest
BAB 1 PENDAHULUAN. 1.1 Latar Belakang. 1.2 Rumusan Masalah
BAB 1 PENDAHULUAN 1.1 Latar Belakang Penetration test adalah kegiatan simulasi yang berfungsi untuk menguji ketahanan suatu sistem terhadap serangan dan mengantisipasinya. Lab.Jarkom Fakultas Ilmu Terapan
Struktur Fungsi CPU. Mata Kuliah Arsitektur Komputer Program Studi Sistem Informasi 2013/2014 STMIK Dumai -- Materi 03 --
Struktur Fungsi CPU Mata Kuliah Arsitektur Komputer Program Studi Sistem Informasi 2013/2014 STMIK Dumai -- Materi 03 -- This presentation is revised by @hazlindaaziz, STMIK, 2014 Main Material: Acknowledgement
BAB IV IMPLEMENTASI DAN EVALUASI SISTEM. disesuaikan dengan desain sistem yang sudah dibuat. Rancang Bangun sistem
BAB IV IMPLEMENTASI DAN EVALUASI SISTEM 1.1. Implementasi Sistem Pada tahap ini merupakan proses pembuatan perangakat lunak yang disesuaikan dengan desain sistem yang sudah dibuat. Rancang Bangun sistem
Making Provisions for Applications and Services
Making Provisions for Applications and Services Ketika seseorang mengakses informasi pada suatu perangkat (device), baik itu PC, laptop, PDA, ponsel, atau device lain yang terhubung ke jaringan, data tidak
Bab I Pendahuluan. I.1 Latar Belakang
Bab I Pendahuluan I.1 Latar Belakang Secara umum, manajemen jaringan adalah layanan yang memanfaatkan berbagai tool, aplikasi, dan device untuk membantu administrator jaringan memonitor dan mengelola jaringan
Diperkenalkan pertama oleh tim Sun System yang dipimpin Patrick Naughton dan James Gosling tahun 1991 dengan code
PENGANTAR JAVA A. Asal Mula JAVA B. Kelebihan JAVA C. Ciri Khas JAVA D. Perangkat Lunak E. Penerapan JAVA F. Java Virtual Machine G. Pengembangan Program Java A. Asal Mula JAVA Diperkenalkan pertama oleh
Spesifikasi Tugas Besar II IF3055 Sistem Operasi
Spesifikasi Tugas Besar II IF3055 Sistem Operasi Tujuan Tujuan dari pemberian tugas ini adalah Peserta mengetahui mekanisme filesystem. Peserta mengetahui mekanisme IPC. Deskripsi Pada tugas besar kali
Rancang Bangun Aplikasi Perangkat Bergerak Layanan Pemesanan Barang (Studi Kasus Dinas Kebersihan dan Pertamanan Kota Surabaya )
A783 Rancang Bangun Aplikasi Perangkat Bergerak Layanan Pemesanan Barang (Studi Kasus Dinas Kebersihan dan Pertamanan Kota Surabaya ) Shoffi Izza Sabilla, Sarwosri, dan Erma Suryani Jurusan Teknik Informatika,
BAB I PENDAHULUAN 1.1 Latar Belakang
BAB I PENDAHULUAN 1.1 Latar Belakang Perkembangan teknologi yang sangat cepat mengakibatkan manusia menginginkan segala sesuatunya dengan mudah dan ringkas. Bertukar informasi adalah suatu hal yang sangat
BAB 1 PENDAHULUAN. Universitas Kristen Maranatha
BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah Pengajaran mata kuliah pemrograman biasanya diikuti oleh banyak mahasiswa. Dengan semakin besarnya jumlah mahasiswa dan banyaknya tugas yang harus diperiksa,
BAB III ANALISIS DAN PENYELESAIAN MASALAH
BAB III ANALISIS DAN PENYELESAIAN MASALAH 3.1 Deskripsi Sistem Gambar III-1 Deskripsi Umum Sistem Pada gambar III-1 dapat dilihat deskripsi sistem sederhana yang mendeteksi intrusi pada jaringan menggunakan
PENGANTAR APLIKASI KOMPUTER
Pada saat pertama kali komputer digunakan, pengguna dihadapkan pada sulitnya untuk mengoperasikan komputer tersebut. Semakin banyak perangkat tambahan yang bisa ditambahkan kedalam komputer, semakin rumit
Modul ke: APLIKASI KOMPUTER. Pengoperasian Dasar Windows. Fakultas FASILKOM. Ramayanti, S.Kom, MT. Program Studi Teknik Informatika
Modul ke: 3 Desi Fakultas FASILKOM APLIKASI KOMPUTER Pengoperasian Dasar Windows Ramayanti, S.Kom, MT Program Studi Teknik Informatika Pendahuluan Windows Sistem Operasi Basis GUI (Graphical User Interface)
PEMROGRAMAN WEB. Agussalim
PEMROGRAMAN WEB Agussalim Deskripsi Matakuliah Matakuliah ini mengajarkan tentang: Konsep Pemrograman WEB Pemrograman WEB statis dan dinamis HTML (Hyper Text Markup Language) PHP Hypertext preprocessor,
3.1 Ganesha Digital Library
BAB III ANALISIS Dalam bab ini akan dibahas mengenai analisis perangkat lunak yang akan dibangun. Analisis dilakukan pada sistem lama dan sistem baru. Analisis pada sistem lama meliputi penerapan folksonomy,
BAB II LANDASAN TEORI. beberapa ahli, definisi sistem adalah sebagai berikut.
BAB II LANDASAN TEORI 2.1 Sistem Sistem memiliki beberapa definisi yang berbeda-beda menurut pendapat beberapa ahli, definisi sistem adalah sebagai berikut. 1. Menurut Jogiyanto (1999:1), sistem adalah
BAB I PENDAHULUAN. 1.1 Latar Belakang
BAB I PENDAHULUAN 1.1 Latar Belakang Arsitektur software three tier berkembang pada tahun 1990an untuk mengatasi keterbatasan arsitektur two-tier(client-server). Pada gambar I-1 dapat dilihat bahwa arsitektur
CONTOH PENDSTRIBUSIAN HARDWARE
CONTOH PENDSTRIBUSIAN HARDWARE Jaringan komputer adalah sebuah kumpulan komputer, printer dan peralatan lainnya yang terhubung dalam satu kesatuan. Informasi dan data bergerak melalui kabel-kabel atau
Programming Competition
Programming Competition Rulebook Programming Competition Deskripsi dan Tema Lomba Arkavidia Programming Competition adalah kompetisi pemrograman yang dapat diikuti oleh mahasiswa-mahasiswa se-indonesia.
ARSITEKTUR SISTEM. Alif Finandhita, S.Kom, M.T. Alif Finandhita, S.Kom, M.T 1
ARSITEKTUR SISTEM Alif Finandhita, S.Kom, M.T Alif Finandhita, S.Kom, M.T 1 Sistem Terpusat (Centralized Systems) Sistem Client Server (Client-Server Systems) Sistem Server (Server Systems) Sistem Paralel
PERTEMUAN 13 STRATEGI PENGUJIAN PERANGKAT LUNAK
PERTEMUAN 13 STRATEGI PENGUJIAN PERANGKAT LUNAK Strategi Pengujian Strategi uji coba perangkat lunak dilakukan untuk memudahkan para perancang untuk menentukan keberhasilan system yang telah dikerjakan
Pengumpulan Data. Analisa Data. Pembuatan Use Case,Activity dan Sequence Diagram. Perancangan Database. Bisnis Proses.
BAB III ANALISA DAN PERANCANGAN SISTEM Pada bab ini menjelaskan tentang bagian analisa dan perancangan sistem. Analisa sistem dilakukan dengan mendeskripsikan, kebutuhan perangkat lunak yang meliputi use
BAB IV IMPLEMENTASI DAN PENGUJIAN
BAB IV IMPLEMENTASI DAN PENGUJIAN 4.1 Implementasi Sistem Implementasi merupakan penerapan dari proses analisis dan perangcangan yang telah dibahas dalam bab sebelumnya. Pada tahapan ini terdapat dua aspek
BAB 1 PENDAHULUAN Latar Belakang
1 BAB 1 PENDAHULUAN 1.1. Latar Belakang Competitive programming merupakan terminologi untuk berbagai jenis kompetisi di bidang pemrograman. Kompetisi pemrograman ini bertujuan untuk menyelesaikan masalah-masalah
BAB I PENDAHULUAN. seiring perkembangan teknologi mikroprosesor, proses komputasi kini dapat
BAB I PENDAHULUAN I.1 Latar Belakang Proses komputasi yang dapat dilakukan oleh komputer telah berkembang dengan pesat. Pada awalnya proses komputasi hanya dapat dilakukan secara sekuensial saja. Sebuah
BAB II LANDASAN TEORI
BAB II LANDASAN TEORI 2.1 Sistem Sistem adalah kumpulan dari elemen-elemen yang berinteraksi untuk mencapai suatu tujuan tertentu. Menurut Herlambang (2005), definisi sistem dapat dibagi menjadi dua pendekatan,
SISTEM TERDISTRIBUSI. Agenda : - Pengantar Sistem Terdistribusi - Karakteristik Sistem Terdistribusi - Model Sistem Terdistribusi. Yuli Purwati, M.
SISTEM TERDISTRIBUSI Agenda : - Pengantar Sistem Terdistribusi - Karakteristik Sistem Terdistribusi - Model Sistem Terdistribusi Sistem Terdistribusi adalah Sekumpulan komputer otonom yang terhubung ke
BAB I PENDAHULUAN 1.1 Latar Belakang
BAB I PENDAHULUAN 1.1 Latar Belakang Perkembangan teknologi informasi khususnya teknologi informasi berbasis Mobile ini, dirasa sangat pesat dan hal ini berpengaruh terhadap aspek pekerjaan. Hampir semua
BAB IV ANALISIS DAN PERANCANGAN SISTEM. proses kerja yang sedang berjalan. Pokok-pokok yang di analisis meliputi analisis
BAB IV ANALISIS DAN PERANCANGAN SISTEM 4.1. Analisis Sistem yang Berjalan Analisis sistem yang berjalan dilakukan dengan tujuan untuk mengetahui proses kerja yang sedang berjalan. Pokok-pokok yang di analisis
APLIKASI SISTEM PENDIDIKAN JARAK JAUH BERBASIS WEB
Abstrak APLIKASI SISTEM PENDIDIKAN JARAK JAUH BERBASIS WEB Metra Cahya Utama, Asfira Sagitri, Cokorda Raka A.J, Dian Tresna N., DivKom HME ITB Computer Network Research Group Institut Teknologi Bandung
Bab 3: Proses-Proses. Konsep Proses
Bab 3: Proses-Proses Konsep Proses Penjadwalan Proses Operasi pada Proses Proses yang bekerja sama (Cooperating Processes) Komunikasi antar Proses (Interprocess Communication) Komunikasi pada sistem Client-Server
BAB III ANALISIS. 3.1 Analisis Model Business Process Outsourcing
BAB III ANALISIS 3.1 Analisis Model Outsourcing Dari beberapa penjelasan mengenai model Outsourcing (BPO) pada subbab 2.3.1, diajukan Gambar III.1 sebagai gambaran umum dari BPO pada Tugas Akhir ini. Beberapa
APLIKASI KOMPUTER (APLIKOM)
MODUL PERKULIAHAN APLIKASI KOMPUTER (APLIKOM) Pengoperasian Dasar Windows Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh Ilmu Komputer Teknik Informatika 03 Abstract Modul ini membahas tentang
BAB I PERSYARATAN PRODUK
Universitas Kristen Maranatha BAB I PERSYARATAN PRODUK 1.1 Pendahuluan RatRace merupakan sebuah permainan yang di desain khusus untuk mempelajari dan juga menguji pengetahuan para pengguna dalam bidang
Pengujian Perangkat Lunak
Pengujian Perangkat Lunak Shinta P. Sari White Box Pengujian white-box berfokus pada struktur kontrol program. Test case dilakukan untuk memastikan bahwa semua statement pada program telah dieksekusi paling
BAB 2 LANDASAN TEORI. Web atau Situs dapat diartikan sebagai kumpulan halaman-halaman yang digunakan
BAB 2 LANDASAN TEORI 2.1 Pengertian Web Web atau Situs dapat diartikan sebagai kumpulan halaman-halaman yang digunakan untuk menampilkan informasi berupa teks, gambar, animasi, suara, dan atau gabungan
BAB 1 PENDAHULUAN 1.1 LATAR BELAKANG
BAB 1 PENDAHULUAN 1.1 LATAR BELAKANG Pada umumnya membuat sebuah task list masih dibuat dengan cara manual, yaitu mencatatkan daftar tugas yang akan kita lakukan pada sebuah kertas. Pengecekan waktu juga
MANAJEMEN MEMORI SISTEM OPERASI
MANAJEMEN MEMORI SISTEM OPERASI Manajemen Memori Memori adalah pusat dari operasi pada sistem komputer modern, berfungsi sebagai tempat penyimpanan informasi yang harus diatur dan dijaga sebaik baiknya.
perguruan tinggi (SD, SMP, SMA, atau sederajat), sedangkan SCPC diperuntukkan bagi mahasiswa (Diploma, S1, atau S2).
Deskripsi Competitive Programming Contest CompFest 8 merupakan kompetisi pemrograman berskala nasional yang diselenggarakan oleh Fakultas Ilmu Komputer Universitas Indonesia. Competitive Programming Contest
