Blog Archives

Tipe Data di Pascal

Jadi di post ini, saya akan membahas tentang tipe data di pascal.

Jenis Tipe data Range Memori (byte)
Bilangan bulat shortint -128..127 1
Bilangan bulat byte 0..255 1
Bilangan bulat smallint -32768..32767 2
Bilangan bulat integer -32768..32767 2
Bilangan bulat word 0..65535 2
Bilangan bulat longint -2147483648..2147483647 4
Bilangan bulat longword 0..4294967295 4
Bilangan bulat int64 -9223372036854775808..9223372036854775807 8
Bilangan bulat qword 0..18446744073709551615 8
Bilangan real real tergantung platform 4-8
Bilangan real single 1.5e-45..3.4e38 4
Bilangan real double 5.0e-324..1.7e308 8
Boolean boolean false, true 1
Karakter char #0..#255 1
String string String dengan panjang maksimal 255 256
String Ansistring String dengan panjang tak terhingga (?) ~

 

Jadi intinya kalo di pascal itu ada dua jenis variabel, yaitu variabel global dan variabel lokal. Variabel global itu mesti ada di paling atas program. Intinya variabel global itu bisa digunakan di semua bagian di program, baik di function, procedure, dan program utama. Sedangkan variabel lokal itu hanya bisa buat lokal saja,  entah variabel itu ditaruh di function, procedure, atau pun program utama.
Contoh sederhana pengunaan variabel :

var
  n : longint;
  a : double;
  s : string;
  cek : boolean;
begin 
  n := 100;
  a := 6.50;
  s := 'gw ganteng';
  cek := true;
end.

Semoga postingan ini bisa membantu 😀

Baca juga : https://knightsaber77.wordpress.com/2014/01/27/indentasi-kebiasaan-programming-yang-baik/

Soal OSP Komputer Tahun 2006-2013

Ok, gw baru sadar kalo gw belum pernah share soal OSP. Jadi ini gw share aja sekaligus, biar greget :3

 

Soal OSP 2006 Komputer

Soal OSP 2007 Komputer

Soal OSP 2008 Komputer

Soal OSP 2009 Komputer

Soal OSP 2010 Komputer

Soal OSP 2011 Komputer

Soal OSP 2012 Komputer

Soal OSP 2013 Komputer

Soal OSK Komputer 2014

Seperti yang kita ketahui, kita telah melewati OSK pada tanggal 1-3 April ini.

Semoga kita semua mendapatkan hasil yang terbaik :3 . Lihat Soal OSK Komputer 2014 di sini :

OSK 2014

 

Good Luck ^^

 

Anyway buat yang pengen nyari kunci jawabannya ( belum tau resmi atau nggak ) : Kunci Jawaban OSK 2014 Bidang Komputer

 

Bahas Soal OSP 2013 Nomor 10

Soal OSP Nomor 10 ini pengen saya bahas, karena menurut saya sendiri soal ini merupakan sebuah soal yang cukup unik ~

10. Besok, Raja Dengklek akan mengadakan pesta yang sangat besar. Raja Dengklek telah memesan
2013 botol anggur untuk pestanya tersebut. Namun berdasarkan laporan, salah satu dari botol
anggur tersebut telah diberi racun. Racun ini diketahui tidak akan menunjukkan tanda-tanda
keracunan sampai orang yang meminumnya mati. Kematian terjadi antara 13-20 jam setelah racun
terminum, walaupun hanya terminum setetes. Raja Dengklek memiliki 2013 orang tahanan yang
rencananya akan dieksekusi. Raja Dengklek harus berhasil menemukan botol anggur yang
mengandung racun tersebut dalam waktu 24 jam.
Berapa minimal banyaknya tahanan yang harus minum dari botol-botol anggur yang ada untuk
memastikan botol mana yang mengandung racun? {tuliskan dalam bentuk angka}?

Read the rest of this entry

Pembahasan OSK Komputer 2013 Part 2 [Programming]

Saya  lanjutkan untuk membahas soal OSK Komputer 2013. Namun saya akan membahas bagian programming terlebih dahulu. ( No 31- 46)

31. Perhatikan fungsi dari potongan program berikut!

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

Bila fungsi di atas dipanggil dengan panggil1(7), maka hasil keluarannya adalah:

Solusi : Fungsi panggil1 disingkat fungsi p.

p(7) = p(6) + 2*p(5) + 3 = 30 + 2*15 + 3 = 63
p(6) = p(5) + 2*p(4) + 3 = 15 + 2*6 + 3 = 30
p(5) = p(4) + 2*p(3) + 3 = 6 + 2*3 + 3 = 15
p(4) = p(3) + 2*p(2) + 3 = 3 + 2*0 + 3 = 6
p(3) = p(2) + 2*p(1) + 3 = 0 + 2*0 + 3 = 3
p(2) = 0
p(1) = 0

Maka panggil1(7) = 63.

Read the rest of this entry

Pembahasan OSK Komputer 2013 Part 1 [Logika]

Jadi, daripada kurang kerjaan, menjelang kakak kelas UAS saya memutuskan membuat pembahasan OSK 2013 yang sudah saya kerjakan :3

Soal dapat diunduh di : Soal OSK 2013 (file ini diambil dari toki.or.id)

Deskripsi berikut ini dipergunakan untuk soal no. 1 dan 2

Sakelar adalah alat untuk menghubungkan atau memutuskan aliran listrik. Bila sakelar dipasang
pada sebuah lampu, maka sakelar tersebut bisa menyalakan atau mematikan lampu tersebut.
Di rumah Sugeng, ada 30 lampu yang dinomori dari 1 sampai 30. Untuk menyalakannya, Sugeng
memiliki sakelar khusus, yaitu sakelar yang terhubung dengan lebih dari satu lampu. Ada lima
sakelar, yaitu:
Sakelar A, yaitu sakelar yang terhubung dengan lampu bernomor kelipatan 2.
Sakelar B, yaitu sakelar yang terhubung dengan lampu bernomor kelipatan 3.
Sakelar C, yaitu sakelar yang terhubung dengan lampu bernomor kelipatan 5.
Sakelar D, yaitu sakelar yang terhubung dengan lampu bernomor kelipatan 7.
Sakelar E, yaitu sakelar yang terhubung dengan lampu bernomor kelipatan 11.
Perlu diingat, jika lampu dalam keadaan mati, dan sakelar yang terhubung dengannya ditekan,
maka lampu tersebut akan menyala. Begitu pula sebaliknya.

1. Ada berapa lampu yang tidak bisa dinyala/matikan karena tak terhubung dengan saklar?

Solusi : Lampu yang dinomori 1 pasti tak akan bisa menyala karena tidak terhubung dengan sakelar sama sekali. Lampu lain yang tidak akan menyala adalah lampu prima yang lebih besar dari 11, yaitu 13,17,19,23,29. Jadi total lampu yang tidak bisa menyala adalah 6, yaitu  : 1,13,17,19,23,dan 29. Read the rest of this entry

OSK 2014 sudah dekat

Yay ! OSK 2014 sudah dekat. Tentunya ini merupakan ajang tahunan yang saya tunggu, karena harus lewat ini dulu baru bisa masuk OSN XD . Tahun lalu, udah lolos OSN, tahun ini mesti lolos juga! Semangat :3 . Sekitar 3 minggu lagi maka OSK akan dimulai. Di Manado sendiri, kabarnya OSK ini akan dimulai tanggal 1 April. 1 April OSKnya cukup menarik soalnya entar kalo udah selesai ngerjain, dikumpul panitianya teriak “”April Mop”. Abaikan itu hanyalah khayalan konyol saya belaka.

Persiapan SMAN 9 Binsus Manado (sekolah tetangga saya), sendiri cukup baik menurut saya. Barusan diadain seleksi buat motong jumlah anggota jadi 11( termasuk saya ). Well, saya dapat golden ticket jadi gak ikut seleksi. Asyik :v . Jadinya aku bikin soal buat yang mau seleksi. Dari 4 soal yang diambil cuma 2 soal saja( Sir ganteng pelit milih soal mudah gw, maunya ngasih yang susah :v ). Well, 11 orang yang lolos ini, akan latihan bener” buat OSK nanti. Dari 11 yang lolos ada 2 teman kelas saya yang lolos :3 . Asyik. ( Jadinya bisa maen :v ). Sekolah kami sendiri mulai latihan soal” OSK yang tahun” sebelumnya. Soal-soal ini sendiri dapat teman – teman unduh di http://www.toki.or.id/downloads/ . Itu lengkap bener soalnya, ada dari OSK,OSP,OSN 2006-2013. 

Saya jelasin dikit dih proseduran olimpiade komputer itu sendiri. OSK setau saya terdiri dari 50 nomor pilihan ganda, 30 logika dan 20 programming, dengan poin benar = 4, salah = -1, tidak diisi = 0. Soal logikanya hanya seperti logika bahasa, matematika diskrit, dll. Untuk programmingnya, kita baca ada penggalan program terus nentuin outputnya, inputnya, yang harus ditambah,dll. Kalau sempat, saya akan mencoba membahas beberapa soal OSK.( Ingat, kalo sempat ) XD .

 

Udahan isi post kali ini ~ Go Get Gold!!

Penyisihan ILPC 2014

Jadi, pada Jumat dan Sabtu yang lalu saya mengikuti sebuah lomba logika+programming ILPC yang diadakan Universitas Surabaya. Jadi, ceritanya ini adalah lomba tim, ini kali pertama saya mengikuti ILPC, saya setim dengan kakak kelas saya, Nelvson Shine yang ganteng :v . Sesi logika tim gw sendiri kayaknya kurang bagus. Soalnya ngerjainnya gak serius banget sih, seriusnya cuma 15% an, sisanya FB-an gak jelas ama makan pizza buatan sir irawan yang unyu 😀 . Sesi programming esoknya, mulai agak serius dikit. Gw bagi tugas. Gw bagian codingnya, Neil bagian debugging ama bikin corner casenya. Overall sih gw kurang puas dengan hasil yg gw dapatkan.

 

Jadi, ceritanya gw bakal bahas soalnya menurut versi gw sendiri. Soal programming kali ini terdiri dari 8 soal. Tim saya sendiri bisa ngerjain 5 soal, Mestinya bisa 6 sih, cuman mabok =_=”

A. Prime Square

Problem ini, menurut gw problem bonus XD . Intinya cuma cek kalo ada bilangan prima dalam barisan terus cek apakah bilangan prima tersebut terdapat bilangan kuadratnya.

B. Listrik

Entah. Kalau mau diliat sih kayaknya DFS, cuman gw waktu itu malas mikir XD

C. Segi Enam

Ini problemnya sih cuman pola doang XD . Intinya aku cuman ngerjain dari bagian atas sampai bagian tengah – 1 nya . Rumus nyari spasinya sendiri (untuk bagian atas sampai tengah kurang satu) adalah (panjangnya string – baris) . Terus cetak aja stringnya. Tiap penambahan baris tambahkan 2 karakter string tersebut. Terus disave ke matriks (save ke array juga bisa)

Di bagian tengahnya, disuruh nyetak bintang. Itu cetak string  yang dibaca, lalu bintang sebanyak panjangnya string -1, lalu cetak string itu kembali

Buat bagian bawahnya cetak aja sama kayak yang di tengah sampe ke atas

D. Penamaan Konstanta

Kalau ketemu karakter huruf besar, selain huruf besar pertama cetak ‘(huruf besar tsb)’  + ‘_’ . Kalau ketemu huruf kecil dicetak jadi huruf besar. Untuk karakter lain diabaikan saja

E. Petak Umpet

Soal ini Josephus Problem, rumusnya gak dapet, bruteforce nya TLE wkakakak. Lagipula soal ini kurang kerjaan, ngapain mau main petak umpet box buat sembunyinya ampe 10000. Emang yang mau sembunyi satu kota ? Lol XD

F. F&F

Intinya gampang. Pertama cek aja ada berapa 0 dari 1! sampai n!. Terus dijumlahin aja. Gampang XD

G. Menur

DP. Kurang ngerti sih maksud soalnya. Kayaknya problem tersulit di lomba ini XD

H. Selalu Menang

Ad Hoc. Cuman nyoba aja sih. Setiawan akan selalu kalah. Alyosius tinggal ngambil (10 – x) , dengan x adalah jumlah koin yang diambil Setiawan.

 

Itu pembahasan dari saya. Semoga bermanfaat bagi semua yang membaca :3

OSN 2013, Pengalaman Menyenangkan dan Menyedihkan

Sekedar info, ini adalah performa pertama saya dalam OSN Komputer, dan kali ke 3 saya mengikuti OSN sejak SD.

Menyakitkan, ya itulah perasaan gw saat gw menyadari betapa buruknya performa yang saya lakukan pada OSN. Dari sepanjang kontes pemrograman yang saya ikuti dan berbagai lomba yang saya ikuti, OSN 2013 ini adalah performa terburuk saya. Hari pertama, berbagai kesalahan konyol saya lakukan, dan butuh waktu lebih dari 2 jam untuk menyadari hal itu. Nilai gw rendah banget. Jujur aja, gw merasa malu dengan performa gw kali ini.  Harusnya gw bisa dapat medali. Mengapa gw harus menjadi teledor di saat-saat penting seperti ini ? Mengapa gak pas simulasinya aja kek gw jadi bego. Hari kedua, gw udah down, dan gw tau hasilnya 3 kali lipat lebih parah dari hari pertama. Gw udah pesimis gak dapat medali. Nggak perlu tunggu pengumuman pun gw udah tau. Sedih banget sih rasanya, tapi yang berlalu biarkanlah berlalu. Kita tatap masa depan yang penuh harapan *_* . It’s not too bad after all, i still be able to participate in the next OSN. And the next would be my second and last chance. Yeah, lewati masa-masa suram. Kita bahas masa-masa menyenangkannya :v .

OSN kali ini teman sekamarku asyik-asyik semua orangnya ~ Kebanyakan mahonya  koplaknya sih tapi sumpah, asyik bener! Asyik diajak ngobrol, asyik diajak bercanda :3 . Well, temen seprovinsi juga banyak kenalan gw, rata-rata lulusan SMP Eben sih :v . Jadi gak boring pas kumpul bareng :3

Wisata OSN kali ini lumayan asyik lah. Wisatanya ke trans kawanua studio bandung. Asyik! Tempatnya gede! Gw naik wahana-wahana greget di sana. Karena tak berhasil menemukan teman seprovinsi gw, gw pun pertama naik wahana bersama temen sekamar gw, Andre yang maho ceria ~ Gw kontak teman seprovinsi gw Eca, dia sibuk naik wahana sampai gak baca PM gw T^T , sedih bener gw dicampakkan :v . Tapi akhirnya, gw bertemu mereka yay! Gw juga liat temen” gw yang gak sehotel ama gw. Oh iya, hotel gw sendiri itu Marbella Suites, yg konon katanya tempat buat mesra-mesraan kek bulan madu ~ Asyik, romantis bener ~ Hotel ini sendiri cuma menampung siswa di bidang studi Kimia, Kebumian, Komputer, dan Biologi( satu – satunya yang gak ada “K”-nya) :v . Setelah itu gw main ama temen seprovinsi gw. Naik wahana yang ada rumah hantunya, yg bikin gw ama temen gw teriakin hantunya yang megang-megang( hantu genit :v ). Nonton drama dan lain- lain. Setelah puas jalan-jalan di trans studio, kami pulang ke hotel masing-masing dan bersiap untuk pengumuman di besok hari. Well , setelah pengumuman selesai provinsi gw dapat 3 medali, 2 perak, 1 perunggu, dan 2 perak disumbangkan dari sekolah yang nyebelin banget  gw sendiri. Congrats ~

Besoknya kami pulang yay! Pamitan ama teman sekamar dan ke bandara. Akhirnya balik ke manado, 3 minggu lebih gw di bandung, capek vroh XD . Well, OSN 2013 benar-benar pengalaman yang menyenangkan! Walaupun ada kenangan menyedihkan di dalamnya. Yah, gw gak bisa protes yang telah berlalu XD. Tahun ini akan jadi tahun terakhir gw mengikuti OSN. I’ll work hard for that. Doakan supaya gw bisa dapat medali yah ^^

Indentasi, Kebiasaan Programming Yang Baik

Indentasi dan spacing

Indentasi adalah menambahkan spasi di awal baris-baris program agar program mudah dibaca, sedangkan “spacing” adalah penambahan spasi pada kode, misalnya di antara dua parameter, di sekitar operator, dan lain-lain. Tujuannya sama, yaitu untuk membuat program lebih mudah dibaca. Menurut saya sih hal ini yang paling penting. Soalnya, tanpa indentasi dan spacing, dijamin kita bakalan kesulitan mencari bug-bug dan mempersulit orang lain untuk membantu kita mencari bug kita

Contoh program tanpa indentasi dan tanpa spacing:

var
n:integer;
i:integer;
begin
readln(n);
for i:=1 to n do
begin
if(i=93)then
begin
writeln('ERROR');
break;
end;
if(i mod 10=0)then
continue;
writeln(i);
end;    
end.

Contoh program dengan indentasi tetapi tanpa spacing:

var
    n:integer;
    i:integer;
begin
    readln(n);    
    for i:=1 to n do
    begin
        if(i=93)then
        begin
            writeln('ERROR');
            break;
        end;
        if(i mod 10=0)then
            continue;
        writeln(i);
    end;    
end.

Contoh program dengan indentasi dan dengan spacing:

var
    n: integer;
    i: integer;
begin
    readln(n);

    for i := 1 to n do
    begin
        if (i = 93) then
        begin
            writeln('ERROR');
            break;
        end;
        if (i mod 10 = 0) then
            continue;

        writeln(i);
    end;    
end.

Nah, gimana? Enakan make indentasi kan? ~