Barusan baca email di milis, tentang isi sebuah blog di sini. Dia bilang, dari 200 programmer pelamar suatu pekerjaan,
199 di antaranya gagal membuat sebuah program sederhana berikut ini:
Buat sebuah program yang menampilkan angka dari 1 hingga 100, dengan catatan jika angkanya kelipatan 3, maka tampilkan kata fizz ketimbang nulis angka itu sendiri, menulis kata buzz untuk kelipatan 5, dan fizzbuzz untuk kelipatan 3 dan 5. Sisanya menampilkan angka seperti apa adanya. |
Pas aku baca blog itu, kebetulan ada 3 programmer pemula yang ada di sampingku, dan aku minta mereka membuat program tersebut. Dari ketiganya, 2 gagal total. Itupun yang bisa, masih ada sedikit sintaks error. Ini setidaknya membuktikan bahwa tidak semua programmer, bisa coding alias mrogram. Ada yang merasa sudah bisa memprogram,
namun mungkin kurang berlatih sehingga gagal mengerjakan
sebuah tugas yang sangat sederhana.
Iseng-iseng bikin versi program di atas dengan menggunakan beberapa bahasa:
Versi turbo prolog yang rekursif:
predicates
fizzbuzz(integer)
solution(integer)
clauses
fizzbuzz(I) :- I mod 15 = 0, write(“fizzbuzz”, “n”), !.
fizzbuzz(I) :- I mod 3 = 0, write(“fizz”, “n”), !.
fizzbuzz(I) :- I mod 5 = 0, write(“buzz”,”n”), !.
fizzbuzz(I) :- write(I, “n”), !.
solution(X) :-
X <= 100, fizzbuzz(X), Y = X + 1, solution(Y).
goal
solution(1).
Versi Pascal:
program FizzBuzz;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
i: integer;
begin
for i := 1 to 100 do
begin
if i Mod 15 = 0 then
writeln(‘fizzbuzz’)
else if i Mod 3 = 0 then
writeln(‘fizz’)
else if i Mod 5 = 0 then
writeln(‘buzz’)
else
writeln(i);
end;
readln;
end.
Versi Java (dengan ternary operator ala C):
public class FizzBuzz {
public static void main(String[] args) {
for (int i=1; i<=100; i++) {
System.out.println(i % 15 == 0 ? “fizzbuzz” : (i % 3 == 0 ? “fizz” : (i % 5 == 0 ? “buzz” : i)));
}
}
}
Di Microsoft Excel:
Bikin 2 kolom A1 diisi angka 1-100, kolom B1 sampai B100 diisi:
=(IF(MOD(A1;15)=0;”fizzbuzz”;(IF(MOD(A1;3)=0;”fizz”;(IF(MOD(A1;5)=0;”buzz”;A1))))))
Ada yang mau menambahkan dalam bahasa lain mungkin?