Panduan Pembinaan Toki
Free Pascal
A. Pendahuluan
Mendengar
isitlahnya mungkin kita akan tertuju langsung pada penggunaan atau
aplikasi computer, beberapa siswa-siswi begtu antusianya mengikuti
program pembinaan ini, tetapi apa di kata setelah beberapa hari, kok
begini modelnya. Sebenarnya itu juga yang menjadi pertanyaan beberapa
teman saya, ternyata olimpiade computer ini lebih banyak kepada
mate-matika dari pada komputernya, kenapa begitu. Penyisihan yang
dilakukan oleh tingkat kota / kabupaten ternyata 80% lebih ke analitik
(mate-matika) dari pada pengoperasian program pascalnya. Akhirnya
beberapa hal yang kami lakukan adalah sbb :
1. Mengadakan pembinaan kepada siswa-siswa yang berminat
2. Menjaring siswa-siswi yang memiliki Nilai Komputer tinggi serta nilai mate-matikanya juga tinggi
3. Mengadakan pree test setelah diadakan pembinaan beberapa kali
4. Menjaring hasil pree test untuk di bina maju ke tingkat Kota/kabupaten
Beberapa
siswa memang sempat bingung, free pascal ?, apa itu…., kenapa nggak
pakai bahasa pemograman berbasis GUI seperti Visual Basic, Java, Delphi
dan sejenisnya ?.
Ternyata beberapa literature menjelaskan alasan kenapa pakai free Pascal :
1. Free Pascal Open Source artinya biasa di dapetkan Gratis
2. Free Pascal merupakan bahasa umum International
3. Compatible dengan macam-macam Operating Sistim (Windows, Linux)
4. Memiliki ukuran kecil sehingga bias di jalankan pada disket//flasdisk
5. Berbasis text (dos) sehingga bias dijalankan pada computer rendah sekalipin (386) dst.
6. Memiliki pengembangan kedepan yang sangat luas
7. Tidak memerlukan hardware yang rewel
Itulah
beberapa kronologis kenapa dalam OSN menggunakan aplikasi free pascal
yang merupakan turunan langsung dari Turbo Pascal dari Borland.
B. Pembinaan dan Penjaringan
Beberapa
pengalaman yang kita rasakan selama membina OSN ini akan kita coba
share, namun begitu tidak semua dari sistim ini sempurna. Hal yang perlu
di perhatikan sebelum membina siswa adalah sbb :
a. Sistim seleksi
Seleksilah siswa yang akan mengikuti olimpiade ini dengan beberapa metode diantaranya adalah sbb :
o Siswa tersebut harus memiliki nilai mate-matika, fisika lumayan misalnya nilai rata-ratanya 7, atau lebih.
o Siswa tersebut dikelompokan dalam katagori senang dengan computer
o Siswa senang dengan tantangan
o Siswa memiliki logika tinggi
o
Akan lebih bagus siswa memiliki buku panduan Free Pascal (bias di
download di toki.go.id) atau literature lainya, apalagi didukukung siswa
memiliki computer/laptop di rumah.
b. Metode Penjaringan
Metode ini sebenarnya gampang-gampang susah, beberapa kendala yang muncul biasanya sbb :
• Siswa yang pandai dalam mate-matika cenderung memilih OSN Mate-matika
• Siswa yang pintar computer belum tentu pandai dalam pelajaran Mat-matika
•
Siswa kelas x (kelas 1) dari SMP belum pernah dikenalkan dasar-dasar
pemograman dan Algoritma, sehingga takut untuk maju ke penjaringan,
sedangkan siswa kelas xi (kelas 2) hanya memiliki kesempatan 1x ikut
olimpiade ini, sedangkan kelas x bias memiliki pengalaman bila pada
kelas x ikut, kemudian kelas xi ikut lagi sehingga sudah punya gambaran
tentang materi.
• Tidak semua Guru TIK menguasai aplikasi program/pemograman bahasa dan algoritma.
• Guru tidak begitu menguasai mate-matika
• Metode pembinaan di lakukan selepas pulang sekolah sehingga tenaganya udah hanpir habis.
•
Materi ini tidak didapatkan di bangku manapun, sedangkan OSN lainya ada
mata pelajaranya, misalnya OSN Biologi, ada pelajaran Biologi dan
seterusnya, walaupun terus terang materinya sangat tinggi (materi di
bangku kuliah).
• Terbatasnya sumber belajar buku referensi dan lain sebagainya, walapun di internet ada beberapa situs.
Oleh
sebab itu kendala tersebut diatas bias sedikit di minimalisir dengan
metode Pembinaan pada point diatas, syukur di dukung oleh SDM nya. Kami
mencoba membuat metode penjaringan sbb :
• Meminta data di Walikelas/BP tentang data siswa dan nilainya
• Membuat kuisiner tentang pilihan mengikuti OSN
• Menanyakan secara lesan ke guru mate-matika dan BP/Bk tentang siswa tersebut
• Membuat pree test sederhana misalnya tentang soal-soal logika serta pertanyaan-pertanyaan sederhana
•
Menentukan jumlah siswa yang akan di bina, idealnya adalah 5 sampai 10
siswa saja, namun semua tergantung dari hasil penjaringan.
• Membuat final test untuk menentukan siswa yang bisa masuk pembinaan atau tidak.
• Menentukan pembinaan dan waktu pembinaan yang sangat ideal, misalnya hari jum’at atau sabtu.
• Apabila ada MGMP kota sebaiknya di buat kesepakatan tentang pree test dan materi-materi.
C. Dasar Algoritma
Adalah
kumpulan instruksi-instruksi tersendiri yang biasanya disebut source
code yang dibuat oleh orang yang menulis program, disebut Programer.
Asal
kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibn Musa
al-Khowarizmi, ilmuan Persia yang menulis kitab al jabr w’al-muqabala
(rules of restoration and reduction) sekitar tahun 825 M
Definisi Algoritma (di unduh dari UKDW)
Algoritma
adalah urutan langkah logis tertentu untuk memecahkan suatu masalah.
Yang ditekankan adalah urutan langkah logis, yang berarti algoritma
harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat.
(Dari Microsoft Press Computer and Internet Dictionaary 1997, 1998).
Algoritma sebenarnya materi yg akan dapatkan kalau kita di bangku kuliah
biasanya semester 3 atau 4, namun di mate-matika sudah dikenalkan
sedikit tentang algoritma ini.
Paradigma Pemrograman
1. Pemrograman Prosedural
•
Berdasarkan urutan-urutan, sekuensial program adalah suatu rangkaian
prosedur untuk memanipulasi data. Prosedur merupakan kumpulan nstruksi
yang dikerjakan secara berurutan. Harus mengingat prosedur mana yang
sudah dipanggil dan apa yang sudah diubah.
2. Pemrograman Fungsional
• Berdasarkan teori fungsi dan logic matematika
• Fungsi merupakan dasar utama program.
3. Pemrograman Terstruktur
• Secara berurutan dan terstrukrtur dengan benar
• Program dapat dibagai-bagi menjadi prosedur dan fungsi.
Contoh: PASCAL dan C
4. Pemrograman Modular
• Pemrograman ini membentuk banyak modul.
• Modul merupakan kumpulan dari prosedur dan fungsi yang berdiri sendiri
• Sebuah program dapat merupakan kumpulan modul-modul.
Contoh: MODULA-2 atau ADA
5. Pemrograman Berorientasi Obyek
•
Pemrograman berdasarkan prinsip obyek, dimana obyek memiliki
data/variabel/property dan method/event/prosedur yang dapat dimanipulasi
Contoh: C++, Object Pascal, dan Java.
6. Pemrograman Berorientasi Fungsi
• Pemrograman ini berfokus pada suatu fungsi tertentu saja. Sangat tergantung pada tujuan pembuatan bahasa pemrograman ini.
Contoh: SQL (Structured Query Language), HTML, XML dan lain-lain.
7. Pemrograman Deklaratif
• Pemrograman ini mendeskripsikan suatu masalah dengan pernyataan daripada memecahkan masalah dengan implementasi algoritma.
Alur
pemikiran dalam menyelesaikan suatu pekerjaan yang dituangkan secara
tertulis. Yang ditekankan pertama adalah alur pikiran, sehingga
algoritma seseorang dapat juga berbeda dari algoritma orang lain.
Sedangkan penekanan kedua adalah tertulis, yang artinya dapat berupa
kalimat, gambar, atau tabel tertentu. (Dari Algoritma dan Struktur Data
dengan C, C++, dan Java oleh Moh Sjukani hal 1)
Penerapan Algo
Algoritma
Logika sebenarnya bisa diterapkan sehari-hari dalam kehidupan kita
misalnya, si Ari lapar, apa yang harus dilakukannya :
1. Di akan makan Mie Instan
2. Ari akan membeli Mie di warung
3. Menentukan rasa Mienya
4. Memasaka air
5. Memasak Mie
6. Makan
Langkah-langkah
diatas adalah langkah yang umum atau logis/logk, namun bisa aja stepnya
dilewati atau di tambah, intinya adalah Ari akan Mie Instan karena
Lapar.
Dalam
bidang komputer, algoritma sangat diperlukan dalam menyelesaikan
berbagai masalah pemrograman, terutama dalam komputasi numeris. Tanpa
algoritma yang dirancang baik maka proses pemrograman akan menjadi
salah, rusak, atau lambat dan tidak efisien.
Pelaksana algoritma adalah Komputer.
Manusia
dan komputer berkomunikasi dengan cara: manusia memberikan
perintah-perintah kepada komputer berupa instruksi-instruksi yang
disebut program. Alat yang digunakan untuk membuat program tersebut
adalah bahasa pemrograman. Bahasa pemrograman sangat bermacam-macam: C,
C++, Pascal, Java, C#, Basic, Perl, PHP, ASP, JSP, J#, J++ dan masih
banyak bahasa lainnya. Dari berbagai bahasa pemrograman cara memberikan
instruksinya berbeda-beda namun bertujuan menghasilkan output yang sama.
Kriteria Algoritma Menurut Donald E. Knuth
1. Input: algoritma dapat memiliki nol atau lebih inputan dari luar.
2. Output: algoritma harus memiliki minimal satu buah output keluaran.
3. Definiteness (pasti): algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu.
4. Finiteness (ada batas): algoritma harus memiliki titik berhenti (stopping role).
5.
Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat
dilaksanakan dan efektif. Contoh instruksi yang tidak efektif adalah: A
= A + 0 atau A = A * 1
6. Namun ada beberapa program yang memang dirancang untuk unterminatable: contoh Sistem Operasi
Jenis Proses Algoritma
1. Sequence Process: instruksi dikerjakan secara sekuensial, berurutan.
2. Selection Process: instruksi dikerjakan jika memenuhi kriteria tertentu
3. Iteration Process: instruksi dikerjakan selama memenuhi suatu kondisi tertentu.
4. Concurrent Process: beberapa instruksi dikerjakan secara bersama.
Contoh Algoritma
Algoritma menghitung luas persegi panjang:
1. Masukkan panjang (P)
2. Masukkan lebar (L)
3. L ← P * L
4. Tulis L
Dalam
Algoritma, tidak dipakai simbol-simbol / sintaks dari suatu bahasa
pemrograman tertentu, melainkan bersifat umum dan tidak tergantung pada
suatu bahasa pemrograman apapun juga. Notasi-notasi algoritma dapat
digunakan untuk seluruh bahasa pemrograman manapun.
Definisi Pseudo-code
Kode
atau tanda yang menyerupai (pseudo) atau merupakan pejelasan cara
menyelesaikan suatu masalah. Pseudo-code sering digunakan oleh manusia
untuk menuliskan algoritma. Problem: mencari bilangan terbesar dari dua
bilangan yang diinputkan
Contoh Pseudo-code:
1. Masukkan bilangan pertama
2. Masukkan bilangan kedua
3. Jika bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak, kerjakan
4. langkah 5.
5. Tampilkan bilangan pertama
6. Tampilkan bilangan kedua
7.
Contoh Algoritma
1. Masukkan bilangan pertama (a)
2. Masukkan bilangan kedua (b)
3. if a > b then kerjakan langkah 4
4. print a
5. print b
Contoh Lain Algortima dan Pseudo-code:
Pseudo-code Algoritma
Nilai A ditambah dengan 5 A ← A + 5
Cetak nilai A bila lebih besar dari 10 IF A > 10 THEN PRINT A
Dari dua bilangan A dan B, cari
bilangan yang terbesar
IF A > B THEN PRINT A ELSE PRINT B
Langkah-langkah dalam pemrograman komputer
1. Mendefinisikan masalah
Ini merupakan langkah pertama yang sering dilupakan orang. Menurut hukum Murphy (oleh Henry Ledgard):
“Semakin
cepat menulis program, akan semakin lama kita dapat menyelesaikannya”.
Hal tersebut berlaku untuk permasalahan yang kompleks. Tentukan
masalahnya, apa saja yang harus dipecahkan dengan menggunakan komputer,
dan apa inputan serta outputnya.
2. Menemukan solusi
Setelah
masalah didefinisikan, maka langkah berikutnya adalah menentukan
solusi. Jika masalah terlalu kompleks, maka ada baiknya masalah tersebut
dipecah menjadi modul-modul kecil agar lebih mudah diselesaikan.
Contohnya masalah invers matriks, maka kita dapat membagi menjadi
beberapa
modul:
meminta masukkan berupa matriks bujur sangkar
mencari invers matriks
menampilkan hasil kepada pengguna
Dengan penggunaan modul tersebut program utama akan menjadi lebih singkat dan
mudah dilihat.
3. Memilih algoritma
Pilihlah algoritma yang benar-benar sesuai dan efisien untuk permasalahan tersebut
4. Menulis program
Pilihlah
bahasa yang mudah dipelajari, mudah digunakan, dan lebih baik lagi jika
sudah dikuasai, memiliki tingkat kompatibilitas tinggi dengan perangkat
keras dan platform lainnya.
5. Menguji program
Setelah
program jadi, silahkan uji program tersebut dengan segala macam
kemungkinan yang ada, termasuk error-handlingnya sehingga program
tersebut akan benar-benar handal dan layak digunakan.
6. Menulis dokumentasi
Menulis
dokumentasi sangat penting agar pada suatu saat jika kita akan
melakukan perubahan atau membaca source code yang sudah kita tulis dapat
kita ingat-ingat lagi dan kita akan mudah membacanya. Caranya adalah
dengan menuliskan komentarkomentar kecil tentang apa maksud kode
tersebut, untuk apa, variabel apa saja yang digunakan, untuk apa, dan
arameter-parameter yang ada pada suatu prosedur dan fungsi.
7. Merawat program
Program
yang sudah jadi perlu dirawat untuk mencegah munculnya bug yang
sebelumnya tidak terdeteksi. Atau mungkin juga pengguna membutuhkan
fasilitas baru yang dulu tidak ada.
SOAL ALGORITMA
1. Buatlah algoritma untuk menghitung konversi suhu.dari Celcius menjadi Reamur dan Farenheit.
Input: suhu dalam Celcius
Proses: R = 4/5 * C dan F = 9/5 * C + 32
Output: suhu dalam Reamur dan Farenheit
2.
Buatlah algoritma untuk mencari sisi miring dari suatu segitiga
siku-siku, jika diketahui panjang sisi yang membentuk sudut siku-siku.
Input: a dan b, yaitu panjang sisi pembentuk sudut siku-siku
Proses: c = a2 + b2
Ouput: sisi miring (c)
3. Buatlah algoritma untuk menentukan suatu bilangan genap atau ganjil
Input: suatu bilangan
Ouput: genap / ganjil
4. Buatlah algoritma untuk menentukan suatu bilangan adalah bilangan prima atau bukan.
5. Buatlah algoritma untuk untuk menghitung akar-akar persamaan kuadrat dengan
rumus D = B2 – 4 * A * C
Jika
D < 0 maka didapat akar imajiner Jika D = 0 maka X1 = X2 yang
didapat dari D = -B / (2 * A) Jika D > 0 maka ada dua akar X1 = −B +
D/ 2 * A dan X 2 = −B − D/ 2 * A
NEXT
Generasi Bahasa Pemrograman, Proses Kompilasi, FlowChart, mengenal C++ dan C#
Mohon dengan sangat untuk berkomentar dan saran demi kemajuan bersama,, beri kritik yang bermanfaat dan jangan lupa join blog ini..!
oke??? terima kasih :) ConversionConversion EmoticonEmoticon