Home » , » Pembahasan Soal Latihan Toki Learning Bab 1 Pengenalan

Pembahasan Soal Latihan Toki Learning Bab 1 Pengenalan

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.

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.



Salam, Reeza

Terima kasih atas kunjungan Saudara di blog kami, semoga bermanfaat :)

16 comments:

Bank Mandiri Bank Terbaik Di Indonesia said...

Wah rumit banget. Numpang simak ajha

Masterbet88 Grand Opening Promo Bonus 50% Sportsbook dan Casino Online said...

Mantab tutorialnya.. Terima kasih telah berbagi... Salam kenal

Anonymous said...

salam BLOGGER dan salam kenal dari blogger asal kota padang, sumatra barat.
maaf,saya masih Newbie

Narendra said...

Makasih banget,
latihan dari toki learning jawabannya harus sama dengan punya mereka, padahal logika manusia berbeda beda :)]

Nuradika Pradana Reeza said...

@Narendra : Sama-sama. Memang jawabannya harus sama persis dengan testcase di tokilearning, tapi algoritma program bisa dibuat beda sesuai yang membuatnya :)

Unknown said...

casino sbobet mengucapkan thanks masta buat toki learning meski rada bingung tapi sangat bermanfaat...

Unknown said...

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

Anonymous said...

yang function compile error bro
tapi kalo udah dibenerin biar bisa di-compile tapi malah wrong answer
yaing lain oke :D

Nuradika Pradana Reeza said...

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

Unknown said...

Thank YOU!

Unknown said...

yang transpor matrix udah acc apa belum ya?

Aria said...

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)

InSearchof101 said...

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

InSearhOf101 said...

algo yang while + counternya TLE tolong dikasi solusi ya bro...

Nuradika Pradana Reeza said...

@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 :)

Evan Ananda Jati said...

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.

:)) ;)) ;;) :D ;) :p :(( :) :( :X =(( :-o :-/ :-* :| 8-} :)] ~x( :-t b-( :-L x( =))

Post a Comment

Blog ini sudah DoFollow, silakan berkomentar untuk mendapat backlink gratis. Mohon untuk tidak melakukan spam. Untuk semua, terima kasih atas komentarnya...