Archive for programming

Pengenalan Pemrograman Berorientasi Objek – Intro

Sebelum memulai membaca artikel intro ini dan lanjutannya, gw saranin pembaca udah terlebih dahulu menguasai atau setidaknya mengenal salah satu bahasa pemrograman prosedural (C, Pascal, dll.), tapi sangat disarankan sudah menguasai C karena dalam edisi ini gw akan lebih banyak membahas OOP dalam bahasa C++.

Hi! Dalam kesempatan ini gw mau berbagi pengetahuan gw mengenai Pemrograman Berbasis Objek (biasa disingkat PBO) atau bahasa keren-nya, Object Oriented Programming (biasa disingkat OOP). Artikel ini gw buat berhubung temen-temen gw juga di semester mendatang pasti bakalan berperang nih sama yang namanya OOP, jadi semoga artikel ini bisa bermanfaat πŸ™‚

Oke, let's begin! Pengenalan ini bakalan gw bagi jadi beberapa bab dan pada kesempatan kali ini gw bakal tulis mengenai pengenalan singkat dari konsep OOP itu sendiri.

Anyhow, artikel ini gw buat 100% atas dasar keinginan untuk berbagi berdasarkan pengalaman gw sendiri dan dicocokkan dengan banyak referensi (baik buku maupun artikel yang bertebaran di Internet), jadi mohon maaf apabila ada kesalahan dalam penulisan, pemahaman, dan hal lain, supaya bisa dikomunikasikan ke gw jadi bisa segera dikoreksi. :]

Oh iya, karena syntax atau implementasi OOP dalam berbagai bahasa dapat berbeda-beda, dalam intro ini gw akan lebih menekankan konsep dari OOP itu sendiri, namun dalam seluruh seri ini gw akan lebih banyak membahas OOP dalam bahasa C++.

Apa itu Pemrograman Berorientasi Objek?

Pemrograman Berorientasi Objek atau Object-Oriented Programming (OOP) adalah sebuah paradigma pemrograman yang menggunakan "objek" yang berisi data-data serta metode-metode untuk berinteraksi dengan program. Untuk seterusnya, gw akan menggunakan istilah "OOP" karena untuk menuliskan "pemrograman berorientasi objek" memerlukan 10 kali tenaga lebih daripada menuliskan "OOP". πŸ˜›

Lihat area sekitar anda. Ada apa? Handphone? Secangkir teh/kopi? Mouse? Keyboard? Mereka semua adalah objek. Lalu apa hubungannya dengan OOP? Mengapa kita membutuhkan OOP? Sadarkah kita bahwa ketika kita membuat suatu program sebenarnya kita membuatnya agar seolah-olah dapat merepresentasikan hal yang ada di dunia nyata?

Dalam OOP, kita mengelompokkan segalanya kedalam objek-objek untuk memudahkan kita dalam menyelesaikan suatu masalah, sehingga jika dalam pemrograman prosedural kita hanya menggunakan tipe int, float, char, dan array, dalam pemrograman berorientasi objek kita juga dapat membuat tipe mobil, handphone, cangkir, dan banyak hal lain sesuai dengan kebutuhan.

Ada banyak bahasa pemrograman yang memungkinkan kita untuk menggunakan paradigma OOP, seperti C++ dimana kita masih dapat menggunakan paradigma prosedural didalamnya, atau bahkan bahasa yang hanya memperbolehkan kita untuk menggunakan paradigma OOP seperti Java atau C#.

Gw tekankan sekali lagi, karena syntax atau implementasi OOP dalam berbagai bahasa dapat berbeda-beda, dalam seri ini gw hanya akan membahas pemrograman berorientasi objek dalam bahasa C++, namun intinya dalam bahasa pemrograman manapun yang menggunakan paradigma OOP memiliki cara pandang yang kurang lebih sama, jadi jangan khawatir :].

Apa itu Objek?

Dalam istilah OOP, objek merepresentasikan sebuah kelas (class).

Berbeda dengan bahasa pemrograman prosedural, dalam OOP, segalanya kita buat menjadi objek-objek dimana masing-masing objek dapat melakukan hal-hal yang berkaitan dengan objek tersebut.

Untuk lebih memahami konsep "objek" itu sendiri, gunakan tubuh anda sebagai contoh. Tubuh anda memiliki kepala, tangan, dan kaki. Kita dapat menganggap bahwa tangan adalah sebuah objek yang dapat melakukan berbagai aktivitas seperti mengetik, menunjuk, meraba, dll. Begitu juga untuk kaki, kita dapat menganggap bahwa kaki adalah objek yang dapat melakukan aktivitas seperti berjalan, berlari, dll. Semua terhubung dengan tubuh melalui sekumpulan saraf yang digunakan tubuh untuk berkomunikasi dengan objek-objek tersebut.

Apa itu Kelas?

Kelas menjelaskan detil dari sebuah objek, yang membedakan antara satu objek dengan objek yang lain. Dengan kata lain, kelas adalah deskripsi, blueprint, karakteristik, atau sekumpulan sifat-sifat yang digunakan untuk membentuk sebuah "objek".

Simak kode berikut:

C++
1
Manusia yana = new Manusia();

Dari kode diatas, dapat dikatakan bahwa kita membuat sebuah instansi dari objek yang tergolong kedalam kelas Manusia yang kita beri nama yana.

Let's say, anda ingin membuat sebuah program pengolahan nilai siswa untuk memudahkan guru dalam mengolah nilai siswa. Seorang siswa dapat memiliki nama, dan nilai. Dalam pemrograman prosedural, anda akan membuat 1 variabel string untuk menyimpan nama dan 1 variabel integer untuk menyimpan nilai. Dalam OOP, kita dapat mengelompokkan data tersebut kedalam 1 kelas:

C++
1
2
3
4
5
class Siswa
{
int Nilai;
string Nama;
};

Variabel-variabel tersebut (Nilai dan Nama) dapat disebut field atau atribut atau variabel anggota (member variable) karena berada didalam sebuah kelas.

Dengan cara ini, anda dapat dengan mudah mengelompokkan semua siswa kedalam satu kelas, yaitu Siswa, dan setiap siswa merupakan instansi dari kelas tersebut.

Dalam dunia nyata, anda akan sering sekali menemui banyak objek dalam kelas yang sama. Contohnya, ada banyak orang di dunia ini, setiap orang merupakan objek yang merepresentasikan kelas Manusia, anda dan saya merupakan instansi dari objek tersebut.

Jadi.. Apa bedanya antara Kelas, Objek, dan Instansi?

Kelas menjelaskan detil dari sebuah objek, yang membedakan antara satu objek dengan objek yang lain. Dengan kata lain, kelas adalah deskripsi, blueprint, karakteristik, atau sekumpulan sifat-sifat yang digunakan untuk membentuk sebuah objek. Contoh: Manusia

Objek merepresentasikan sebuah kelas. Contoh: Semua hal yang ada di dunia ini yang memiliki ciri sama persis dengan Manusia.

Instansi adalah objek unik yang membedakan antara objek satu dengan objek yang lain yang dapat dibedakan dari nilai-nilai yang terdapat pada variabel anggotanya. Contoh: Anda dan saya memiliki nama dan umur yang berbeda, maka anda dan saya adalah dua instansi yang berbeda, namun tetap merupakan objek dari kelas Manusia.

Sebagai contoh, kita memiliki sebuah kelas "Manusia" dengan variabel anggota: nama dan tinggi badan; yang merepresentasikan manusia (objek). Dalam ruangan ini, terdapat 2 manusia, Giri dan Yana, yang masing-masing merupakan 2 instansi yang berbeda dari (kelas) Manusia, karena di antara 2 manusia tersebut terdapat perbedaan, dimana manusia yang pertama memiliki nama "Giri" dan tinggi badan 175, sementara manusia yang kedua memiliki nama "Yana" dan tinggi badan 180. (Hanya contoh, no offense :P)

Tapi walaupun kedua manusia tersebut memiliki nama dan tinggi badan yang sama, tetap saja dianggap 2 instansi yang berbeda, karena saat kita melakukan instansiasi 2 objek dari kelas Manusia dalam suatu program, program akan menempatkan kedua instansi tersebut dalam 2 alamat memori yang berbeda meskipun isi dari variabel anggotanya sama.

Banyak Istilah

Di dunia, banyak istilah-istilah berbeda yang digunakan namun tetap merujuk ke satu hal yang sama. Sebagai contoh, variabel anggota (member function) dapat juga disebut field atau atribut, namun keduanya tetap merujuk ke satu arti yang sama. Jadi, jangan terlalu diambil pusing. You'll get used to it. πŸ™‚

Got it?

OK, kalau udah ngerti dan siap untuk lanjut ke bab selanjutnya, klik link dibawah. ;D

Kalau ada pertanyaan atau koreksi, silahkan tinggalkan komentar.

Bab Intermezzo (opsional): Pengenalan Pemrograman Berorientasi Objek – Dari C ke C++

atau langsung ke Bab Selanjutnya: Pengenalan Pemrograman Berorientasi Objek – Enkapsulasi

ARToolkit

Mendapat tantangan dari @ansharabdullah untuk membuat augmented reality *challenge accepted*

 

Apa itu augmented reality?

 

Diterjemahkan secara kasar ke bahasa Indonesia artinya kenyataan yang ditambahkan. Hurr… jadi gambaran grafis di komputer terlihat terasa nyata dengan menyelaraskannya bersamaan dengan dunia nyata. Contohnya kayak pas sepak bola ada yang offiside tiba-tiba di lapangan ada garis hitam tuh, tuh, augmented reality πŸ˜€

 

Dan syukurlah, saya bisa mengcompile tools ini (permulaan yang bagus, eh? πŸ˜€ )

Read more

slider.xcodeproj

Ups, saya sangat mengerti bagi yang pertama kali belajar XCode sangat menginginkan ada contoh program kecil-kecilan dan bisa diutak-atik, karena itu saya berusaha membagikannya sekarang πŸ˜€
Ini adalah aplikasi sederhana menggunakan XCode. Aplikasi ini merupakan “game mencari jawaban”. Tinggal putar dialnya dan jika angkanya 20 maka ada tulisan “jawaban kamu benar.”

Silahkan diutak-atik!
http://cengek.com/files/slider.zip

Irrlicht di OSX

Yeay! Saya ingin menulis artikel ini karena susah sekali mencari tutorial untuk menjalankan Irrlicht dengan IDE XCode. Semoga artikel ini bisa bermanfaat.
Apa saja yang dibutuhkan?

1. Irrlicht Engine SDK. Bisa didownload di irrlicht.sourceforge.net

2. XCode. Saya menggunakan XCode versi 3.2.6

3. OS X saya versi 10.6.8

4. Charger. Karena siapa tahu mac kamu sedang masa kritis baterai. Untuk prosescompile akan menggunakan energi yang cukup besar.

5. Internet dan waktu πŸ˜€

Yuk yuk kita mulai.
Disclaimer, Saya nubie! Don’t ask me advanced things such why those syntax iz had to be like that and advanced details about c++ XD.

Read more