Forums
EduWork Logic Test - Printable Version

+- Forums (https://bb.nurfachmi.com)
+-- Forum: My Category (https://bb.nurfachmi.com/forum-1.html)
+--- Forum: My Forum (https://bb.nurfachmi.com/forum-2.html)
+--- Thread: EduWork Logic Test (/thread-4.html)



EduWork Logic Test - admin - 05-02-2026

Quote:Reza Nurfachmi, July 28, 2022

Beberapa bulan terakhir ini, saya terdaftar menjadi salah satu mentor di sebuah platform mentorship yang juga menjanjikan pekerjaan untuk para siswanya. Namun, foto saya tidak terpampang di situ karena bukan termasuk pekerja di perusahaan start-up terkemuka. Hihihi.

Setelah beberapa bulan berjalan, sampailah siswa-siswa saya dianggap “lulus” dan harus mengerjakan soal mengenai logika. Begini soalnya dan begitu jawaban dari saya. Hihihi.
Harus diingat, jawaban ini bukanlah satu-satunya jawaban dan belum tentu jawaban terbaik. Jadi, silahkan kirimkan komentar kalau teman-teman punya jawaban yang lebih baik ya.

---

Quote:Buatlah fungsi sebagai berikut :
Apabila terdapat int = 4, maka outputnya 24 (prosesnya : 4*3*2*1)
Apabila terdapat int = 8, maka outputnya 40320 (prosesnya : 8*7*6*5*4*3*2*1)

Jawaban:
PHP Code:
<?php

$int 
4// ubah angka di sini

for($i $int 1$i >= 1$i--) {
    $int *= $i;
}

echo 
$int// output: 24 

---

Quote:Buatlah fungsi untuk reverse sebuah string
Apabila input = “abcde”, maka outputnya = “edcba”
Dilarang menggunakan function reverse, buatlah logika sendiri

Jawaban:
PHP Code:
<?php

$input 
"abcde";

$n strlen($input);

for (
$i 1$i <= $n$i++) {
  $val $input[-$i];
  echo $val;
}

// output: edcba 

---

Quote:Buatlah fungsi untuk menampilkan jumlah digit angka tergantung dimana posisi atau tempat dari angka dalam sebuah string “9.86-A5.321”!
Contoh: printDigitValue(‘9.86-A5.321’);
Hasil :
9865321
9000000
800000
60000
5000
300
20
1

Jawaban:
PHP Code:
<?php

echo printDigitValue('9.86-A5.321');

function 
printDigitValue($value)
{
  $n strlen($value);
  $result "";

  for ($i 0$i <= $n$i++) {
    if (!is_numeric($value[$i])) {
      continue;
    }
    $result .= $value[$i];
  }

  echo $result "\n";

  $n strlen($result);

  for ($i 0$i <= $n$i++) {
    echo str_pad($result[$i], $n $i'0'STR_PAD_RIGHT) . "\n";
  }


---

Quote:Ketik kode untuk swap 2 integer variables tanpa VARIABLE TAMBAHAN
Contoh : let a = 3, let b = 7 => hasilnya a = 7, b = 3

Jawaban:
PHP Code:
<?php

$a 
3;
$b 7;

$a $a $b;
$b $a $b;
$a $a $b

---

Quote:Buatlah fungsi sebagai berikut :
int : 4, maka outputnya adalah : empat
int : 20, maka outputnya adalah : dua puluh
int : 39, maka outputnya adalah : tiga puluh sembilan
int : 104, maka outputnya adalah : silahkan masukkan bilangan 1-100

Jawaban:
PHP Code:
<?php

$angka 
101;
echo 
penyebut($angka);

function 
penyebut($nilai)
{
  $nilai abs($nilai);
  $huruf = array("""satu""dua""tiga""empat""lima""enam""tujuh""delapan""sembilan""sepuluh""sebelas");
  $temp "";
  if ($nilai <= or $nilai 100) {
    echo "silahkan masukkan bilangan 1-100";
  } else if ($nilai 12) {
    $temp " " $huruf[$nilai];
  } else if ($nilai 20) {
    $temp penyebut($nilai 10) . " belas";
  } else if ($nilai 100) {
    $temp penyebut($nilai 10) . " puluh" penyebut($nilai 10);
  } else {
    echo "seratus";
  }

  return $temp;


---

Quote:Apabila terdapat sebuah data :
array data =  [1,4,7,9,12],
int low = 2,
int high = 15,
maka akan menghasilkan ouput [4,7,9,12]

Jawaban:
PHP Code:
<?php

$array 
= [147912];
$low 2;
$high 15;

$result = [];

foreach (
$array as $key => $value) {
  if ($value >= $low && $value <= $high) {
    $result[] = $value;
  }
}

var_dump ($result); 

---

Quote:Dari soal nomor 6, buatlah juga untuk menghasilkan output total ada berapa angka yg termasuk dari bagian low dan high
array data =  [1,4,7,9,12],
int low = 2,
int high = 15,
maka akan menghasilkan ouput = 4

Jawaban:
PHP Code:
<?php

$array 
= [147912];
$low 2;
$high 15;

$result = [];

foreach (
$array as $key => $value) {
  if ($value >= $low && $value <= $high) {
    $result[] = $value;
  }
}

echo 
count($result); 

---

Quote:Apabila terdapat int = 15, maka akan mencetak output berikut :
1
2
Edu
4
Work
6
7
8
Edu
10
11
Edu
13
14
EduWork

keterangan : string edu untuk kelipatan 3, string work untuk kelipatan 5, string eduwork untuk kelipatan 3 dan 5

Jawaban:
PHP Code:
<?php

$int 
15;

for (
$i=1$i <= $int$i++) { 
  if ($i == && $i == 0) {
    echo "EduWork";
  } else if ($i == 0) {
    echo "Edu";
  } else if ($i == 0) {
    echo "Work";
  } else {
    echo $i;
  }


---

Quote:Buatlah fungsi untuk menentukan bilangan terkecil dan terbesar dari sebuah array
Contoh : array [4,2,6,88,3,11]
Maka outputnya adalah low : 2, high : 88
dilarang menggunakan built in function

Jawaban:
PHP Code:
<?php

$array 
= [42688311];
$low $array[0];
$high $array[0];
$n count($array);

for (
$i 0$i $n$i++) {
  if ($low $array[$i]) { 
    $low $array[$i]; 
  

  if ($high $array[$i]) {
    $high $array[$i];
  }
}

echo 
"low : $low, high : $high"

---

Quote:Buatlah fungsi untuk mengecek tahun kabisat
input : 2021
output : 2021 bukan tahun kabisat

input : 2024
output : 2024 adalah tahun kabisat

Jawaban:
PHP Code:
<?php

$input 
2021;

if (
$input == 0) {
  echo "$input adalah tahun kabisat";
} else if (
$input != 0) {
  echo "$input bukan tahun kabisat";


---

Perhatian. Jangan anggap ini sebagai kunci jawaban karena EduWork bisa mengubah soal-soal di atas kapan pun. Yang saya ingin sampaikan adalah PAHAMI jawaban-jawaban di atas sehingga logika kita bisa semakin terasah jika diberikan soal logika lainnya.