Lampung Dev – Tes koding merupakan salah satu tahapan proses yang sering digunakan oleh perusahaan teknologi untuk mengevaluasi kemampuan teknis calon karyawan. Tes ini biasanya berisi serangkaian soal yang mengharuskan kandidat untuk menulis kode yang berfungsi untuk memecahkan masalah tertentu. Berikut adalah beberapa contoh soal tes koding beserta pembahasan lengkapnya.

Baca juga: Konsep Dasar Implementasi Clean Code pada JavaScript

1. Soal: Menemukan Bilangan Terbesar Kedua dalam Array

Deskripsi Soal:

Buatlah sebuah fungsi yang menerima sebuah array bilangan bulat dan mengembalikan bilangan terbesar kedua dalam array tersebut.

Contoh Input:

arr = [10, 4, 3, 50, 23, 90]

Contoh Output:

50

Pembahasan:

Untuk menyelesaikan masalah ini, kita perlu mencari dua bilangan terbesar dalam array dan mengembalikan yang lebih kecil dari keduanya. Langkah-langkahnya adalah sebagai berikut:

  1. Inisialisasi dua variabel untuk menyimpan dua bilangan terbesar.
  2. Iterasi melalui array untuk memperbarui dua variabel tersebut sesuai dengan bilangan yang ditemui.
  3. Mengembalikan bilangan terbesar kedua.

Kode:

def find_second_largest(arr):
    if len(arr) < 2:
        return None

    first = second = float('-inf')
    
    for number in arr:
        if number > first:
            second = first
            first = number
        elif number > second and number != first:
            second = number
    
    return second

# Contoh penggunaan
arr = [10, 4, 3, 50, 23, 90]
print(find_second_largest(arr))  # Output: 50

2. Soal: Menghapus Elemen Duplikat dari Array

Deskripsi Soal:

Buatlah sebuah fungsi yang menerima sebuah array bilangan bulat dan mengembalikan array yang telah dihapus elemen-elemen duplikatnya.

Contoh Input:

arr = [1, 2, 2, 3, 4, 4, 5]

Contoh Output:

[1, 2, 3, 4, 5]

Pembahasan:

Untuk menghapus elemen duplikat dari array, kita dapat menggunakan struktur data set yang tidak memperbolehkan duplikasi. Langkah-langkahnya adalah:

  1. Konversi array ke set untuk menghilangkan duplikat.
  2. Konversi set kembali ke array.

Kode:

def remove_duplicates(arr):
    return list(set(arr))

# Contoh penggunaan
arr = [1, 2, 2, 3, 4, 4, 5]
print(remove_duplicates(arr))  # Output: [1, 2, 3, 4, 5]

3. Soal: Memeriksa Palindrom

Deskripsi Soal:

Buatlah sebuah fungsi yang menerima sebuah string dan memeriksa apakah string tersebut adalah palindrom (sama jika dibaca dari depan maupun belakang).

Contoh Input:

s = "radar"

Contoh Output:

True

Pembahasan:

Untuk memeriksa apakah sebuah string adalah palindrom, kita dapat membandingkan string tersebut dengan versi terbaliknya. Langkah-langkahnya adalah:

  1. Balik string menggunakan slicing.
  2. Bandingkan string asli dengan versi terbaliknya.

Kode:

def is_palindrome(s):
    return s == s[::-1]

# Contoh penggunaan
s = "radar"
print(is_palindrome(s))  # Output: True

Baca juga: Bagaimana Prospek Karir Jurusan Teknik Informatika?

4. Soal: FizzBuzz

Deskripsi Soal:

Buatlah sebuah fungsi yang mencetak angka dari 1 hingga 100. Namun, untuk angka yang kelipatan 3, cetak “Fizz” sebagai gantinya. Untuk angka yang kelipatan 5, cetak “Buzz”. Untuk angka yang merupakan kelipatan 3 dan 5, cetak “FizzBuzz”.

Contoh Output:

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
...

Pembahasan:

Masalah ini memerlukan loop dari 1 hingga 100 dan penggunaan conditional statements untuk memeriksa kelipatan 3 dan 5.

Kode:

def fizzbuzz():
    for i in range(1, 101):
        if i % 3 == 0 and i % 5 == 0:
            print("FizzBuzz")
        elif i % 3 == 0:
            print("Fizz")
        elif i % 5 == 0:
            print("Buzz")
        else:
            print(i)

# Contoh penggunaan
fizzbuzz()

Kesimpulan

Tes koding merupakan cara efektif untuk mengukur kemampuan pemrograman seseorang. Dengan mempraktikkan berbagai jenis soal seperti mencari bilangan terbesar kedua, menghapus elemen duplikat, memeriksa palindrom, dan menyelesaikan masalah FizzBuzz, Anda dapat meningkatkan kemampuan pemecahan masalah dan keterampilan pemrograman Anda. Tetap berlatih dan memahami solusi secara mendalam untuk meningkatkan kinerja Anda dalam tes koding.

Share.

Seorang profesional teknologi yang berfokus pada pengembangan aplikasi (web & Android), DevOps, teknologi data, serta spesialisasi dalam Natural Language Processing (NLP) dan pengembangan ChatBot berbasis NLP. Memiliki keahlian mendalam di ekosistem Node.js dan aktif berkontribusi pada berbagai proyek open-source melalui library JavaScript di NPM. Rutin menulis artikel dan panduan teknis seputar pemrograman di LampungDev.com, berbagi wawasan seputar tren teknologi terbaru dan solusi pemrograman inovatif.

Exit mobile version