6 Contoh Soal Latihan Tes Algoritma Coding untuk Interview Kerja Bidang Web Developer
Interview coding merupakan salah satu tahap penting dalam proses seleksi kerja bagi para calon programmer atau developer. Pada tahap ini, calon karyawan akan diberikan serangkaian pertanyaan atau tantangan coding yang harus dijawab atau diselesaikan dalam waktu tertentu. Tujuannya adalah untuk mengukur kemampuan dan keterampilan teknis calon karyawan dalam menyelesaikan masalah dan tantangan yang berkaitan dengan pekerjaan yang diinginkan.
Contoh soal
- Buatlah sebuah fungsi yang dapat menghitung jumlah kata dalam sebuah kalimat. Contoh: Jika kalimat yang diberikan adalah “Halo, nama saya John Doe”, maka hasilnya adalah 5.
- Buatlah sebuah fungsi yang dapat menemukan angka terbesar dari sebuah array. Contoh: Jika array yang diberikan adalah [1, 5, 3, 7, 2], maka hasilnya adalah 7.
- Buatlah sebuah fungsi untuk mengurutkan angka dalam sebuah array dari yang terkecil ke yang terbesar. Contoh: Jika array yang diberikan adalah [3, 1, 5, 2, 4], maka hasilnya adalah [1, 2, 3, 4, 5].
- Buatlah sebuah fungsi untuk mencari huruf yang paling sering muncul dalam sebuah kata. Contoh: Jika kata yang diberikan adalah “hello”, maka hasilnya adalah huruf “l”.
- Buatlah sebuah fungsi yang dapat menentukan apakah sebuah kata atau kalimat adalah palindrom atau tidak. Palindrom adalah kata atau kalimat yang dapat dibaca sama dari depan maupun dari belakang. Contoh: Jika kata yang diberikan adalah “level”, maka hasilnya adalah “palindrom”.
- Buatlah sebuah fungsi untuk mengonversi bilangan desimal menjadi bilangan biner menggunakan algoritma rekursif. Contoh: Bilangan decimal 222 sama dengan 11011110 dalam binary.
Ketika anda menjawab soal-soal tersebut, penting untuk memperhatikan cara kerja, solusi yang diberikan, dan output dari program. Pastikan cara kerja dan solusi sudah sesuai dengan yang di minta oleh soal, begitu juga dengan output dari program. Selain itu, perhatikan juga kualitas kode dan kemampuan untuk menjelaskan langkah-langkah yang dilakukan. Dengan cara ini, Anda bisa memberikan gambaran yang lebih jelas mengenai kemampuan dan keterampilan teknis anda dalam algoritma dan logika pemrograman.
Jawaban
Nomor 1
Untuk menghitung jumlah kata dalam sebuah kalimat, kita dapat memecah kalimat tersebut (dengan delimiter spasi) menjadi array of string dan menghitung length dari array tersebut.
# Python
def count_words(sentence):
words = sentence.split(' ')
return len(words)
sentence = "Halo, nama saya John Doe"
count = count_words(sentence)
print(count) # Output: 5
<?php
function count_words($sentence) {
$words = explode(' ', $sentence);
return count($words);
}
$sentence = "Halo, nama saya John Doe";
$count = count_words($sentence);
echo $count; // Output: 5
?>
Nomor 2
Untuk mencari nilai terbesar dalam sebuah array, kita dapat membandingkan setiap elemen dalam array dengan variabel yang menyimpan angka terbesar. Setiap kali elemen yang lebih besar ditemukan, variabel tersebut diperbarui dengan nilai yang lebih besar. Akhirnya, variabel tersebut akan berisi angka terbesar dalam array.
# Python
def find_max(array):
max_num = array[0]
for num in array:
if num > max_num:
max_num = num
return max_num
arr = [1, 5, 3, 7, 2]
max_num = find_max(arr)
print(max_num) # Output: 7
<?php
function find_max($array) {
$max_num = $array[0];
foreach ($array as $num) {
if ($num > $max_num) {
$max_num = $num;
}
}
return $max_num;
}
$arr = array(1, 5, 3, 7, 2);
$max_num = find_max($arr);
echo $max_num; // Output: 7
?>
Nomor 3
Untuk mengurutkan nilai dalam sebuah array, kita dapat menggunakan algoritma pengurutan. Terdapat banyak sekali algoritma pengurutan seperti Bubble sort, Insertion sort, Selection sort, Quick sort, Merge sort. Soal tidak menyebutkan algoritma apa yang harus di gunakan, sehingga bebas untuk menggunakan algoritma pengurutan apa saja. Kali ini kita akan menggunakan solusi algoritma Selection sort. Selection sort merupakan algoritma pengurutan yang cukup simpel, efisien, dan mudah di pahami.
def selection_sort(array):
for i in range(len(array)):
min_index = i
for j in range(i+1, len(array)):
if array[j] < array[min_index]:
min_index = j
array[i], array[min_index] = array[min_index], array[i]
return array
arr = [3, 1, 5, 2, 4]
sorted_arr = selection_sort(arr)
print(sorted_arr) #
function selection_sort($array) {
for ($i = 0; $i < count($array); $i++) {
$min_index = $i;
for ($j = $i+1; $j < count($array); $j++) {
if ($array[$j] < $array[$min_index]) {
$min_index = $j;
}
}
$temp = $array[$i];
$array[$i] = $array[$min_index];
$array[$min_index] = $temp;
}
return $array;
}
$arr = array(3, 1, 5, 2, 4);
$sorted_arr = selection_sort($arr);
print_r($sorted_arr); // Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 )
Selection sort adalah salah satu algoritma pengurutan sederhana yang cocok untuk digunakan pada dataset yang relatif kecil. Algoritma ini bekerja dengan cara memilih elemen terkecil dari array dan menukarnya dengan elemen pada posisi pertama. Kemudian, algoritma akan mencari elemen terkecil dari array ke-2 dan menukarnya dengan elemen pada posisi ke-2, dan begitu seterusnya hingga seluruh elemen terurut secara berurutan.
Nomor 4
def most_frequent_letter(word):
letters_count = {}
for letter in word:
if letter in letters_count:
letters_count[letter] += 1
else:
letters_count[letter] = 1
most_frequent = max(letters_count, key=letters_count.get)
return most_frequent
word = "hello"
print(most_frequent_letter(word)) # Output: l
- Fungsi
most_frequent_letter
menerima sebuah parameter berupa sebuah stringword
. - Membuat sebuah dictionary kosong
letters_count
untuk menyimpan jumlah kemunculan setiap huruf di dalamword
. - Melakukan iterasi pada setiap huruf di dalam
word
. Jika huruf sudah ada di dalamletters_count
, maka jumlah kemunculannya ditambahkan 1. Jika huruf belum ada di dalamletters_count
, maka huruf tersebut ditambahkan keletters_count
dengan jumlah kemunculan awal 1. - Menggunakan fungsi bawaan
max
untuk mencari huruf yang paling sering muncul di dalamletters_count
, dengan parameterkey=letters_count.get
yang artinya akan diurutkan berdasarkan jumlah kemunculan dari yang terbesar. - Mengembalikan huruf yang paling sering muncul.
Nomor 5
def is_palindrome(word):
# Menghilangkan karakter selain huruf dan angka
word = ''.join(e for e in word if e.isalnum()).lower()
# Memeriksa apakah string kosong atau hanya terdiri dari satu karakter
if len(word) < 2:
return True
# Memeriksa apakah string merupakan palindrom
left = 0
right = len(word) - 1
while left < right:
if word[left] != word[right]:
return False
left += 1
right -= 1
return True
w = "level"
if is_palindrome(w): # Output: True
print("Palindrom")
Nomor 6
def decimal_to_binary(n):
if n == 0:
return "0b0"
else:
binary = decimal_to_binary(n // 2)
return binary + str(n % 2)
print(decimal_to_binary(222)) # "0b011011110"
print(decimal_to_binary(10)) # "0b1010"
print(decimal_to_binary(0)) # "0b0"
print(decimal_to_binary(42)) # "0b101010"
Tips Menghadapi Interview Coding
Pelajari Topik yang Relevan.
Pelajari materi teknis yang relevan Sebelum menghadapi interview coding. Pastikan Anda mempelajari materi teknis yang relevan dengan pekerjaan yang Anda lamar. Anda bisa memperdalam pengetahuan mengenai bahasa pemrograman, framework, atau teknologi yang digunakan pada perusahaan tersebut. Hal ini juga berlaku pada CV / Portofolio, pastikan Anda memasukan pengalaman yang (sebisa mungkin) relevan dengan job desc yang diberikan.
Semisal, jika lowongan Web Developer tersebut memberi job deskripsi “Php dan laravel 8”. Maka Anda bisa memperdalam wawasan mengenai php dan laravel. Anda juga dapat mempelajari ekosistem teknologi dari bahasa pemrograman atau framework tersebut. Hal ini akan membantu Anda lebih siap dan percaya diri dalam menghadapi pertanyaan atau tantangan coding yang diberikan.
Menyelesaikan tantangan coding
Fokus pada pemecahan masalah Ketika menjawab pertanyaan atau menyelesaikan tantangan coding, fokuslah pada pemecahan masalah. Jangan terjebak pada detail atau kode yang rumit, tapi carilah solusi terbaik dengan prinsip-prinsip yang tepat. Jangan ragu untuk berdiskusi dengan pewawancara atau mencari sumber daya tambahan jika Anda kesulitan menyelesaikan masalah tersebut.
Pastikan solusi yang diberikan telah sesuai dengan tantangan atau soal yang di berikan. Langkah-langkah yang Anda dapat lakukan untuk memastikan solusi yang di berikan telah sesuai, ialah dengan menentukan terlebih dahulu input dan output yang di minta soal. Setelah menentukan dan mengetahui input output program yang diminta, Anda dapat memulai memikirkan solusi / tahap Proses.
- Baca soal dan tentukan Input dan Output yang di minta.
- Mulai memikirkan solusi atau tahap proses.
Komunikasi yang Baik
Selain kemampuan teknis, kemampuan komunikasi yang baik juga menjadi hal penting dalam interview coding. Pastikan Anda bisa menjelaskan dengan jelas dan mudah dipahami cara kerja kode atau solusi yang Anda buat. Jangan ragu untuk bertanya atau memberikan masukan jika ada yang kurang jelas atau perlu diperbaiki.
Kesimpulan
Dalam kesimpulannya, interview coding menjadi tahap penting dalam seleksi kerja bagi para calon programmer atau developer. Untuk menghadapinya, Anda perlu mempersiapkan diri dengan baik, fokus pada pemecahan masalah, berkomunikasi dengan baik, dan tetap tenang serta jangan mudah menyerah. Dengan cara ini, Anda akan memiliki peluang lebih besar untuk berhasil melewati tahap ini dan mendapatkan pekerjaan yang di inginkan.