Tampilkan postingan dengan label Programmer. Tampilkan semua postingan
Tampilkan postingan dengan label Programmer. Tampilkan semua postingan

Minggu, 11 Maret 2018

Algoritma yang Utama, Bahasa Pemrograman Hanya Alat Pendukung



Saat masih kuliah di jurusan TI di President University tahun 2003, saya belajar algoritma dan pemrograman I, yang waktu itu belajar procedural programmingmenggunakan bahasa C. Masih ingat betul suasana perkuliahan saat itu, kami diajarkan pemrograman pertama kali, sebelum masuk ke lab komputer, kami diajarkan teori penjelasan setiap script menggunakan kertas / tulisan. Terus berlanjut seperti itu hingga dihadapkan pada pertemuan yang mengharuskan kami membuat program sederhana, disitupun logika saya belum terbentuk, karena saya masih bingung menempatkan setiap script yang akan digunakan, bukan menjadikan program sederhana yang diinginkan. Mulai dari situ terbentuklah pola pikir secara algoritma yang mengharuskan analisa sistem dari permasalahan atau program yang akan dibuat/diselesaikan. Baris per baris algoritma saya analisa lalu kemudian saya tuliskan script yang sesuai pada program saya.
Kemudian saya dihadapkan pada profesi pertama di sebuah software houseyaitu sebagai web developer menggunakan bahasa pemrograman web yaitu CFMatau ColdFushion Macromedia (masih digunakan ga ya bahasa ini saat ini?). Bahasa ini memang tidak pernah diajarkan sewaktu kuliah, namun saya berani terima tantangan ini. Setelah diterima dan bekerja, saya langsung dihadapkan pada aplikasi Human Resource Management dan sedang running di salah satu klien saat itu. Kecepatan berpikir, analisa yang kuat dan ketangguhan menjadi tantangan utama di profesi ini. Disini pula pemikiran algoritma sangat diperlukan untuk memodifikasi aplikasi sesuai dengan kebutuhan klien.
Pengalaman sebagai programmer tidak hanya berhenti di perusahaan ini, dilanjutkan di berbagai perusahaan baik sektor jasa maupun industri. Begitu saya beralih sebagai guru komputer di salah satu SMK di bidang TI. Disini, saya melihat suatu event perlombaan dimana ada salah seorang siswa yang langsung menyerah begitu menemui kesulitan. Tidak hanya disini, siswa saya sendiripun hebatnya bukan main kalau memainkan instruksi yang sudah diberikan, namun bila salah satu instruksi itu saya ubah sedikit, mereka langsung bingung dan menyerah. karena mereka TIDAK diajarkan algoritma. Disinilah sebenarnya algoritma berperan. Dengan pola pikir algoritma, siswa tidak hanya diajarkan menjalakan instruksi-instruksi, namun siswa juga dapat menganalisa apabila menemui kesulitan atau hambatan sehingga hasil tercapai.
Kabar baiknya adalah akhirnya Kementrian Pendidikan dan Kebudayaan memasukkan mata pelajaran TIK yang sebagai dasar kompetensinya adalah Pemrograman Dasar. Di mata pelajaran inilah saya ajarkan para siswa untuk mendalami algoritmanya sebelum beralih ke bahasa pemrogramannya. Algoritma sederhana yang saya ajarkan adalah Teknik Mengepel dan Menyapu Lantai. Kita mungkin sering melakukan pekerjaan sederhana ini, namun apabila kita analisa dua teknik ini dan dituangkan ke dalam bentuk algoritma ternyata tidak sesederhana yang terlihat. Misalkan ada sebuah ruangan yang akan dipel atau disapu. Urutan prosesnya sama, bisa dimulai dari depan atau belakang ruangan, hanya saja logika dari proses mengepel dan menyapu adalah agar lantai yang telah dipel dan disapu tetap bersih tanpa harus kotor kembali karena terinjak-injak. Ternyata perbedaannya ada pada arah mengerjakannya. Pada saat menyapu kita harus bergerak maju ke arah tujuan akhir ruangan ataupun tempat sampah, dan pada saat mengepel kita harus bergerak mundur ke arah tujuan akhr ruangan.
Di dalam pengalaman saya mengajar, saya berasumsi bahwa segala sesuatu yang ada di dunia ini memang terjadi karena atau berdasarkan algoritmakehidupan. Hanya saja algoritma adalah istilah yang dikenalkan di dunia komputer/TI. Berdasarkan pengertian istilahnya algoritma adalah langkah-langkah yang disusun secara sistematis dan berdasarkan logika ( benar/salah). Begitupun perkembangan teknologi komputer yang dimulai dari awal pembuatan menyesuaikan dengan algoritma kehidupan manusia bahkan kemampuan komputer terus ditingkatkan hingga menyamai atau mirip seperti kehidupan atau tingkah laku manusia yang lebih dikenal dengan artificial intelligence dan manchine learning .
Ini tidak hanya asumsi saja, di dalam mengajar pun saya membuat program-program sederhana dengan bahasa pemrograman yang berbeda yang diambil dari algoritma sederhana seperti permainan tebak bilangan, simulasi lift (evevator), tebak kata (hang man) , traffic light dan algoritma permainan tradisional Indonesia yang lebih dikenal dengan nama "Suit" (menggunakan jari). Dari satu algoritma contoh tebak kata, saya membuat dengan bahasa pemrograman prosedural yaitu C++, lalu dilanjut dengan Java hingga berbentuk visual dengan menggunakan Android Studio.
Algoritma itu sendiri direpresentasikan bisa dengan Pseudocode (teks) atau dengan Flow Chart (gambar). Pada perkembangannya, salah satu penyedia simulasi proses industri dari Jerman, telah memudahkan programmer dengan membuat program micro controller nya mengggunakan teknik flow chart. Tidak lagi dibutuhkan penggunaan script yang panjang. Salah seorang pengajar nya berkata bahwa tren kedepanya bahasa pemrograman akan beralih menggunakan flow chart. Bila ini terwujud, wah programmer benar-benar dimanjakan.
Dengan ini saya ingin menekankan khususnya kepada mahasiswa/i STMIK Kharisma Karawang, dan umumnya para penggeliat IT pemula, bahwa bila algoritma yang kita buat sudah sesuai dengan yang diinginkan dan terbukti logika nya maka mau apapun bahasa pemrogramannya, hasilnya akan sama dan sesuai. Mengenai pembelajaran dari bahasa pemrogramaan yang saat ini didalami lalu berpindah ke bahasa pemrograman yang baru, hanya butuh penyesuaian script atau code nya.

Sabtu, 02 Desember 2017

Membuat Minigame "RAMALAN" sederhana menggunakan RPG Maker


Sudah cukup sering menggunakan RPG Maker? Versi RPG Maker apa yang sekarang kamu pakai? RPG Maker XP ? RPG Maker MV ? RPG Maker VX Ace? atau mungkin RPG Maker 2003?

Apapun versi RPG Maker yang saat ini sedang kamu pakai tidak menjadi masalah karena game tutorial kali ini memang spesifik menggunakan RPG Maker akan tetapi versi RPG Maker yang digunakan tidak berpengaruh karena penggunaan logika yang akan diperlihatkan pada tutorial kali ini cukup mudah dan bisa diterapkan pada versi RPG Maker apapun itu.

Nah, kalau begitu kali ini tutorial game akan membawakan tentang apa? Jika teman teman sekalian sudah banyak membuat konten cerita, battle, dan banyak elemen dalam game RPG menggunakan RPG Maker itu adalah sebuah hal yang bagus, akan tetapi terkadang kita terlupa akan hal hal kecil yang membuat sebuah game menjadi lebih hidup, yakni interaksi. Nah tutorial kali ini akan memberikan sedikit contoh interaksi yang dapat dilakukan oleh pemain pada game buatan teman teman sekalian dan bisa dibilang tutorial kali ini dapat menembus dimensi dinding ke empat atau "4th wall breaking" karena interaksi ini bisa jadi atau mungkin tidak berpengaruh kepada pemain karena keberuntungan atau bisa dibilang kebetulan. Wah jadi penasaran nih, kita mau bikin apa sih? nah uda penasaran kan? di tutorial kali ini kita akan membuat sebuah Event interaksi "RAMALAN" sederhana dimana nantinya kita akan tanyakan kepada pemain untuk menanyakan sebuah pertanyaan dalam hati lalu kemudian kita buat event atau NPC tadi menjawab pertanyaan dalam hati pemain itu tadi.

secara garis besar ini yang akan kita lakukan:

1. Pemain menginteraksi event / orang
2. Event / orang menyuruh pemain menanyakan sesuatu dalam hati
3. proses random variable
4. Event / orang menjawab pertanyaan pemain tadi
5. Pemain terkejut kejut

hahaha, kedengarannya menarik bukan? lalu.. bagaimana cara membuatnya?
Karena membuat tutorial berdasarkan tulisan agak sulit untuk menjelaskannya dan proses memberikan gambar yang cukup memakan waktu, maka penulis sudah membuatkan video tutorialnya yang dapat teman teman saksikan dibawah ini.


Gimana? menarik kan? jangan lupa tinggalkan komentar, like, subcribe dan share semoga ilmu sederhana ini bisa bermanfaat bagi banyak teman teman lainnya.

.gametutorial Indonesia

Selasa, 22 Agustus 2017

Mengenal Konsep Event dan Delegate untuk Berkomunikasi Antar Object di Unity

Pada tutorial kali ini, kita akan mengenal salah satu konsep untuk berkomunikasi antar objek dengan menggunakan Delegates dan Event. Cara yang paling umum untuk digunakan jika ingin berkomunikasi dengan objek lain adalah dengan memberikan reference terhadap sebuah object. Kita bisa melakukan ini dengan cara membuat public variable untuk suatu game object lalu memberikan reference melalui inspector. Kita juga bisa melakukan komunikasi dengan cara menggunakan fungsi find game object. Atau yang paling mudah, kita bisa menggunakan fungsi sendMessage yang memiliki limitasi hanya bisa memanggil fungsi di script lain yang berada dalam satu komponen game object.
Pendekatan delegates dan event merupakan salah satu pendekatan yang cukup populer dalam bahasa pemrograman C# dan bisa membuat kode kita bisa lebih bersih. Jika komunikasi yang kita lakukan sudah semakin banyak percabangan dan referencenya, pendekatan delegates dan event akan membantu kita untuk bisa mendesain arsitektur kode kita lebih baik lagi. Mari kita akan coba bahas teori dari delegate dan event secara general terlebih dahulu.

Delegate

Secara konsep, delegate merupakan pointer reference dari suatu method. Delegate dapat membuat kita menjadikan sebuah method menjadi variabel dan melempar sebuah method sebagai sebuah variable ketika melakukan callback. Ketika method ini dipanggil, maka sistem akan menotifikasi seluruh metode yang merefer ke delegate. Analoginya mirip dengan subscription. Semua method yang melakukan subscription akan diupdate secara otomatis. Delegate sangat bermanfaat untuk invoke method dalam jumlah banyak dalam satu event runtime dan digunakan untuk trigger callback method.
Mungkin secara konsep terasa sangat membingungkan, namun jangan khawatir, seiring nanti kita belajar mempraktekan delegate dan event, akan semakin terbayang betapa simpel dan efisiennya penggunakan metode ini untuk komunikasi antar objek.
shoot
Sebagai contoh, kita bisa ambil kasus sebuah kode dimana jika kita menekan tombol, akan memberikan efek di dua gameobject yang berbeda. Semisal jika kita menekan button shoot, maka akan ada dua gameobject yang menjalankan methodnya. Yang pertama akan ada object pistol yang menginisiasi peluru dan yang kedua akan ada object UI yang mengurangi jumlah peluru yang player miliki. Contoh sintaksnya adalah sebagai berikut:

Event

Event merupakan tipe spesial dari delegates yang dapat digunakan untuk menotifikasi kelas lainnya ketika sesuatu terjadi. Contohnya ketika button shoot dipencet, event akan memberikan notifikasi kepada kelas peluru dan kelas jumlah peluru untuk melakukan aksinya masing-masing. Event bisa di deklarasi menggunakan delegates. Ini adalah contoh sintaksnya.

Contoh Penggunaannya

Pertama kita akan memberikan deklarasi delegate dan event pada kelas yang memproses tombol shoot yang diklik, kita beri nama kelas ButtonShoot.cs.
Selanjutnya kita akan membuat kode dari kelas yang subscribe tersebut sehingga ketika terjadi perubahaan, method pada kelas ini akan dijalankan. Kita akan membuat dua kelas yang subscribe terhadap event Clickyakni kelas Pistol.cs dan kelas TextPeluru.cs.
Dengan memasang kode di atas, maka ketika tombol button shoot ditekan, secara otomatis kelas Pistol.csakan menjalankan method BulletShoot() dan kelas Peluru.cs akan menjalankan method ReduceBullet().
Semoga tutorial ini bisa membantu teman-teman untuk membuat kode program yang lebih clean dan efektif. Untuk mengunduh contoh programnya, silakan klik link berikut.kan tutorial pembuatan game menggunakan Unity selanjutnya.