5 Contoh Soal Test Wawancara Coding Bidang Web Developer (Beserta solusi)

madey
4 min readMay 4, 2021

--

Photo by Austin Distel on Unsplash

Pada kesempatan kali ini, saya ingin membagikan pengalaman test interview coding saat melamar kerja sebagai Web Developer. Beberapa hari yang lalu, saya melamar pekerjaan dan diberikan beberapa soal untuk dikerjakan sebagai salah satu syarat untuk lanjut ke proses seleksi masuk berikutnya. Nah, saya ingin berbagi soal-soal yang diberikan dan semoga ini bisa menjadi latihan atau gambaran soal-soal yang mungkin diberikan saat melamar kerja.

Terdapat 5 soal yang diberikan disertai dengan Instruksi pengerjaan, berikut uraiannya:

Instruksi Pengerjaan

Waktu pengerjaan : 40 menit

Instruksi:

  • Kesalahan kecil seperti kurang titik koma, cara mendeklarasikan variabel yang salah, atau nama variabel yang salah masih dapat diterima. Logika, cara Anda berpikir, dan implementasi solusi Anda lebih penting.
  • Waktu penyelesaian akan memengaruhi skor total Anda (semakin cepat semakin baik

Soal Nomor 1

Buatlah fungsi yang dapat menghasilkan output seperti dibawah ini:

input n = 5
1**45678
12**5678
123**678
1234**78
12345**8
input n = 4
1**4567
12**567
123**67
1234**7

Soal Nomor 2

Membuat soal interview untuk programer tidak membuat saya menjadi kaya raya. Mungkin dengan jual beli saham apple bisa menjadikan saya kaya raya.

Misalkan kita dapat mengakses harga saham apple sebagai list/array, dimana:
• Index array sebagai waktu dalam menit setelah jam perdagangan saham dimulai.
• Nilai dalam elemen tersebut merupakan harga saham pada saat itu.

Maka:

cost $300 at 09:30am, stock_prices_yesterday[0] = 300
cost $350 at 09:40am, stock_prices_yesterday[10] = 350
cost $500 at 10:30am, stock_prices_yesterday[60] = 500

Buatkan fungsi yang mengambil stock_prices_yesterday dan mengembalikan keuntungan terbaik yang bisa saya buat
dari 1 pembelian dan 1 penjualan 1 saham Apple kemarin.

Contohnya:

stock_prices_yesterday = [10, 7, 5, 8, 11, 9, 1]
get_max_profit(harga)
# returns 6 (5 dan 11)

Soal Nomor 3

Untuk memenangkan hadiah untuk penjualan kue yang paling banyak terjual, teman saya Alice dan saya akan menggabungkan “Girl Scout Cookies” menjadi 1 pesanan.

Setiap pesanan diwakili oleh “nomor pesanan” (bilangan bulat).

Kami memiliki daftar pesanan yang sudah diurutkan secara numerik, dalam daftar. Buatlah fungsi untuk menggabungkan daftar pesanan kami menjadi 1 pesanan yang terurut.

Tidak diperbolehkan menggunakan fungsi array yang telah ditentukan untuk menggabungkan dan mengurutkan (array_merge, array_sort, .sort(), .merge() atau fungsi serupa lainnya)

bob = [3, 4, 6, 10, 11, 15]
alice = [1, 5, 8, 12, 14, 19]
print merge_list(bob, alice)
# prints [1, 3, 4, 5, 6, 8, 10, 11, 12, 14, 15, 19]

Soal Nomor 4

Anda memiliki daftar bilangan bulat, dan untuk setiap indeks Anda ingin menemukan produk dari setiap bilangan bulat kecuali bilangan bulat
pada indeks itu. Buatlah fungsi get_products() yang mengambil daftar bilangan bulat dan mengembalikan daftar produk.

array:
[1, 7, 3, 4]
hasilnya:
[84, 12, 28, 21]
dengan cara hitung:
[7 * 3 * 4, 1 * 3 * 4, 1 * 7 * 4, 1 * 7 * 3]

Soal Nomor 5

Pada sebuah penerbangan terdapat sistem menonton, terkadang sebelum film tersebut habis pesawat telah mendarat. Buatlah fungsi yang menentukan hasil penjumlahan 2 durasi film dari koleksi film yang hasil penjumlahan tersebut apakah sama dengan lamanya penerbangan n yang diinputkan.

Diasumsikan setiap orang menonton setidaknya 2 film dan filmnya tidak boleh sama.

Contohnya:

array = [1, 7, 3, 4]input n = 7output: True # karena durasi 2 film: 3 dan 4 sama dengan input 7.

Solusi menggunakan Python

Jawaban Nomor 1

Jika diperhatikan pada pola yang ada, dapat diketahui:

  • Setiap baris selalu memiliki **
  • Jumlah angka pada tiap baris selalu n + 3.
  • Simbol ** selalu keluar setelah angka baris. Maksudnya, pada baris 3, setelah angka 3 mucul baru **.
def simple_function(n):
for i in range(1, n + 1):
j = 1
while j <= n + 3:
print(j, end='')
if i == j:
print("**", end='')
j += 2
j += 1
print("")
n = int(input("input n: "))
simple_function(n)

Jawaban Nomor 2

Mencari nilai selisih paling besar pada sebuah array, tetapi penghitungan nilai selisihnya harus dari kiri ke kanan.

stock_prices_yesterday = [10, 7, 5, 8, 11, 9, 1]
def get_max_profit(prices):
max_profit = 0
for i, current_price in enumerate(prices):
for target_price in prices[i + 1:]:
current_profit = target_price - current_price
if current_profit > max_profit:
max_profit = current_profit
return max_profit
print(get_max_profit(stock_prices_yesterday))

Jawaban Nomor 3

my_list = [3, 4, 6, 10, 11, 15]
alices_list = [1, 5 ,8, 12, 14, 19]
def merge(my_list, alices_list):
my_len = len(my_list)
alice_len = len(alices_list)
my_pointer = 0
alice_pointer = 0
result = []
while my_pointer < my_len and alice_pointer < alice_len:
my_val = my_list[my_pointer]
alice_val = alices_list[alice_pointer]
if my_val < alice_val:
result.append(my_val)
my_pointer += 1
else:
result.append(alice_val)
alice_pointer += 1
while my_pointer < my_len:
result.append(my_list[my_pointer])
my_pointer += 1
while alice_pointer < alice_len:
result.append(alices_list[alice_pointer])
alice_pointer += 1
return resultprint(merge(my_list, alices_list))

Jawaban Nomor 4

products = [1, 7, 3, 4]
n = len(products)

def get_products(products):
final = []
for i in range(n):
current = 1
for j in range(n):
if i != j:
current *= products[j]
final.append(current)
return final
print(get_products(products))

Jawaban Nomor 5

def function(flight_length, movie_lengths):
n_movies = len(movie_lengths)
for i in range(n_movies):
for j in range(n_movies):
if i != j:
if movie_lengths[i] + movie_lengths[j] == flight_length:
return True
return False

movie_lengths = [1, 7, 3, 4]
flight_length = 7
print(function(flight_length, movie_lengths))

Semoga bermanfaat :)

--

--