Anda di halaman 1dari 18

PELATIHAN ONLINE 2018

KOMPUTER – PAKET 8
PELATIHAN ONLINE 2018
KOMPUTER – PAKET 8

DASAR PEMROGRAMAN 2
Berhubung semua materi dari dasar pemrograman sudah Saya berikan di paket
sebelumnya, pada paket ini Saya hanya akan memberikan tips-tips mengerjakan soal-soal
Algoritmika.

Terdapat beberapa tips untuk memahami maksud dari suatu algoritma yang diberikan :
 Menganalisa, bukan mencoba-coba. Dalam soal OSK maupun OSP, akan lebih cepat kita
mendapatkan jawaban apabila kita berusaha mengerti apa yang dilakukan suatu algoritma,
dibandingkan mencoba-coba dengan banyak data untuk mencari polanya. Tetapi apabila
analisa dalam algoritma tersebut cukup rumit, mencoba-coba dengan data yang kecil
(seperti menggunakan bilangan 0, 1, -1) akan membantu analisa kita.
 Mengerjakan dalam variabel. Alasan kita perlu mengerjakannya dalam variabel (tidak
digantikan dengan bilangan) adalah karena mungkinnya suatu fungsi dilakukan secara
berulang kali, sehingga pada akhirnya kita akan menemukan suatu rumus umum yang bisa
kita gunakan berulang kali tanpa melakukan tracing setiap kali kita menggunakan fungsi
tersebut.

Contoh :
function ALC(x,y:integer):integer;
begin
if (x<y) then ALC:=x
else ALC:=y;
end;
begin
ans:=0;
for i:=1 to N do
ans:=ans+ALC(i,i+1);
writeln(ans);
end.
Kemudian pada soal dikatakan, berapakah output dari program tersebut apabila N=10?
Mungkin melakukan tracing dan menjalankan fungsi ALC sebanyak 10 kali masih masuk akal.
Tetapi apabila kita analisa, nilai yang dikembalikan oleh fungsi ALC adalah selalu yang terendah,
dengan kata lain ALC(x,y)=min(x,y). Kemudian apabila kita analisa pada program inti, dimana kita
akan menjumlahkan semua ALC(i,i+1). Kita ketahui bahwa min(i,i+1)=i, sehingga soal ini tidak lain
adalah menjumlahkan semua nilai i, yaitu 1+2+3+...+N. Kemudian kita dapat menggunakan rumus
deret aritmetika dan mendapatkan bahwa keseluruhan program tersebut akan mengoutputkan
N*(N+1)/2.

Keuntungan dari memperoleh rumus umum tersebut adalah, apabila pada soal selanjutnya
ditanyakan lagi dengan program yang sama dengan N=1000, apabila pada soal nomor
sebelumnya kita lakukan tracing, maka kita tidak bisa memperoleh apa-apa untuk soal ini. Tetapi
apabila kita sudah memperoleh rumus umumnya, kita dapat menggunakannya lagi untuk soal ini
dan menjawab 1000*1001/2=500500 dengan mudah. Hal ini yang mengakibatkan meskipun
PELATIHAN ONLINE 2018
KOMPUTER – PAKET 8

dengan perulangan yang cukup besar tetapi soal-soal OSK dan OSP masih dapat dikerjakan
dalam durasi yang ada. Alhasil waktu yang terhemat cukup banyak dan kita mendapatkan benar
untuk 2 soal sekaligus.
PELATIHAN ONLINE 2018
KOMPUTER – PAKET 8

SOAL

Berikut ini adalah potongan program untuk soal nomor 1 - 3.


function f(a : integer):integer;
begin
if a=0 then f:= 1
else f:= 2*f(a-1);
end;

function g(b: integer):integer;


begin
if b=0 then g:= f(b)
else g:= f(b) + g(b-1);
end;

1. Berapakah nilai dari f(5)?


A. 30
B. 31
C. 32
D. 33
E. 34

2. Berapakah nilai dari g(10)?


A. 1023
B. 1024
C. 2018
D. 2047
E. 2048

3. Berapakah nilai dari g(N)? (Jawaban dalam N)


A. 2^(N-1)-1
B. 2^(N-1)+1
C. 2^N
D. 2^(N+1)-1
E. 2^(N+1)+1

Berikut ini adalah potongan program untuk soal nomor 4 - 6.


function abc(a:integer) : integer;
begin
abc :=a*3-(a mod 7); {a}
end;

function ghi(x:integer;b:integer):integer;
begin
if (b=1) then ghi := x
PELATIHAN ONLINE 2018
KOMPUTER – PAKET 8

else ghi := (x* ghi(x,b-1)) mod 100;


end;

function def(a:integer; b:integer) : integer;


begin
if (b mod 2 = 1) AND (b>500) then
def := ghi(a,b) mod 100 {b}
else def:=def(a, abc(b)) ;
end;

4. Berapakah nilai dari def(7,1) ?


A. 1
B. 7
C. 9
D. 43
E. 49

5. Apabila bagian {a} diubah menjadi abc := a*2-(a mod 5), maka berapakah hasil
pemanggilan fungsi def(7,5) ?
A. 1
B. 7
C. 9
D. 43
E. 49

6. Apabila bagian {b} diubah menjadi def := ghi(a,b) mod 10, maka berapakah hasil
pemanggilan fungsi def(5,1) ?
A. 1
B. 3
C. 5
D. 7
E. 9

Berikut ini adalah potongan program untuk soal nomor 7 - 9.


function abc(a,b : integer):integer;
begin
if (a<b) then abc:=0
else abc:=abc(a-b,b)+1;
end;

function xyz(a,b : integer):integer;


begin
if (b=0) then xyz:=1
else xyz:=xyz(a,b-1)+a;
end;
PELATIHAN ONLINE 2018
KOMPUTER – PAKET 8

7. Berapakah nilai dari abc(19,4)?


A. 1
B. 2
C. 3
D. 4
E. 5

8. Berapakah nilai dari xyz(12,17)?


A. 200
B. 201
C. 202
D. 203
E. 204

9. Berapakah nilai dari xyz(abc(2018,20),20) ?


A. 2000
B. 2018
C. 2020
D. 2040
E. 2048

Berikut ini adalah potongan program untuk soal nomor 10.


var x,y:integer;
procedure ayam(var s,e : integer);
var c:integer;
begin
c:=s; s:=e; e:=c;
end;

begin
x:=5;
y:=3;
ayam(x,y);
writeln(x-y);
end.

10. Apakah output dari program di atas?


A. -2
B. -1
C. 0
D. 1
E. 2

Berikut ini adalah potongan program untuk nomor 11 - 13.


function poi(x,y : integer):integer;
var temp,dare,num1,num2 : integer;
PELATIHAN ONLINE 2018
KOMPUTER – PAKET 8

begin
num1:=x; num2:=y;
dare:=0; temp:=1;
while(num1>0 OR num2>0) do begin
if(num1 mod 2 + num2 mod 2 = 1) then
dare:=dare+temp
else
dare:=dare+((num1 mod 2 + num2 mod 2) * temp);
num1 := num1 div 2;
num2 := num2 div 2;
temp := temp * 2;
end;
poi:=dare;
end.

11. Berapakah nilai dari poi(3,4)?


A. 1
B. 3
C. 4
D. 7
E. 12

12. Berapakah nilai dari poi(2018,2017)?


A. 1
B. 2017
C. 2018
D. 4035
E. 4045

13. Berikut ini mana yang ekuivalen dengan nilai dari poi(A,B)? (jawaban dalam A dan B)
A. Penjumlahan dari A dan B
B. Pengurangan dari A dan B
C. Perkalian dari A dan B
D. Pembagian dari A dan B
E. Tidak ada jawaban yang benar

Berikut ini adalah potongan program untuk nomor 13.


var A : array[1..6] of integer = (5,3,1,2,6,4);
i,j,k : integer;
begin
for i:=1 to 6 do
for j:=1 to 6 do
if (A[i]<A[j]) then {1}
begin
k:=A[i];
A[i]:=A[j];
A[j]:=k;
PELATIHAN ONLINE 2018
KOMPUTER – PAKET 8

end;
for i:=1 to 6 do write(A[i]);
end.

14. Output dari program di atas adalah


A. 111111
B. 123456
C. 135246
D. 654321
E. 666666

15. Apabila baris yang bertanda {1} diganti dengan if (A[i]>A[j]) then, maka output dari
program diatas adalah
A. 111111
B. 123456
C. 135246
D. 654321
E. 666666

Berikut ini adalah potongan program untuk nomor 16 dan 17.


function P(x, y: integer):integer;
begin
if (x <= 0) then P := y
else P := P(x-2, y+2);
end;

16. Berapakah nilai dari P(8,10) ?


A. 12
B. 14
C. 16
D. 18
E. 20

17. Berapakah nilai dari P(2017,2018) ?


A. 4030
B. 4032
C. 4034
D. 4036
E. 4048

Berikut ini adalah potongan program untuk nomor 18 dan 19.


var data : array[1..5] of integer = (1,2,3,4,5);
procedure order(m : integer);
begin
PELATIHAN ONLINE 2018
KOMPUTER – PAKET 8

if (m<=5) then begin


order(m*2);
write(data[m]);
order(m*2+1);
end;
end;

18. Jika dilakukan pemanggilan order(1), output yang dihasilkan adalah


A. 12345
B. 13524
C. 42513
D. 45231
E. 54321

19. Agar output yang dihasilkan setelah pemanggilan order(1) adalah data yang terurut menaik,
maka nilai awal pada array data seharusnya adalah
A. 12345
B. 13524
C. 42513
D. 45231
E. 54321

Berikut ini adalah potongan program untuk nomor 20 - 24.


function D(X,Y : integer) : integer;
begin
if (Y = 0) then D := 1
else D := Y+1;
end;

function C(X,Y : integer) : integer;


begin
if (Y = 0) then C := X
else C := D(X,C(X,Y-1));
end;

function B(X,Y : integer) : integer;


begin
if (Y = 0) then B := 0
else B := C(X,B(X,Y-1));
end;

function A(X,Y : integer) : integer;


begin
if (Y = 0) then A := 1
else A := B(X,A(X,Y-1));
end;
PELATIHAN ONLINE 2018
KOMPUTER – PAKET 8

20. Berapakah nilai dari D(3,4) ?


A. 1
B. 2
C. 3
D. 4
E. 5

21. Berapakah nilai dari C(7,12) ?


A. 5
B. 7
C. 12
D. 19
E. 84

22. Berapakah nilai dari B(13,5) ?


A. 5
B. 13
C. 18
D. 65
E. 169

23. Berapakah nilai dari A(2,5) ?


A. 2
B. 4
C. 5
D. 10
E. 32

24. Berikut ini manakah yang nilainya lebih besar dari 2018?
A. A(2,10)
B. B(32,63)
C. C(1009,1009)
D. D(2000,2000)
E. Tidak ada jawaban yang benar

Berikut ini adalah potongan program untuk nomor 25 dan 26.


function abc(x : integer,y : integer) : integer;
begin
if (y=0) abc:=x
else abc:=abc(y,x mod y);
end;

function bcd(x : integer,y : integer) : integer;


var temp : integer;
begin
temp:=(x*y) div abc(x,y);
PELATIHAN ONLINE 2018
KOMPUTER – PAKET 8

bcd:=temp;
end;

25. Berapakah nilai dari abc(108,56) ?


A. 2
B. 4
C. 6
D. 8
E. 10

26. Berapakah nilai dari bcd(9,15) ?


A. 3
B. 9
C. 15
D. 45
E. 135

Berikut ini adalah potongan program untuk nomor 27 dan 28.


function f(n:integer):string;
begin
if (n = 0) then
f:='A'
else if (n mod 2 = 0) then
f:='B'+f(n-1)
else if (n mod 4 = 0) then
f:='C'+f(n-1)
else if (n mod 5 = 0) then
f:='D'+f(n-1)
else
f:='E'+f(n-1)
end;

27. Berapakah nilai dari f(10) ?


A. BEBEBDBEBEA
B. BECEBDCEBEA
C. DEBEBDBEBEA
D. DECEBDCEBEA
E. DECEBDCEBEB

28. Berapa banyak huruf „C‟ yang terdapat pada f(2018)?


A. 0
B. 1
C. 504
D. 505
E. 506
PELATIHAN ONLINE 2018
KOMPUTER – PAKET 8

Berikut ini adalah potongan program untuk nomor 29.


var A:array[1..10] of integer =
(3,4,2,6,2,4,1,4,1,7);
B,C:array[1..10] of integer;
i:integer;
begin
for i:=1 to 10 do B[i]:=0;
for i:=1 to 10 do
B[A[i]]:=B[A[i]]+1;
for i:=2 to 10 do
B[i]:=B[i]+B[i-1];
for i:=10 downto 1 do begin
C[B[A[i]]]:=A[i];
B[A[i]]:=B[A[i]]-1;
end;
for i:=1 to 10 do
write(C[i]);
end.

29. Apakah output dari potongan program diatas?


A. 0123456789
B. 0122344467
C. 1122334467
D. 1122344567
E. 1122344467

Berikut ini adalah potongan program untuk nomor 30.


function f(x:integer):integer;
begin
if (x<0) then f:=1
else f:=f(x-1)+2*f(x-2)+f(x-3);
end;

30. Berapakah nilai dari f(5)?


A. 1
B. 5
C. 25
D. 157
E. 625

*Akhir dari soal*


PELATIHAN ONLINE 2018
KOMPUTER – PAKET 8

PEMBAHASAN PAKET 7

1. Pada saat variabel a di assign dengan nilai pada variabel b, nilai dari a menjadi 3. Sehingga
saat varaibel b di assign dengan nilai pada variabel a (sudah menjadi 3), nilainya juga menjadi
3.

Jawabannya adalah “33” (A).

2. Karena 4 di modulo dengan 3 hasilnya 1 (bukan 2), maka program masuk ke cabang else.

Jawabannya adalah “5” (E).

3. Perhatikan bahwa a+b=b+c dan a*b=b*c akan bernilai true apabila a=c. Karena a tidak sama
dengan c, maka tidak masuk ke cabang if, sehingga nilai c tidak berubah.

Jawabannya adalah “6” (B).

4. Karena 13 lebih besar dari 12, maka program tidak mencetak P. Karena 13 modulo 7 = 6, maka
program masuk ke cabang else dan mencetak I.

Jawabannya adalah “I” (E).

5. Program tersebut mencari nilai dari 1+2+3+...+n.

Jawabannya adalah “55” (D).

6. Karena 1+2+3+...+n=n*(n+1)/2 (deret aritmetika), maka tanpa kita menjumlahkan satu per satu
kita bisa memperoleh jawabannya adalah 2018*2019/2. Apabila Anda malas menghitung,
perhatikan bahwa satuan dari pilihan yang ada semuanya berbeda. Dengan kata lain Anda
cukup mencari satuannya saja. 2018*2019/2 (mod 10) = 1009*2019 (mod 10) = 9*9 (mod 10) =
1.

Jawabannya adalah “2037171” (B).

7. Anda dapat membuat pertidaksamaan n*(n+1)/2 > 2018 dan menyelesaikannya. Tetapi apabila
Anda malas, coba satu per satu pilihan yang ada.

Jawabannya adalah “64” (C).


PELATIHAN ONLINE 2018
KOMPUTER – PAKET 8

8. Program ini mencari banyaknya bilangan dari 1 hingga 2018 (inklusif) yang dapat dibagi 3 atau
5. Apabila Anda mempelajari paket-paket sebelumnya dengan baik, Anda pasti tahu bagaimana
solusi dari permasalahan ini. Hint : Teori Himpunan.

Jawabannya adalah “941” (C).

9. Anda dapat melakukan bruteforce (anak-anak OSN Komputer sering menyebutnya dengan
istilah „kuli‟).

Jawabannya adalah “10” (D).

10. Perhatikan bahwa program tersebut mirip dengan program untuk mencari faktorisasi prima
(dengan i sebagai faktor prima, dan cnt sebagai pangkatnya). Jawaban yang ada adalah hasil
kali dari semua pangkat di tambah dengan 1. Nilai tersebut sama dengan banyak faktor dari
suatu bilangan.

Jawabannya adalah “4” (C).

11. Banyak faktor dari 2018 adalah 4 (2018 = 2*1009).

Jawabannya adalah “4” (A).

12. Anda dapat melakukan Greedy. Pertama, faktorisasi prima kan dari 10 (10=2*5).
Berdasarkan rumus banyak faktor, kita akan menggunakan 2 buah prima dan pangkatkan prima
tersebut dengan 1 (2-1) dan 4 (5-1). Agar optimal, kita pangkatkan prima yang kecil dengan nilai
pangkat yang besar. Dengan kata lain 2^4 * 3^1.

Jawabannya adalah “48” (B).

13. Fungsi f(x) menentukan apakah x merupakan bilangan prima atau bukan dengan
memeriksa apakah ada bilangan dari 2 hingga sqrt(x) yang habis membagi x.

Jawabannya adalah “91” (C).

14. Simulasikan saja apa yang diminta oleh program.

Jawabannya adalah “101” (A).

15. Perhatikan bahwa nilai (a,b) akan terus bergeser menjadi (b,a+b). Apabila dilanjutkan
terus, akan membentuk barisan Fibonacci.

Jawabannya adalah “5” (A).


PELATIHAN ONLINE 2018
KOMPUTER – PAKET 8

16. Fibonacci ke 12 adalah 144.

Jawabannya adalah “144” (E).

17. Cara paling mudah untuk mengerjakan soal ini adalah kuli (bruteforce).

Jawabannya adalah “67” (A).

18. Coba satu per satu pilihan yang ada (di saat inilah Anda mulai sadar bahwa untuk lolos ke
OSP Komputer itu sebenarnya mudah :) ).

Jawabannya adalah “117” (A).

19. Perhatikan bahwa program tersebut mencari rata-rata dari A[l] hingga A[r]. Hati-hati bahwa
pembagian yang digunakan adalah div.

Jawabannya adalah “5” (D).

20. Sama dengan nomor sebelumnya.

Jawabannya adalah “1” (B)

21. Algoritma yang digunakan dalam soal ini adalah “Prefix Sum”. Prefix sum menyimpan
cumulative sum (nilai jumlah dari awal hingga saat ini). Contoh : “1 3 2 3 5” -> “1 4 6 9 14”.
Salah satu kegunaan dari Prefix Sum adalah kita mengetahui jumlah dari suatu jangkauan
tanpa mengiterasi satu per satu menggunakan perulangan. Kita gunakan contoh sebelumnya :
apabila kita ingin mencari jumlah dari indeks 2 hingga 4 (3+2+3=8), kita dapat menggunakan
nilai pada prefix sum kita, yaitu indeks 4 dikurangi indeks 1 (9-1=8). Cara kerja ini sama dengan
pada saat Anda mencari banyaknya bilangan di antara L hingga R yang habis dibagi 3 (cara
Anda adalah banyaknya bilangan yang habis dibagi 3 dari 1 hingga R, yaitu floor(R/3) dikurangi
dengan banyaknya bilangan yang habis dibagi 3 dari 1 hingga L-1, yaitu floor((L-1)/3).

Nyatanya memang soal ini mencari hal tersebut, yaitu banyaknya bilangan di antara L
hingga R yang tidak “habis dibagi 7 atau 2”. Anda dapat mencari terlebih dahulu yang habis
dibagi 7 atau 2, kemudian jawabannya adalah semuanya (R-L+1) dikurangi yang habis dibagi 7
atau 2.

Jawabannya adalah “3” (A).

22. Sama dengan sebelumnya.


PELATIHAN ONLINE 2018
KOMPUTER – PAKET 8

Jawabannya adalah “428” (B).

23. Fungsi kali(x,y) mengembalikan nilai x pangkat y.

Jawabannya adalah “4” (D).

24. Sama dengan sebelumnya.

Jawabannya adalah “kali(2,1)<=kali(1,2)” (C).

25. Jawabannya adalah 4^0+4^1+4^2+4^3+4^4+4^5=1365.

Jawabannya adalah “1365” (E).

26. Fungsi kuadrat(x) menentukan apakah x merupakan bilangan prima atau tidak. Hati-hati
bahwa terdapat sedikit kesalahan pada program tersebut, yaitu bilangan 1 masih tergolong
prima. Tentunya kesalahan itu adalah bagian dari soal untuk menjebak Anda yang kurang hati-
hati.

Jawabannya adalah “9” (E).

27. Anda cukup menghitung nilai dari 1+2+3+5+7+11+13+17+19.

Jawabannya adalah “78” (D).

28. Fungsi kali(x,y) mengembalikan nilai x pangkat y. Perhatikan bahwa program tersebut
mencari nilai basis 10 dari array bit apabila diperlakukan sebagai basis n. 11111100010 basis 2
adalah 2018 basis 10.

Jawabannya adalah “2018” (C).

29. 11111100010 basis 10 sudah menjadi jawaban itu sendiri.

Jawabannya adalah “11111100010” (E).

30. Nilai x akan terus di update apabila ada nilai yang lebih besar dari dia. Dengan kata lain
program tersebut mencari nilai paling maksimum dari array A.

Jawabannya adalah “67” (D).


PELATIHAN ONLINE 2018
KOMPUTER – PAKET 8

KISAH PERJALANAN MEDALIS


Aldi Dwi Putra (FE UI 2017) – Bidang Ekonomi

Sejak SD kelas 5, saya sudah mengikuti OSN yaitu di bidang matematika. Saat itu, saya bahkan belum
tau apa itu OSN. Beruntungnya, saat itu saya berhasil lolos ke tahap kabupaten dan meraih juara ke-2 di
kecamatan. Namun, langkah saya terhenti saat di kabupaten karena hanya meraih peringkat ke 12.

Beranjak SMP, saya pun kembali mengikuti OSN masih dibidang yang sama, yaitu matematika. Dari
SMP saya, hanya 1 orang yang dikirim untuk mengikuti seleksi kabupaten. Dan karena saya kalah saat
seleksi tingkat sekolah, maka saya tidak dapat mengikuti OSK.

Lanjut ke SMA kelas 10, kecintaan saya pada matematika pun berlanjut. Saya memilih bidang
matematika untuk olimpiade. Namun, kejadian yang terjadi di SMP terulang kembali. Saya gagal saat
mengikuti seleksi tingkat sekolah. Setelah itu, saya pun berpikir untuk pindah bidang saat kelas 11. Saya
pun berkonsultasi dengan orang tua serta guru pembimbing. Akhirnya, saya pun memilih bidang ekonomi.

Saat kelas 11, awalnya saya masih setengah hati mengikuti ekonomi. Karena saya yang
notabenenya anak IPA, saya merasa bahwa Iekonomi merupakan IPS. Ternyata, pemikiran saya salah.
Materi pertama yang saya dapatkan adalah permintaan, penawaran, dan elastisitas. Materi tersebut berisi
tentang kurva-kurva dan juga diferensial. Saya mulai semangat mengikuti tutor ekonomi. Dan akhirnya,
saya masuk ke tim yang akan mengikuti OSK meskipun saya hanya peringkat 3 dari 3 orang yang dikirim.

Saat OSK, saya terkejut karena melihat beberapa soal yang diluar dugaan dan tidak bisa saya
jawab. Selesai mengerjakan OSK saya berpikir bahwa saya tidak akan lolos. Ternyata saya lolos dan lagi-lagi
peringkat saya dibawah kedua teman satu sekolah saya. Lanjut ke tahap pra-OSP, dari 125 orang akan
diambil 50 orang. Mekanisme yang digunakan berbeda, yaitu +2 untuk setiap jawaban yang benar, -1 untuk
jawaban salah, dan 0 jika tidak menjawab. Pra-OSP tahun 2016 tidak ada essaynya. Tidak perlu menunggu
waktu lama untuk mengetahui siapa yang masuk 50 besar, sekitar 2 hari setelah pra-OSP pengumumannya
keluar dan saya mendapatkan urutan ke 19. Saya juga senang karena untuk pertama kalinya saya bukan
peringkat paling bawah diantara kami bertiga. Teman saya peringkat 9, dan teman saya yang satunya lagi
peringkat 22.

Setelah pra-OSP, ada pelatda selama 10 hari. Saya hanya berpikir bagaimana caranya saya yang
peringkat 19, menggeser pesaing-pesaing diatas saya dan dapat masuk ke tim OSN DKI Jakarta. Maka dari
itu saya mengikuti pelatihan dengan serius dan bertekad ingin lolos ke tingkat nasional. Setelah 10 hari
pelatihan, saat yang menentukan pun datang. Pelaksanaan OSP benar-benar membuat saya gugup, karena
dari 50 orang hanya akan diambil maksimal 8 orang. Setelah mengerjakan soal OSP yang menurut saya
sangat sulit, saya pun sedikit putus asa. Namun saya tidak ingin memikirkannya. Yang saya lakukan
setelahnya hanyalah berdoa agar bisa lolos ke tahap nasional.

Menunggu pengumuman OSN sangatlah menyebalkan. Kalau tidak salah, sekitar 2 minggu baru
diumumkan. Saat pengumuman keluar, saya pun berteriak kegirangan karena lolos. Dan beruntungnya,
saya lolos dengan peringkat 8 dari 8 orang yang lolos ke tahap nasional. Saya pun langsung memberitahu
orang tua saya. Saya sangat senang karena dapat menjadi siswa pertama yang lolos ke nasional di bidang
ekonomi dari SMAN Unggulan MH Thamrin.
PELATIHAN ONLINE 2018
KOMPUTER – PAKET 8

OSN 2016 dilaksanakan di Palembang. Banyak kejutan yang terjadi, salah satunya adalah waktu tes
yang berubah sesuka hati panitia. Misalnya tes tertulis, yang tadinya 3 jam dirubah menjadi kurang dari 2,5
jam. Begitu pula dengan waktu presentasi dan makalah, yang seharusnya 4 jam dirubah menjadi 2,5 jam.
Terlepas dari itu semua, saya menjadi punya banyak teman dari seluruh Indonesia, dari Aceh sampai Papua.

Tibalah saat yang ditunggu, yaitu pengumuman peraih medali. Awalnya saya merasa gugup karena
nama saya tidak ada di peraih medali perunggu, namun ternyata saat peraih medali perak nama saya
dipanggil. Itu merupakan salah satu momen terbaik dalam hidup saya. Saya sangat bersyukur kepada tuhan,
dan juga berterima kasih kepada orang tua, guru di sekolah, pelatih dari ALC terutama Ka Irfan dan Ka Dedi.

Dari pengalaman ini, saya belajar bahwa untuk menggapai sesuatu yang tinggi diperlukan
pengorbanan yang layak. Kegagalan saya di bidang matematika sejak SD, tidak membuat saya putus asa dan
akhirnya mencoba hal baru, yaitu ekonomi. Selain itu, doa dari diri sendiri dan keluarga juga menjadi faktor
yang menentukan. Karena tanpa rahmat dari-Nya, tentu saja tidak akan ada hasil yang memuaskan.

“hasil akan berbanding lurus


dengan pengorbanan dan
dedikasi” -Anonymous

Anda mungkin juga menyukai