Halo..

Selamat datang di CodecafeID.

Pada artikel kali ini, saya ingin berbagi sedikit tips programming khususnya competitive programming atau coding challenge kepada teman-teman. Competitive programming adalah sebuah kontes pemrograman yang mengharuskan kita untuk memecahkan sebuah masalah yang ada, biasanya permasalahan logika matematika. Kemudian kita memberikan solusinya dengan bahasa coding. Soal-soal dari competitive programming umumnya terdiri dari narasi masalah, input, dan output.

Disini saya ingin berbagi bagaimana proses dalam penyelesaian sebuah soal competitive programming. Semoga bisa dimengerti dengan baik. Yuk mulai!

NOTE: Soal competitive programming yang akan saya bahas kali ini disediakan dengan Bahasa Inggris

Bagi teman-teman yang ingin mengikuti Kotlin Heroes 2020 bisa daftar dengan klik link berikut: https://kotlinlang.org/

Problem A - A + B (Trial Problem)

time limit per test: 1 second
memory limit per test: 256 megabytes
input: standard input
output: standard output

You are given two integers a and b. Print a + b.

Input

The first line contains an integer t (1 <= t <= 10^4) - the number of test cases in the input. Then t test cases follow. Each test case is given as a line of two integers a and b (-1000 <= a, b <= 1000).

Output

Print t integers - the required numbers a + b.

Example

INPUT

4
1 5
314 15
-99 99
123 987
OUTPUT

6
329
0
1110

Oke, bisa dilihat masalah diatas cukup mudah untuk dimengerti. Saya akan memulai untuk memecahkan masalah diatas dengan beberapa langkah berikut:

1. Breakdown Narasi Masalah

Breakdown narasi masalah adalah hal yang paling utama untuk dilakukan. Kita mulai dengan membahasakan narasi masalah pada soal dengan bahasa sendiri yang mudah untuk dimengerti. Soal competitive programming umumnya memiliki alur cerita. Jadi, langkah ini akan sangat membantu. Berikut hasil breakdownnya:

Ada dua buah bilangan bulat (Integer) yaitu a dan b. Perintahnya adalah menampilkan hasil penjumlahan dari a dan b (a + b)

2. Buat Algoritma

Algoritma adalah langkah-langkah yang disusun secara berurutan dan dibuat dengan tujuan memperoleh hasil tertentu. Dari hasil breakdown narasi yang sudah kita lakukan sebelumnya, kita buat algoritmanya. Berikut adalah algoritma untuk soal diatas:

Algoritma:

1. Sediakan 3 buah variabel t, a, dan b
2. Masukkan nilai t
3. Masukkan nilai a dan b
4. Hitung nilai a + b
5. Tampilkan hasil hitung a + b
6. Ulangi langkah 3 sampai dengan 5 sebanyak t kali

Gimana, mudah bukan membuat algoritma. Buatlah algoritma dengan bahasa yang mudah dimengerti. Ingat, algoritma bukan sebatas instruksi-instruksi dalam coding ya.

3. Terjemahkan Algoritma

Oke, algoritma untuk memecahkan masalah sudah ada. Langkah selanjutnya adalah mengkonversi algoritma diatas menjadi kode program. berikut contoh hasil terjemahan algoritma ke kode untuk masalah diatas:

Solusi:

import java.util.*

fun main() {
  val scanner = Scanner(System.`in`)
  val t = scanner.nextInt()
  repeat(t) {
    val a = scanner.nextInt()
    val b = scanner.nextInt()

    println(a + b)
  }
}

4. Jalankan Test Case

Langkah terakhir adalah mencoba solusi kita dengan test case yang sudah diberikan oleh online judge atau website coding challenge. Kita hanya perlu melakukan submit source code kita dan online judge akan otomatis melakukan test. Jika semua test case terpenuhi dengan kode atau solusi kita. Maka itu artinya solusi kita telah diterima dengan tanda Accepted berwarna hijau dan kita mendapatkan poin. Berikut contoh hasil running kode diatas:

Pada IDE (IntelliJ):

Pada Online Judge (Codeforces):

Submit:

Hasil:

Nah, itu dia solusi untuk Problem A - A + B (Trial Problem). Jika teman-teman ada pertanyaan ayo kita diskusi pada kolom diskusi dibawah artikel ini. Untuk teman-teman yang ingin mengasah skill pemrograman atau yang sedang belajar bahasa pemrograman baru, teman-teman bisa mencoba coding challenge pada website-website yang saya rekomendasikan dibawah. Ini adalah cara yang ampuh untuk membiaasakan diri dengan sebuah bahasa pemrograman baru.

Online Coding Challenge Website: HackerRank, Codeforces, HackerEarth, Leetcode, dan CodeWars

Sampai disini dulu artikel kali ini, saya akan update untuk problem B, C, D, dan E pada artikel terpisah. Terimakasih!

Buy me a coffeeBuy me a coffee