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.