Pengayaan Algoritma dan Pemrograman - AP

Ini adalah materi tambahan sebagai pengayaan bagi kalian. Tujuannya adalah untuk memperkaya khazanah keilmuan dan menambah wawasan tentang Algoritma dan Pemrograman.

Menggunakan IDE Daring

Pada aktivitas ini, siswa dapat menggunakan kompilator atau compiler untuk membuat program. Compiler berfungsi untuk membaca dan menerjemahkan program yang kita tulis agar dapat dimengerti oleh komputer. Salah satu online compiler yang dapat siswa gunakan ialah ideone dengan cara mengunjungi situs ideone.com. Berikut ini tampilan yang akan kalian lihat.

Pada bagian bawah, terdapat beberapa menu yang dapat kita gunakan. Tombol paling ujung kiri berfungsi untuk memilih bahasa pemrograman yang akan digunakan. Terdapat berbagai macam bahasa pemrograman yang tersedia, tetapi yang akan digunakan di sini ialah bahasa C. Jadi, pastikan tombol paling ujung kiri bertuliskan "C". Kemudian, di sebelahnya, terdapat tombol stdin. Tombol ini berfungsi untuk memasukkan input yang akan kita gunakan pada Aktivitas 3. Tombol berwarna hijau di ujung kanan berfungsi untuk menjalankan atau mengeksekusi program yang kita buat.

$ads={1}

Berlatih Pemrograman Secara Mandiri Menggunakan Auto-Grader

Dalam dunia pemrograman, terutama dalam konteks berlatih atau berkompetisi, dikenal sebuah program yang dapat digunakan untuk mengecek apakah program yang kalian buat dapat menyelesaikan permasalahan yang diberikan. Program tersebut disebut auto-grader (penilai otomatis). Program tersebut lazim dimiliki oleh berbagai web tempat berlatih pemrograman untuk memudahkan murid memastikan program yang ia buat benar. Terdapat beberapa web yang dapat digunakan untuk berlatih pemrograman secara mandiri, salah satunya dikembangkan oleh Tim Olimpiade Komputer Indonesia yang dapat diakses di tlx.toki.or.id.

Web-web tersebut biasanya terdiri atas kumpulan materi dan soal yang dapat diselesaikan oleh kalian. Suatu soal, atau biasa disebut problem, terdiri atas deskripsi soal, format masukan, format keluaran, penjelasan, serta batasan yang digunakan dalam permasalahan tersebut. Setelah menganalisis dan memahami soal tersebut, kalian dapat merancang suatu algoritma untuk menyelesaikan permasalahan tersebut dalam batasan yang diberikan. Setelah itu, kalian dapat membuat kode program yang dapat digunakan untuk menyelesaikan soal tersebut dan mengirimkannya ke auto-grader.


Auto-grader akan menjalankan program yang telah dibuat, kemudian memberikan suatu kumpulan masukan pada program tersebut. Hasil dari program dibandingkan dengan hasil yang benar, yang telah disimpan pada auto-grader oleh pembuat soal. Pasangan masukan-keluaran yang dimasukkan oleh pembuat soal ini disebut kasus uji (test case). Suatu soal bisa memiliki satu hingga banyak test case bergantung pada kompleksitas dan tingkat kesulitan soal tersebut.

Berdasarkan hasil pengujian tersebut, auto-grader akan memberikan skor pada program kalian. Skor diberikan berdasarkan persentase test case yang dijawab dengan benar oleh program yang kalian buat. Apabila program kalian menghasilkan lima jawaban benar dari sepuluh test case yang tersedia, kalian akan mendapatkan skor sebesar 50. Apabila semua test case dijawab dengan benar, kalian mendapatkan nilai 100 dan mendapatkan hasil ACCEPTED.

Selain hasil ACCEPTED, terdapat beberapa kemungkinan lain yang dikeluarkan oleh auto-grader pada program kalian. Misalnya, WRONG ANSWER diberikan apabila program kalian tidak mendapatkan nilai 100. TIME LIMIT EXCEEDED diberikan apabila program kalian berjalan lebih lama daripada yang diminta oleh pembuat soal. MEMORY LIMIT EXCEEDED diberikan apabila program kalian menggunakan memori yang lebih besar daripada yang diberikan pada soal. RUN TIME ERROR apabila program kalian berhenti secara tidak wajar saat dijalankan. COMPILE ERROR apabila kode program kalian gagal dikompilasi oleh auto-grader. Selain itu, masih terdapat hasil-hasil lainnya yang bergantung pada masalah yang terjadi pada saat kode program dijalankan.

Kalian dapat berlatih soal-soal yang tersedia pada kursus pemrograman dasar yang tersedia di TLX (tlx.toki.id/courses/basic). Kalian dapat membuat akun dan mulai mengikuti kursus tersebut dengan membaca materi dan mengerjakan soal-soal yang diberikan. Selain berupa modul, terkadang IATOKI juga mengadakan kontes pemrograman dengan berbagai tingkat kesulitan yang dapat kalian ikuti.

Setelah menamatkan materi pemrograman dasar, kalian dapat melanjutkan ke latihan-latihan yang lebih kompleks, yang dirancang untuk kompetisi-kompetisi pemrograman (tlx.toki.id/courses/competitive). Di tingkat SMA, ada International Olympiad Informatics (IOI), sedangkan di tingkat perguruan tinggi, terdapat International Collegiate Programming Contest (ICPC). Kedua kompetisi ini adalah sebuah gold-standard dari kompetisi pemrograman tingkat internasional.

Pemrograman merupakan kemampuan yang harus terus dilatih, dan tidak cukup dengan dihafal. Makin sering kita berlatih, dan semakin banyak soal yang kita kerjakan, kita akan makin cepat dan mudah mengerjakan soal dengan tingkat kesulitan yang lebih tinggi. Apabila kalian menemukan kesulitan, terdapat banyak forum serta media online dimana kalian dapat mencari petunjuk untuk membantu kalian. 

Perbandingan Sintaks Bahasa C dan Python

Ada banyak bahasa pemrograman dengan kelebihan dan keunggulan masing-masing. Bahasa C pada unit ini hanyalah salah satu bahasa dari banyak bahasa pemrograman yang dapat dipilih. Pada tingkat SMP, serta pada unit analisis data di SMA Kelas X, diperkenalkan juga bahasa pemrograman lain, yaitu Python. Walaupun secara sintaks berbeda, struktur kontrol kedua bahasa tersebut mirip. Untuk mempermudah, diberikan Tabel berikut yang memberikan sintaks pada bahasa C dan Python untuk mengerjakan suatu hal yang sama. Kalian dapat mempelajari lebih lanjut mengenai bahasa Python di python.org.

Tabel Padanan Sintaks Bahasa C dan Bahasa Python

Sintaks pada Bahasa C Sintaks pada Bahasa Python Penjelasan
printf("%d", x); print(x) Mencetak   keluaran
scanf("%d", &x); x = input() Membaca   masukan
x = 10; x = 10 Pemberian   nilai
a = (x + y)*z; a = (x + y)*z Operasi   aritmetika
< <= > >= == != < <= > >= == != Operasi   perbandingan
&&, || and , not
if (<kondisi>){
pernyataan;
}
if <kondisi>:

pernyataan
Percabangan   dengan satu pernyataan
if (<kondisi1>){
pernyataan1;
} else if (<kondisi2>){
pernyataan2;
} else {
pernyataan3;
}
if <kondisi1>:
pernyataan1
elif <kondisi2>:
pernyataan2
else:
pernyataan3
Percabangan dengan lebih dari satu kemungkinan pernyataan
while (<kondisi>) {
pernyataan;
}
while <kondisi>:
pernyataan
Perulangan dengan while
     (berdasarkan kondisi)
for (int i=0;i<n;i++){
pernyataan dengan i;
}
for i in range(n):
pernyataan dengan i
Perulangan dengan iterator   
     (variabel penunjuk)

Contoh Program: Menghitung Jumlah Bilangan dari 1 hingga N Program dalam bahasa C:

/* Program Hitung Jumlah Bilangan 1 s/d N dalam Bahasa C */
#include <stdio.h> 
int main() {
    int n, jumlah; 
    scanf("%d", &n); 
    jumlah = 0;
        for (int i = 0; i < n; i++)
	    jumlah = jumlah + i;
	    printf("jumlah bilangan 1 s/d %d = %d\n", n - 1, jumlah);
    return 0;
}

Program dalam bahasa Python:

//# Program Hitung Jumlah Bilangan 1 – N di Python
n = input() 
jumlah = 0; 
for i in range(n):
    jumlah = jumlah + i
print("jumlah bilangan 1 s/d %d = %d\n" %( n - 1, jumlah))

Menerjemahkan sebuah program dari satu bahasa ke bahasa lain itu mudah, bukan? Semudah kalian menerjemahkan “Saya cinta Indonesia” menjadi “I love Indonesia”!


Apa Komentarmu?

Komentar yang dirasa merugikan situs ini akan dihapus. Terima kasih telah berkunjung

Lebih baru Lebih lama