Thursday, August 17, 2017

Bagaimana Memulai Belajar Bahasa Pemrograman

Beberapa orang yang ingin belajar bahasa pemrograman, biasanya mereka bingung dan berpikir harus memulai dari mana. Bahkan seringkali, meskipun mereka sudah memulainya dan sudah separuh jalan, terkadang terdapat suatu ganjalan yang mengakibatkan bahasa pemrograman yang terlanjur dipelajari, ternyata tidak disupport atau terkendala device. Dalam tulisan ini, penulis mencoba berbagi pengetahuan tentang bagaimana cara yang tepat bagi pemula yang ingin memulai untuk belajar bahasa pemrograman.

Pilihan Bahasa

Bahasa pemrograman sebenarnya banyak sekali, seperti Pascal, Python, Matlab, Java, Javascript, PHP, MySql, HTML, HTML5 dan lain sebagainya. Bahasa-bahasa tersebut mempunyai kelebihan dan kekurangan masing-masing, tergantung pada tujuan pemakaian dan orientasi pembuatan program itu sendiri. Jika kebutuhan belajar bahasa pemrograman berorientasi penggunaan jangka panjang dan untuk meningkatkan skill pribadi, bahasa pemrograman yang dipilih, sebaiknya yang menggunakan penulisan kode program dasar, bukan yang sudah dimudahkan dengan rangkaian library yang disediakan compiler. Bahasa pemrograman yang penulisan script-nya masih mendasar dan cocok digunakan pemula adalah seperti Pascal, Java, C, dan C++.

Pelajari Logika

Yang dipelajari dalam bahasa pemrograman, yang terpenting adalah belajar bagaimana mengimplementasikan logika. Dengan berorientasi untuk belajar logika dan dengan menggunakan bahasa pemrograman yang dasar, kemampuan menulis bahasa pemrograman akan lebih cepat. Dan jika programmer diharuskan pindah ke bahasa lain, akan lebih cepat jika sudah mengerti logika pemrograman. Karena apapun bahasa pemrogramannya, alur logika penulisan kodenya tetap sama, yang berbeda adalah cara penulisannya.

Kemudian bagaimana logika dengan bahasa pemrograman yang sudah dimudahkan dengan library-library-nya? Untuk bahasa pemrograman semacam itu logika tetap sama, namun jika berorientasi untuk testing algorithma atau untuk keperluan jangka pendek, penggunaan bahasa pemrograman seperti Matlab, mungkin dapat menjadi pilihan. Tetapi jika untuk berlatih logika pemrograman, mungkin sebaiknya jangan digunakan dulu.

advertisement

Pelajari IO

Arah yang paling cepat bahasa pemrograman, adalah mempelajari perintah-perintah input dan output. Input adalah bagaimana cara memasukkan variable-variable yang dibutuhkan dalam pemrograman, meliputi bagaimana cara memasukkan variabel berupa bilangan integer, double, float atau variable huruf. Sedangkan output adalah bagaimana bahasa pemrograman dapat menampilkan hasil dari suatu proses tertentu sesuai type variable yang akan ditampilkan. Jika kedua ini telah dikuasi, belajar bahasa pemrograman selanjutnya akan lebih mudah dan cepat.

Selain IO diatas, yang perlu dipelajari selanjutnya adalah mengenai looping atau iterasi. Yaitu cukup pada penggunaan iterasi while dan for saja Jika programmer telah mengerti bagaimana melakukan iterasi dengan kedua perintah tersebut akan sangat mudah belajar pada langkah selanjutnya.

Orientasi Project

Untuk belajar lebih cepat lagi, arahkan belajar bahasa pemrograman untuk mengerjakan suatu project tertentu. Project tidak harus suatu project program yang komplek, melainkan project-project kecil seperti mencari bilangan prima, membuat game sederhana, atau sekedar melakukan perhitungan numerik. Sehingga dengan adanya tujuan, programmer akan lebih cepat dalam memahami logika pemrograman.

Jangan Dihafal

Dan salah satu hal yang terpenting dalam belajar bahasa pemrograman adalah jangan dihafal. Semua bahasa pemrograman masing-masing memiliki puluhan perintah-perintah yang sebenarnya tidak perlu dihafal. Jika diharuskan untuk menghafal, waktu programmer akan habis sendiri dan percuma. Padahal jika sering melakukan penulisan script, sebenarnya lambat laun programmer akan hafal dengan sendirinya, tanpa harus berniat untuk menghafal. 

Demikian tips-tips yang dapat disampaikan oleh penulis kepada programmer pemula. Penulis sebenarnya bukanlah ahli dalam salah satu bahasa pemrograman tertentu, namun penulis setidaknya telah belajar berbagai bahasa pemrograman dan dapat membuat game sebagaimana yang dapat dilihat di http://edugameapp.blogspot.com.
logo

Sunday, August 06, 2017

Algorithma Java Mencari KPK dan FPB

Iseng-iseng mengerjakan soal matematika KPK (Kelipatan Persekutuan Terkecil) dan FPB (Faktor Persekutuan Terbesar). Penulis ternyata tertantang membuat algorithma untuk membuat kode program untuk menyelesaikan permasalahan tersebut. Tantangan ini muncul karena ternyata implementasi algorithma tidak semudah yang dirasakan penulis, sebagaimana semudah mengajari secara langsung.

Algorithma kedua problem matematika tersebut hampir sama, pertama keduanya masing-masing membutuhkan deteksi bilangan prima, yang menjadi factor pengali. Dan kedua masing-masing membutuhkan deteksi macam-macam nilai factor masing-masing nilai angka yang dicari, di mana untuk KPK adalah hasil perkalian macam semua macam nilai factor yang muncul dan diambil pangkat terbesar. Sedangkan untuk FPB adalah hasil perkalian semua macam nilai faktor yang sama dan diambil nilai faktor yang terkecil.

Karena contoh implementasi dalam algorithmanya cukup panjang, di sini penulis menunjukkannya berupa video tutorial yang berdurasi kurang lebih 30 menit berikut:


Dalam video tersebut penulis mencoba mencontohkan bagaimana menerapkan algorithma mencari KPK dan FPB dengan bahasa pemrograman Java, dengan compiler NetBeans. Mulai dari algorithma mencari bilangan prima, mencari nilai-nilai faktor, berikut nilai pangkatnya, pemilihan nilai-nilai faktor sesuai syarat kebutuhan menghitung KPK dan FPB, serta bagaimana melakukan perkalian untuk mencari hasil akhirnya.

Penulis tidak menyertakan kode program secara langsung, karena penulis menganggap kode program bisa didapatkan dengan mengikuti step-step dalam video.

logo

Friday, August 04, 2017

Algorithma Collision Detection Sederhana

Dalam pembuatan game akan sering digunakan collision detection yang digunakan untuk memberikan interaksi antara object dengan object yang lain. Seperti ketika tembakan mengenai musuh, ketika pesawat saling bertabrakan, atau ketika object mengenai pos point, dan lain sebagainya.

Kemudian karena berhubungan dengan object, biasanya collission detection akan dibutuhkan untuk mendeteksi tiap object yang terdapat dalam game, sehingga diperlukan algorithma yang seefektif mungkin agar game tidak terlalu memakan memori untuk deteksi object yang bersinggungan saja.

Collision detection yang paling sederhana adalah dengan mendeteksi area persegi masing-masing object. Seperti ditunjukkan dalam gambar dan pseudocode dibawah ini, masing-masing object dihitung berdasarkan area persegi yang bersinggungan. Sehingga meskipun nilai pixel memiliki nilai alpha 0, namun jika masih terdapat pada area persegi object, maka masih dianggap bersinggungan.

Implementasi tutorial singkat dalam posting ini dapat dilihat dalam video tutorial pembuatan puzzle game dengan Java Greenfoot berikut:


Dalam blog ini penulis tidak menyediakan source code langsung. Karena dalam video sudah ditunjukkan implementasi collision detection pada fungsi checkCollision. Dan juga hasil interaksinya pada object, serta contoh interaksi collision detection yang berkesinambungan.
logo

Perbedaan Genetic Algorithm dan Swarm Intelligence

Berikut ini adalah perbedaan yang penulis ketahui mengenai metode Genetic Algorithm dan Swarm Intelligence. Pada awalnya, penulis mengira metode Swarm Intelligence adalah pengembangan dari Genetic Algorithm. Karena beberapa langkah dalam Genetic Algorithm memiliki kesamaan di dalamnya.


Secara konsep (berdasarkan pemahaman penulis), Genetic Algorithm adalah mengambil keputusan berdasarkan hasil dari individu terbaik dalam suatu populasi dari system yang ingin diketahui solusinya. Sedangkan Swarm Intelligence adalah keputusan terbaik diambil dari kerja serangkaian individu, untuk mencari keputusan terbaik dalam system tersebut.  Oleh karena itu, kedua metode ini sebenarnya sama, namun berbeda secara implementasi.

Perbedaan berdasarkan implementasi yang pernah dilakukan penulis adalah pada metode Genetic Algorithm terdapat nilai yang disebut sebagai nilai factor. Individu terbaik diukur berdasarkan nilai factor yang dimilikinya. Semaikin baik nilai factor tersebut, individu yang bersangkutan akan dipilih menjadi nominator individu pengambil keputusan pada iterasi selanjutnya. Di mana jumlah nominator yang diambil, tergantung pada awal inisialisasi. Sedangkan pada Swarm Intelligence, Algorithma yang penulis implementasikan adalah selayaknya terdapat beberapa individu yang masing-masing mencari nilai terbaik, kemudian individu yang terbaik tersebut mengarahkan individu yang lain untuk mengarah kenilai yang dihasilkannya pada iterasi selanjutnya. Kemudian jika pada iterasi selanjutnya tersebut ternyata individu yang lain menemukan nilai yang lebih baik, maka individu tersebut yang mengarah ke nilai terbaik yang dihasilkan individu lainnya itu.

Penulis mencoba mengimplementasikan kedua algorithma sesuai dengan konsep di atas, dengan bahasa pemrograman Java. Dari hasil percobaan diketahui, pengambilan nilai factor pada Genetic Algorithm menambah  satu step iterasi dibanding pada Swarm Intelligence. Sehingga secara perhitungan metode Swarm Intelligence lebih cepat dan penulis lebih menyukai metode Swarm Intelligence dibanding Genetic Algorithm. Contoh implementasi Swarm Intelligence sederhana yang dilakukan penulis, yaitu keputusan terbaik diambil dari nilai terbaik dari yang ditemukan oleh salah satu individu dapat dilihat dalam video saya berikut:


Demikian ulasan singkat saya menengenai perbedaan Genetic Algorithm dan Swarm Intelligence yang penulis ketahui. Semoga bermanfaat.
logo

Wednesday, August 02, 2017

Tidak ada Salahnya Belajar Bahasa Pemrograman


Bahasa pemrograman mungkin akan terdengar sulit dan kebanyakan orang akan menganggap tidak berguna. Namun sebenarnya pengetahuan mengenai pemrograman, menurut penulis sangatlah penting meskipun hanya pengetahuan dasarnya saja. Terutama bagi mereka yang pandai matematika, tapi malas untuk menghitung secara manual. Membuat program merupakan alternatif jitu, untuk menyalurkan ide dan menyelesaikan solusi dari problem-problem matematika yang dihadapinya.

Sebenarnya, kegunaan dari bahasa pemrograman adalah untuk membuat software. Bahasa pemrograman adalah bahasa yang digunakan programmer untuk memberikan perintah kepada komputer, termasuk untuk memasukkan perintah-perintah dalam pembuatan robot. Bahasa ini tidak satu macam saja, namun sekarang ini sudah terdapat bermacam-macam bahasa pemrograman, tergantung pada kebutuhan dan tingkat perhitungan yang ingin dilakukan oleh programmer. Misalnya, jika diinginkan tampilan hasil perhitungan atau processing data yang cantik dan menarik, maka akan diperlukan bahasa pemrograman yang telah menyediakan fitur Graphic User Interface (GUI) yang bagus. Tetapi jika hanya diperlukan tampilan yang sederhana, namun membutuhkan perhitungan yang tinggi dan real-time, maka akan diperlukan bahasa pemrograman dengan kemampuan alokasi memori perhitungan yang tinggi.

Belajar bahasa pemrograman sebenarnya tidak identik dengan menghafal. Programmer tidak perlu menghafal semua perintah untuk tahu dan mengerti bahasa pemrograman. Yang diperlukan adalah logika pemrograman, yaitu pengetahuan bagaimana cara menempatkan perintah-perintah atau algorithma perhitungan agar dapat diproses secara benar. Umumnya, jika seseorang telah mengerti satu saja bahasa pemrograman, dan telah mengerti bagaimana menempatkan logika perintah-perintahnya. Maka orang tersebut akan sangat mudah sekali mengerti jika diharuskan berganti ke bahasa pemrograman lainnya. Terutama bagi mereka yang awalnya berangkat dengan belajar menggunakan bahasa pemrograman yang dasar, seperti Assembly, Pascal, C, C++, C#, Java dan lain sebagainya. Sehingga dalam bahasa pemrograman, kemampuan menghafal sebenarnya tidak begitu penting, karena jika sering melakukan menulis program, lama-lama akan hafal sendiri.

Kemudian membuat software juga tidak harus menampilkan seuatu yang terdapat kotak text, input isian, button dan tampilan lainnya. Bahkan bagi programmer yang lebih berorientasi pada hasil kalkulasi, programmer tidak akan membutuhkan tampilan-tampilan yang tidak diperlukan itu, dengan output berupa tampilan listing angka saja. Hal ini karena tampilan-tampilan tersebut dapat memakan memori komputer dan malah dapat mengurangi kinerja perhitungan, sehingga perhitungan menjadi lebih lama. Selain itu pemilihan bahasa pemrograman juga diperlukan, karena semakin bahasa pemrograman tersebut seperti bahasa manusia, bahasa pemrograman tersebut biasanya lebih tinggi konsumsi memorinya, dan menurunkan kinerja perhitungan.

Oleh karena itu, belajar bahasa pemrograman menurut penulis tidak ada salahnya. Ketika tulisan ini ditulis, penulis membuat program tidak berorientasi pada tampilan, namun lebih ke hasil perhitungannya saja. Dan penulis menggunakan bahasa pemrograman ini terutama untuk menyelesaikan problem-problem matematika, yang umumnya membutuhkan waktu jika dilakukan perhitungan secara manual. Untuk mengetahui contoh-contoh penggunaan bahasa pemrograman yang dilakukan penulis, untuk menyelesaikan problem matematika dapat dilihat di sini.
logo

Tuesday, August 01, 2017

Sedikit Tahu mengenai Pendaftaran Haji Tahun 2017

Pendaftaran Haji ternyata tidak sesulit yang dibayangkan. Yang sulit adalah melengkapi berkas-berkas persyaratan yang pada umumnya membutuhkan waktu yang tidak cukup sehari. Namun jika persyaratan yang diperlukan telah lengkap, pendaftaran Haji dapat dilakukan dalam hitungan jam saja untuk antri.


Langkah-langkah yang diperlukan sebenarnya hanya 2 hal, pertama datang ke Bank untuk melakukan pembukaan rekening Haji dengan saldo minimal 25jt. Dan setelah dilakukan validasi pembayaran, yaitu pengalihan dana sebesar kira-kira sebesar 25jt dari deposit rekening untuk pendaftaran porsi Haji, selanjutnya pendaftar mendapatkan berkas bukti pembayaran dan untuk diserahkan ke Kantor Kementarian Agama sesuai domisili pendaftar Haji yang bersangkutan. Di kantor tersebut akan dilakukan entri data ke database, yang selanjutnya pendaftar akan mendapatkan nomor porsi Haji dan Jamaah tinggal menunggu waktu pemberangkatannya saja.

Berikut berkas-berkas yang perlu dipersiapkan bagi pendaftaran Haji yang sebaiknya dipersiapkan mulai ketika melakukan pembukaan rekening Haji:

  1. KTP, asli dan fotokopi 10 lembar
  2. Kartu Keluarga (KK), asli dan fotokopi 10 lembar
  3. Akte Kelahiran, asli dan fotokopi 10 lembar
  4. Foto berwarna  80% wajah dengan ukuran 4x6 dan 3x4 masing-masing 10 lembar

Dokumen-dokumen di atas adalah dokumen yang umum diperlukan sesuai pengetahuan penulis, Dokumen asli biasanya hanya ditunjukkan saja, sedangkan dokumen yang berupa fotokopi sebaiknya terlegalisir, dan dokumen-dokumen tersebut dapat berbeda  kebutuhan jumlah, sesuai kebijakan Bank atau kantor kementerian yang bersangkutan.
logo

Popular Posts