Cara Membuat Website Undangan Nikah Online
Toki Learning Center merupakan sebuah pusat pembelajaran tentang informatika yang dibuka untuk umum oleh TOKI Biro Institut Teknologi Bandung. Toki Learning dapat diakses di tokilearning.org , jika ingin berlatih soal-soal pemrograman bisa register di situs tersebut.
Pembahasan yang saya share disini adalah jawaban dari latihan Toki Learning milik saya yang sudah accepted. Algoritma punya saya rata-rata masih sederhana karena saya juga baru saja mulai mencoba bidang Informatika karena saya baru SMA kelas X.
Disini saya share tentang beberapa jawaban saya yang accepted di soal latihan Toki Learning Center. Ini hanya ada sebagian jawaban disini, yang lain belum saya selesaikan, lain kali akan saya update lagi jawaban-jawabannya.
Sebaiknya sebelum anda melihat pembahasan punya saya ini, Berusahalah terlebih dahulu untuk menyelesaikannya, baru jika merasa ada yang tidak bisa dapat melihat pembahasan ini.
Bahasa yang digunakan adalah bahasa Pascal, sedangkan compilernya adalah Free Pascal. Jika belum punya compiler Free Pascal bisa di download DISINI. Juga jika ingin mempelajari bahasa pemrograman pascal bisa download tutorialnya DISINI.
Bahasa yang digunakan adalah bahasa Pascal, sedangkan compilernya adalah Free Pascal. Jika belum punya compiler Free Pascal bisa di download DISINI. Juga jika ingin mempelajari bahasa pemrograman pascal bisa download tutorialnya DISINI.
1A : MASUKAN DAN KELUARAN
Program Pertamaku
program pertamaku;
var
kalimat : string;
begin
readln(kalimat);
writeln(kalimat);
end.
A Tambah B
program penjumlahan;
var
a, b : byte;
begin
readln(a, b);
writeln(a+b);
end.
Bebek Untuk Teman
program bebek;
var
n, m : integer;
begin
read(n, m);
writeln('masing-masing ', n div m);
writeln('bersisa ', n mod m);
end.
Luas Segitiga
program luas_segitiga;
var
a, t : integer;
luas : real;
begin
readln(a, t);
luas := a*t/2;
writeln(luas:0:2);
end.
Transpos Matriks
program transpos_matriks;
var
a,b,c,d,e,f,g,h,i : integer;
begin
readln(a, b, c);
readln(d, e, f);
readln(g, h, i);
writeln(a,' ',d,' ',g);
writeln(b,' ',e,' ',h);
writeln(c,' ',f,' ',i);
end.
1B : PERCABANGAN
If Then
program if_then;
var
bil : integer;
begin
read(bil);
if bil>0 then
writeln(bil);
end.
If Then, Multi Condition
program if_then_multi;
var
bil : longint;
begin
read(bil);
if (bil>0) and (bil mod 2=0) then
begin
writeln(bil);
end;
end.
If Then Else
program if_then_else;
var
bil : integer;
begin
read(bil);
if bil>0 then
writeln('positif')
else
if bil=0 then
writeln('nol')
else
writeln('negatif');
end.
Case
program casing;
var
bil : longint;
begin
read(bil);
case bil of
1..9: begin writeln('satuan'); end;
10..99: begin writeln('puluhan'); end;
100..999: begin writeln('ratusan'); end;
1000..9999: begin writeln('ribuan'); end;
10000..99999: begin writeln('puluhribuan'); end;
end;
end.
Jarak Manhattan
program jarak_manhattan;
var
bx, by, kx, ky, x1, x2, y1, y2 : longint;
begin
readln(x1, y1, x2, y2);
if x1>x2 then
begin
bx :=x1; kx:=x2;
end else
begin
bx :=x2; kx:=x1;
end;
if y1>y2 then
begin
by :=y1; ky:=y2;
end else
begin
by :=y2; ky:=y1;
end;
writeln((bx-kx)+(by-ky));
end.
Floor and Ceiling
program floor_ceiling;
var
n : real;
floor, ceiling, c : longint;
begin
readln(n);
c := trunc(n);
if n<0 then
begin
ceiling := c;
floor := c-1;
writeln(floor,' ',ceiling);
end;
if n>0 then
begin
floor := c;
ceiling := c+1;
writeln(floor,' ', ceiling);
end;
end.
Nilai Kalimat Matematika
program nilai_matematika;
var
a, b : smallint;
op, sp : char;
begin
readln(a, sp, op, sp, b);
case op of
'+' : writeln(a+b);
'-' : writeln(a-b);
'*' : writeln(a*b);
'<' : begin if a>b then writeln('salah') else writeln('benar'); end;
'>' : begin if a>b then writeln('benar') else writeln('salah'); end;
'=' : begin if a=b then writeln('benar') else writeln('salah'); end;
end;
end.
1C : PERULANGAN
While
program while_1c;
var
kalimat : string;
begin
while not eof(input) do
begin
readln(kalimat);
writeln(kalimat);
end;
end.
While + Counter
program while_counter;
var
bil, jumlah : integer;
begin
jumlah := 0;
while not eof do
begin
readln(bil);
jumlah := jumlah+bil;
end;
writeln(jumlah);
end.
For
program for_1c;
var
n : shortint;
jumlah, i, bil : integer;
begin
jumlah := 0;
read(n);
for i := 1 to n do
begin read(bil);
jumlah := jumlah + bil;
end;
writeln(jumlah);
end.
Break, Continue, Exit
program break_continue_exit;
var
n, i : integer;
error : boolean;
begin
readln(n);
error := false;
for i := 1 to n do
begin
if (i=93) then
error := true;
if (not error) and (i mod 10<>0) then
writeln(i);
if (error) then
writeln('ERROR');
end;
end.
Dua Pangkat
program dua_pangkat;
var
n, m : longint;
begin
readln(n);
m:= 1;
while m<n do
m := m*2;
if n=m then
writeln('TRUE') else
writeln('FALSE');
end.
Pola 1
program pola_1;
var
n, i, j : byte;
begin
readln(n);
for i := 1 to n do
begin
for j := 1 to n-1 do
write(' ');
for j := 1 to i do
if j<i then
write('*');
if j>=i then
writeln('*');
end;
end.
Pola 2
program pola_2
var
a, i, j, n : smallint;
begin
readln(n);
a := -1;
for i := 1 to n do
for j := 1 to i do
if a<10 then begin
a := a+1;
if a=10 then a := 0;
if j<i then write(a);
if j>= i then writeln(a);
end;
end.
Pola 3
program pola_3;
var
n, k, a : byte;
begin
readln(n, k);
for a := 1 to n-1 do
if (a mod k=0) then
write('* ') else
write(a,' ');
if (n mod k=0) then
write('* ') else
writeln(n);
end.
Rata-Rata
program rata_rata;
var
jumlah, min, max, rata, bil : real;
n, a : integer;
begin
max : 1000000;
min := -1000000;
readln(n);
for a := 1 to n do
begin readln(bil);
jumlah := jumlah+bil;
if bil<max then max := bil;
if bil > min then min := bil;
end;
rata := jumlah/n;
writeln(max:0:2,' ', min:0:2,' ',rata:0:2);
end.
Faktor Bilangan
program faktor_bilangan;
var
n, x, bil : longint
begin
readln(n);
for x := n downto 1 do
if n mod x=0 then
begin writeln(x);
end;
end.
Cek Bilangan Prima
program cek_prima;
var
n, i, a : integer;
prima : boolean;
begin
while not eof(input) do begin
readln(n);
prima := true;
if n<2 then prima := false;
for i := 2 to n-1 do
if n mod i=0 then prima := false;
if prima = true then
writeln('YA') else
writeln('TIDAK');
end;
end.
Bilangan Agak Prima
program agak_prima;
var
t, i : byte;
n, cek, tes, bts : longint;
begin
readln(t);
for i := 1 to t do begin
readln(n);
cek := 0;
tes := 3;
bts := trunc(n/2);
if (n mod 2=0) and (n<>2) or (n=1) then
inc(cek);
while tes<=bts do begin
if (n mod tes=0) then begin
inc(cek);
if cek>2 then break;
end;
inc(tes);
end;
if cek>2 then
writeln('TIDAK') else
writeln('YA');
end;
end.
1D : FUNGSI DAN PROSEDUR
Procedure
program prosedur;
procedure namasatuan(n: longint);
begin
case n of
1..9 : begin writeln('satuan'); end;
10..99 : begin writeln('puluhan'); end;
100..999 : begin writeln('ratusan'); end;
1000..9999 : begin writeln('ribuan'); end;
10000..99999 : begin writeln('puluhribuan'); end;
end;
end;
var bil : longint;
begin
while not eof(input) do begin
readln(bil);
namasatuan(bil);
end;
end.
Function
program fungsi;
function faktorial(n: integer): longint;
var
i : integer;
bil : longint;
begin
bil := 1;
for i := n downto i do
bil := bil*i;
faktorial := bil;
end;
var
bil : integer;
begin
readln(bil)
if (bil>=0) and (bil<=10) then
writeln(faktorial(bil)) else
writeln('ditolak');
end.
Itulah sebagian jawaban punya saya yang accepted, sebagian belum saya post karena belum terselesaikan. Jika ada beberapa jawaban disini yang belum di-accepted, silakan memberi komentar dibawah.
Sekian Pembahasan Soal Latihan Toki Learning Bab 1 Pengenalan, semoga bermanfaat bagi anda yang sedang mencarinya. Terima kasih.
program pertamaku;
var
kalimat : string;
begin
readln(kalimat);
writeln(kalimat);
end.
A Tambah B
program penjumlahan;
var
a, b : byte;
begin
readln(a, b);
writeln(a+b);
end.
Bebek Untuk Teman
program bebek;
var
n, m : integer;
begin
read(n, m);
writeln('masing-masing ', n div m);
writeln('bersisa ', n mod m);
end.
Luas Segitiga
program luas_segitiga;
var
a, t : integer;
luas : real;
begin
readln(a, t);
luas := a*t/2;
writeln(luas:0:2);
end.
Transpos Matriks
program transpos_matriks;
var
a,b,c,d,e,f,g,h,i : integer;
begin
readln(a, b, c);
readln(d, e, f);
readln(g, h, i);
writeln(a,' ',d,' ',g);
writeln(b,' ',e,' ',h);
writeln(c,' ',f,' ',i);
end.
1B : PERCABANGAN
If Then
program if_then;
var
bil : integer;
begin
read(bil);
if bil>0 then
writeln(bil);
end.
If Then, Multi Condition
program if_then_multi;
var
bil : longint;
begin
read(bil);
if (bil>0) and (bil mod 2=0) then
begin
writeln(bil);
end;
end.
If Then Else
program if_then_else;
var
bil : integer;
begin
read(bil);
if bil>0 then
writeln('positif')
else
if bil=0 then
writeln('nol')
else
writeln('negatif');
end.
Case
program casing;
var
bil : longint;
begin
read(bil);
case bil of
1..9: begin writeln('satuan'); end;
10..99: begin writeln('puluhan'); end;
100..999: begin writeln('ratusan'); end;
1000..9999: begin writeln('ribuan'); end;
10000..99999: begin writeln('puluhribuan'); end;
end;
end.
Jarak Manhattan
program jarak_manhattan;
var
bx, by, kx, ky, x1, x2, y1, y2 : longint;
begin
readln(x1, y1, x2, y2);
if x1>x2 then
begin
bx :=x1; kx:=x2;
end else
begin
bx :=x2; kx:=x1;
end;
if y1>y2 then
begin
by :=y1; ky:=y2;
end else
begin
by :=y2; ky:=y1;
end;
writeln((bx-kx)+(by-ky));
end.
Floor and Ceiling
program floor_ceiling;
var
n : real;
floor, ceiling, c : longint;
begin
readln(n);
c := trunc(n);
if n<0 then
begin
ceiling := c;
floor := c-1;
writeln(floor,' ',ceiling);
end;
if n>0 then
begin
floor := c;
ceiling := c+1;
writeln(floor,' ', ceiling);
end;
end.
Nilai Kalimat Matematika
program nilai_matematika;
var
a, b : smallint;
op, sp : char;
begin
readln(a, sp, op, sp, b);
case op of
'+' : writeln(a+b);
'-' : writeln(a-b);
'*' : writeln(a*b);
'<' : begin if a>b then writeln('salah') else writeln('benar'); end;
'>' : begin if a>b then writeln('benar') else writeln('salah'); end;
'=' : begin if a=b then writeln('benar') else writeln('salah'); end;
end;
end.
1C : PERULANGAN
While
program while_1c;
var
kalimat : string;
begin
while not eof(input) do
begin
readln(kalimat);
writeln(kalimat);
end;
end.
While + Counter
program while_counter;
var
bil, jumlah : integer;
begin
jumlah := 0;
while not eof do
begin
readln(bil);
jumlah := jumlah+bil;
end;
writeln(jumlah);
end.
For
program for_1c;
var
n : shortint;
jumlah, i, bil : integer;
begin
jumlah := 0;
read(n);
for i := 1 to n do
begin read(bil);
jumlah := jumlah + bil;
end;
writeln(jumlah);
end.
Break, Continue, Exit
program break_continue_exit;
var
n, i : integer;
error : boolean;
begin
readln(n);
error := false;
for i := 1 to n do
begin
if (i=93) then
error := true;
if (not error) and (i mod 10<>0) then
writeln(i);
if (error) then
writeln('ERROR');
end;
end.
Dua Pangkat
program dua_pangkat;
var
n, m : longint;
begin
readln(n);
m:= 1;
while m<n do
m := m*2;
if n=m then
writeln('TRUE') else
writeln('FALSE');
end.
Pola 1
program pola_1;
var
n, i, j : byte;
begin
readln(n);
for i := 1 to n do
begin
for j := 1 to n-1 do
write(' ');
for j := 1 to i do
if j<i then
write('*');
if j>=i then
writeln('*');
end;
end.
Pola 2
program pola_2
var
a, i, j, n : smallint;
begin
readln(n);
a := -1;
for i := 1 to n do
for j := 1 to i do
if a<10 then begin
a := a+1;
if a=10 then a := 0;
if j<i then write(a);
if j>= i then writeln(a);
end;
end.
Pola 3
program pola_3;
var
n, k, a : byte;
begin
readln(n, k);
for a := 1 to n-1 do
if (a mod k=0) then
write('* ') else
write(a,' ');
if (n mod k=0) then
write('* ') else
writeln(n);
end.
Rata-Rata
program rata_rata;
var
jumlah, min, max, rata, bil : real;
n, a : integer;
begin
max : 1000000;
min := -1000000;
readln(n);
for a := 1 to n do
begin readln(bil);
jumlah := jumlah+bil;
if bil<max then max := bil;
if bil > min then min := bil;
end;
rata := jumlah/n;
writeln(max:0:2,' ', min:0:2,' ',rata:0:2);
end.
Faktor Bilangan
program faktor_bilangan;
var
n, x, bil : longint
begin
readln(n);
for x := n downto 1 do
if n mod x=0 then
begin writeln(x);
end;
end.
Cek Bilangan Prima
program cek_prima;
var
n, i, a : integer;
prima : boolean;
begin
while not eof(input) do begin
readln(n);
prima := true;
if n<2 then prima := false;
for i := 2 to n-1 do
if n mod i=0 then prima := false;
if prima = true then
writeln('YA') else
writeln('TIDAK');
end;
end.
Bilangan Agak Prima
program agak_prima;
var
t, i : byte;
n, cek, tes, bts : longint;
begin
readln(t);
for i := 1 to t do begin
readln(n);
cek := 0;
tes := 3;
bts := trunc(n/2);
if (n mod 2=0) and (n<>2) or (n=1) then
inc(cek);
while tes<=bts do begin
if (n mod tes=0) then begin
inc(cek);
if cek>2 then break;
end;
inc(tes);
end;
if cek>2 then
writeln('TIDAK') else
writeln('YA');
end;
end.
1D : FUNGSI DAN PROSEDUR
Procedure
program prosedur;
procedure namasatuan(n: longint);
begin
case n of
1..9 : begin writeln('satuan'); end;
10..99 : begin writeln('puluhan'); end;
100..999 : begin writeln('ratusan'); end;
1000..9999 : begin writeln('ribuan'); end;
10000..99999 : begin writeln('puluhribuan'); end;
end;
end;
var bil : longint;
begin
while not eof(input) do begin
readln(bil);
namasatuan(bil);
end;
end.
Function
program fungsi;
function faktorial(n: integer): longint;
var
i : integer;
bil : longint;
begin
bil := 1;
for i := n downto i do
bil := bil*i;
faktorial := bil;
end;
var
bil : integer;
begin
readln(bil)
if (bil>=0) and (bil<=10) then
writeln(faktorial(bil)) else
writeln('ditolak');
end.
Itulah sebagian jawaban punya saya yang accepted, sebagian belum saya post karena belum terselesaikan. Jika ada beberapa jawaban disini yang belum di-accepted, silakan memberi komentar dibawah.
Sekian Pembahasan Soal Latihan Toki Learning Bab 1 Pengenalan, semoga bermanfaat bagi anda yang sedang mencarinya. Terima kasih.
Salam, Reeza
Terima kasih atas kunjungan Saudara di blog kami, semoga bermanfaat :)
16 comments:
Wah rumit banget. Numpang simak ajha
Mantab tutorialnya.. Terima kasih telah berbagi... Salam kenal
salam BLOGGER dan salam kenal dari blogger asal kota padang, sumatra barat.
maaf,saya masih Newbie
Makasih banget,
latihan dari toki learning jawabannya harus sama dengan punya mereka, padahal logika manusia berbeda beda :)]
@Narendra : Sama-sama. Memang jawabannya harus sama persis dengan testcase di tokilearning, tapi algoritma program bisa dibuat beda sesuai yang membuatnya :)
casino sbobet mengucapkan thanks masta buat toki learning meski rada bingung tapi sangat bermanfaat...
paling gk bisa nih yang kaya gini, overall nice share broo, kali aja stelah baca berulang2 nartikel ini jadi bisa :)
thanks broo...
silahkan kunjungi web saya Undangan Pernikahan
yang function compile error bro
tapi kalo udah dibenerin biar bisa di-compile tapi malah wrong answer
yaing lain oke :D
Oh iya sori kalau salah syntax, soalnya saya ngepostnya diketik ulang bukan di-copas. Thanks udah komen, yg bener ini :
program fungsi;
function faktorial(n: integer): longint;
var
i : integer;
bil : longint;
begin
bil := 1;
for i := n downto 1 do
bil := bil*i;
faktorial := bil;
end;
var
bil : integer;
begin
readln(bil);
if (bil>=0) and (bil<=10) then
writeln(faktorial(bil)) else
writeln('ditolak');
end.
Sori juga kalau kodenya berantakan, dulu belum tahu identasi sama spacing
Thank YOU!
yang transpor matrix udah acc apa belum ya?
meh, yg Cek Bilangan Prima salah gan , di soalnya kan ditanya N kali, inputnya (4 1 2 3 4), angka 4 pertama, itu nujukin berapa yg mau di cek. contoh inputan : (5 6 7 8 321 123)
algoritama yang pola 1-nya itu salah bro..
program ujicoba;
var
v, a, b, c, x : integer;
begin
readln(v);
for x := v downto 1 do
begin
for a := x - 1 downto 1 do
begin
write(' ');
end;
for b := v - (x - 1) downto 1 do
begin
write('*');
end;
writeln;
end;
end.
ITU PERBAIKANNYA
algo yang while + counternya TLE tolong dikasi solusi ya bro...
@InSearhOf101 makasih koreksinya bro, saya sudah lama ga buka tokilearning dan sekarang sepertinya sudah upgrade jadi tlx makanya banyak testcase yg berubah.
Kalau dari teman-teman yang lain ada koreksi bisa ditambah di komentar ya :)
Yang floor sama Ceiling emang udah gitu aja ya? Gimana kalau nilai n itu bilangan bulat? Misal input 4 nanti outputnya bakal 4 sama 5 padahal seharusnya outputnya 4 dengan 4.
Post a Comment
Blog ini sudah DoFollow, silakan berkomentar untuk mendapat backlink gratis. Mohon untuk tidak melakukan spam. Untuk semua, terima kasih atas komentarnya...