Tampilkan postingan dengan label OOP. Tampilkan semua postingan
Tampilkan postingan dengan label OOP. Tampilkan semua postingan

Senin, 28 November 2016

Source Code Program Java Animasi Frame Bitmap

Saya bagikan source code bahasa pemrograman Java yang diperoleh dari internet yang menganimasikan gambar-gambar bitmap (1 pose 1 file).

import java.awt.geom.AffineTransform;
import javax.imageio.ImageIO;
import java.net.URL;
import java.awt.*;
import javax.swing.*;
import java.io.*;

public class AnimatedFramesDemo extends JPanel {
   static final int CANVAS_WIDTH = 640;
   static final int CANVAS_HEIGHT = 480;
   public static final String TITLE = "Animated Frame Demo";
 
   private String[] imgFilenames = {
         "images/pacman_1.png", "images/pacman_2.png", "images/pacman_3.png"};
   private Image[] imgFrames;
   private int currentFrame = 0;
   private int frameRate = 5;
   private int imgWidth, imgHeight;
   private double x = 100.0, y = 80.0;
   private double speed = 8;          
   private double direction = 0;      
   private double rotationSpeed = 1;  
   private AffineTransform transform = new AffineTransform();
 
   public AnimatedFramesDemo() {
      loadImages(imgFilenames);
      Thread animationThread = new Thread () {
         public void run() {
            while (true) {
               update();
               repaint();
               try {
                  Thread.sleep(1000 / frameRate);
               } catch (InterruptedException ex) { }
            }
         }
      };
      animationThread.start();
      setPreferredSize(new Dimension(CANVAS_WIDTH, CANVAS_HEIGHT));
   }
 
   private void loadImages(String[] imgFileNames) {
      int numFrames = imgFileNames.length;
      imgFrames = new Image[numFrames];  
      URL imgUrl = null;
      for (int i = 0; i < numFrames; ++i) {
         imgUrl = getClass().getClassLoader().getResource(imgFileNames[i]);
         if (imgUrl == null) {
            System.err.println("Couldn't find file: " + imgFileNames[i]);
         } else {
            try {
               imgFrames[i] = ImageIO.read(imgUrl); 
            } catch (IOException ex) {
               ex.printStackTrace();
            }
         }
      }
      imgWidth = imgFrames[0].getWidth(null);
      imgHeight = imgFrames[0].getHeight(null);
   }
 
   public void update() {
      x += speed * Math.cos(Math.toRadians(direction));
      if (x >= CANVAS_WIDTH) {
         x -= CANVAS_WIDTH;
      } else if (x < 0) {
         x += CANVAS_WIDTH;
      }
      y += speed * Math.sin(Math.toRadians(direction));
      if (y >= CANVAS_HEIGHT) {
         y -= CANVAS_HEIGHT;
      } else if (y < 0) {
         y += CANVAS_HEIGHT;
      }
      direction += rotationSpeed;  
      if (direction >= 360) {
         direction -= 360;
      } else if (direction < 0) {
         direction += 360;
      }
      ++currentFrame; 
      if (currentFrame >= imgFrames.length) {
         currentFrame = 0;
      }
   }
 
   public void paintComponent(Graphics g) {
      super.paintComponent(g);
      setBackground(Color.WHITE);
      Graphics2D g2d = (Graphics2D) g;
      transform.setToIdentity();
      transform.translate(x - imgWidth / 2, y - imgHeight / 2);
      transform.rotate(Math.toRadians(direction),
            imgWidth / 2, imgHeight / 2);
      g2d.drawImage(imgFrames[currentFrame], transform, null);
   }
 
   public static void main(String[] args) {
      SwingUtilities.invokeLater(new Runnable() {
         public void run() {
            JFrame frame = new JFrame(TITLE);
            frame.setContentPane(new AnimatedFramesDemo());
            frame.pack();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
         }
      });
   }
}

Berikut ini file-file bitmap yang digunakan progam tersebut :



 [[ file tugas unduh di sini ]] selamat mengerjakan. Mata Kuliah Pemrograman Game, Kampus Universitas Respati Indonesia Jakarta Timur.

Selasa, 11 Oktober 2016

Tugas Mata Kuliah Pemrograman Game Sesi 4 #20161010

  1. Dari program-program game yang anda analisis untuk tugas sebelumnya (tugas sesi 3), Sebutkan perspektif pada setiap program game tersebut. Tampilkan juga screen capture / shoot-nya.
  2. Dari contoh program game Tebak Angka saat, buatlah versi GUI-nya (menggunakan Swing (JFrame))!
Sehari sebelum kuliah ini di Universitas Respati Indonesia, Jakarta Timur, anda sudah harus mengirimkannya via e-mail. Lebih cepat lebih baik. Selamat mengerjakan

Tugas Mata Kuliah Pemrograman Dasar 2 Sesi 4 #20161010

  1. Buatlah flowchart dan program untuk menentukan suatu angka, bilangan positif atau negatif. Pengguna harus menginput bilangan menggunakan keyboard (menggunakan IO stream)!
    Contoh tampilan :

    Masukkan suatu bilangan : 3
    3 adalah bilangan positif


    Catatan : angka 3 pada contoh, diinput oleh user menggunakan keyboard!
  2. Buatlah flowchart dan program untuk menentukan suatu angka bilangan positif atau negatif. Pengguna harus menginput bilangan menggunakan keyboard (menggunakan class Scanner)!
  3. Buatlah flowchart dan program untuk menentukan suatu tahun adalah kabisat atau bukan. Pengguna harus menginput bilangan menggunakan keyboard (menggunakan class Scanner)!
  4. Buatlah program untuk menghitung volume dari tengki penyimpan minyak kelapa seperti pada gambar berikut : 
Tugas, dikumpulkan melalui e-mail ke tugasilmubiner@gmail.com sebelum batas akhir yaitu sebelum datang kuliah mata kuliah ini di Prodi Sistem Informasi, URINDO, Bambu Apus, Jakarta Timur. Terima kasih.

Selasa, 04 Oktober 2016

Tugas Mata Kuliah Pemrograman Game Sesi 3 #2016103

Mata kuliah Pemrograman Game merupakan salah satu mata kuliah yang diajarkan kepada mahasiswa fakultas Teknologi Informasi di Universitas Respati Indonesia (URINDO) yang terletak di Bambu Apus Jakarta Timur. Berikut tugas bagi para mahasiswa.

Pilih secara acak tiga buah video game pada internet. Unduh, install, dan mainkan (jika game online, langsung mainkan). Kemudian tentukan genre masing-masing game tersebut. Setelah itu analisis aspek-aspek negatif dan positif pada setiap game. Sebutkan juga kontroversi-kontroversi yang menonjol pada setiap game. Sebutkan juga aturan permainan yang ada masing game.

Tugas harus sudah dikirim sehari sebelum anda datang di #urindo untuk kuliah mata kuliah ini. Untuk melihat apa saja program studi di #urindojakartatimur, silahkan klik di sini, dan tugas dikirim ke e-mail : tugasilmubiner@gmail.com, sebelum tengat waktu. Terima kasih.

Senin, 03 Oktober 2016

Tugas Mata Kuliah Pemrograman Dasar II Sesi 3 #20161003

Perpustakaan di URINDO (Universitas Respati Indonesia) yang berada di daerah Bambu Apus, Cipayung, Jakarta Timur akan dibuatkan sistem informasinya. Lakukan analisis dan rancangan sistem informasi untuk perpustakaan di tersebut menggunakan pendekatan berorientasi objek. Buatlah class-class diagram dari objek-objek yang ditemukan pada saat tahap analisis dan lakukan generalisasi atau spesialisasi pada tahap desain. Setelah itu buatlah source code dari class-class tersebut menggunakan bahasa pemrograman Java.

Tugas mata kuliah prodi Sistem Informasi #sisteminformasiurindo ini dikirim via e-mail sesuai deadline yang ditentukan, ke alamat e-mail yang telah ditentukan juga. Selamat mengerjakan.

Kamis, 20 Juni 2013

Belajar Pemrograman Python Bag. 6 : Operator-Operator

Haiiii..... sekarang kita belajar tentang operator-operator yang ada di Python. Operator adalah suatu simbol untuk melakukan suatu operasi. Operator dibagi beberapa kategori, yaitu :

  • Operator Aritmatika, yaitu operator untuk melakukan kalkulasi matematika, yang terdiri dari :
    • * : perkalian
    • / : pembagian
    • % : modulus (menghitung sisa pembagian)
    • + : penjumlahan
    • - : pengurangan
    • ++ : ditambah 1 (increment)
    • -- : dikurangi 1 (decrement)
  • Operator perbandingan, yaitu operator untuk membandingkan dua nilai dan menghasilkan nilai TRUE atau FALSE (benar atau salah), yang terdiri dari :
    • = : sama dengan
    • != : tidak sama dengan
    • < : lebih kecil
    • <= : lebih kecil atau sama dengan
    • > : lebih besar
    • >= : lebih besar atau sama dengan

Rabu, 19 Juni 2013

Belajar Pemrograman Python Bag. 5 : Contoh Program Python Sederhana

Oke mas bro dan mbak sis... kita belajar Python lagi yaaaaa.... kali ini gue coba membuat program-program Python sederhana. Sebelum mulai, gue bahas dulu tentang variabel di bahasa pemrograman secara umum dan Python pada khususnya.

Variabel di bahasa pemrograman mirip dengan variabel di matematika. Variabel di bahasa pemrograman digunakan untuk menyimpan nilai atau data. Pada dasarnya variabel dan nilai yang dikandungnya disimpan di dalam memori komputer, dan dapat digunakan pada saat diperlukan. Variabel di pemrograman akan tetap ada di dalam memori komputer, selama program masih jalan dan komputernya masih hidup. Misalnya kita ingin menyimpan bilangan di dalam suatu variabel pada pelajaran matematika, maka cukup ditulis : x = 10. Nah di pemrograman juga sama. Cuma untuk nilai yang berupa teks, penyimpanan di variabel ada aturannya. Contoh : nama = "joni". Perhatikan, untuk teks harus diapit tanda kutip dua. Sedangkan di Python, nilai atau data teks dapat diapit tanda kutip dua atau kutip satu. Lanjut, berikutnya contoh program Python untuk menampilkan nama yang disimpan di dalam suatu variabel :

#! python
# program menampilkan variabel

import sys

# menyimpan nilai ke dalam variabel (assignment)
nama = "Joni"
umur = "17"
tinggi = 170

# menampilkan nilai variabel
sys.stdout.write("\nNama : " + nama)
sys.stdout.write("\nUmur : " + umur)
sys.stdout.write("\nTinggi badan : " + str(tinggi) + " cm")

hasil program saat dieksekusi seperti gambar di bawah ini



Pada perintah : nama = "Joni", tanda = (sama dengan) disebut operator assignment.
Pada perintah : sys.stdout.write("\nNama : " + nama), tanda + (tambah) di situ bertindak sebagai operator penggabungan teks atau disebut concatenation operator. Selain itu, tanda \n digunakan untuk ganti baris. Karena tanpa tanda \n, nama, umur, dan tinggi badan akan ditampilkan cuma satu baris tidak seperti contoh gambar tampilan di atas. Tanda \n merupakan salah satu escape sequence. Kemudian variabel tinggi ditulis : str(tinggi), hal ini dilakukan karena tinggi berisi bilangan. Operator concatenation (+) tidak bisa menggabungkan bilangan. Oleh sebab itu tinggi diubah atau dikonversi menjadi bilangan dengan fungsi str( ) agar bisa digabungkan dengan teks sebelumnya.

Contoh berikutnya adalah program untuk menghitung suatu ekspresi matematika : m = a + b x c.

#! python
import sys

a = 2
b = 3
c = 4
m = a + b * c

sys.stdout.write("\na = " + str(a))
sys.stdout.write("\nb = " + str(b))
sys.stdout.write("\nc = " + str(c))
sys.stdout.write("\nm = a + b * c")
sys.stdout.write("\nm = " + str(a) + " + " + str(b) + " * " + str(c))
sys.stdout.write("\nm = " + str(m) + "\n")

hasilnya seperti gambar di bawah ini.





sekian... selamat belajar :)

Selasa, 18 Juni 2013

Belajar Pemrograman Python Bag. 4 : Dasar-Dasar

yuk dilanjut belajarnya....

Python case sensitive yang berarti huruf besar dan huruf kecil dibedakan. Contoh : halo berbeda dengan Halo berbeda dengan hAlo.

Aturan Pembuatan Nama pada Python

  • Hanya terdiri dari huruf (a-z, A-Z, 0-9) dan garis bawah (underscore) selain itu tidak boleh (spasi, titik, koma, dsb.)
  • Harus diawali dengan huruf atau garis bawah. garis bawah dua kali menandakan "private"
  • Tidak boleh menggunakan keyword (kata-kata yang sudah digunakan oleh Python sebagai perintah).
  • Harus unik dalam satu lingkup.
Kata Kunci (Keyword atawa Reserved Words) Python

andexecnot
assertfinallyor
breakforpass
classfromprint
continueglobalraise
defifreturn
delimporttry
elifinwhile
elseiswith
exceptlambdayield

Aturan Penulisan Perintah-Perintah Python

  • Satu statement, satu baris. Untuk menulis satu perintah menjadi beberapa baris, gunakan tanda \ setiap ganti baris. Contoh :
total = item_one + \
        item_two + \
        item_three
  • Pada Python tidak ada penanda blok seperti tanda { } pada C++ atau Java . Python menggunakan model penulisan secara inden. Syarat penulisan inden yang benar adalah : jumlah spasi hari sama untuk setiap blok!!! NB : tulis tanda : (titik dua) di akhir perintah sebelum suatu blok dimulai.
  • Contoh benar :
if True:
    print "Answer"
    print "True"
else:
    print "Answer"
    print "False" 
  •  Contoh salah :
if True:
    print "Answer"
    print "True"
else:
    print "Answer"
  print "False"
  • Untuk penulisan teks atau string, harus diapit tanda kutip satu ' ... ' atau tanda kutip dua " ... " atau tanda kutip tiga """ ... """
  • Untuk membuat komentar atau keterangan, gunakan tanda # (hash) di awal keterangan.
  • gue dah capek ngetik.... dilanjutkan kapan-kapan ya... yang jelas artikel ini sudah selesai.

Senin, 17 Juni 2013

Belajar Pemrograman Python Bag.3 : Mengenal Python

Karena pusing cari-cari IDE Python yang sesuai, mendingan ngubek-ubek internet tentang Python. Berikut informasi yang didapat tentang Python dalam bentuk poin-poin agar mudah dibaca

  • Python adalah bahasa pemrograman umum dan dirancang mirip bahasa Inggris agar mudah dibaca. Selain itu Python dapat digunakan sebagai scripting language.
  • Python menggunakan interpreter. Jadi pada saat selesai dibuat dapat langsung dieksekusi tanpa harus di-compile terlebih dahulu.
  • Python interaktif. Maksudnya kita dapat masuk ke lingkungan Python atau menggunakan Python prompt dan langsung menuliskan dan menjalankan perintah Python (tanpa harus menyusun source code)
  • Python telah mendukung pemrograman berorientasi objek (object oriented programming)
  • Python cocok untuk pemula yang baru belajar pemrograman dan kemampuannya lengkap, seperti pemrosesan teks, pemrograman web, pemrograman game.

Sejarah Python
  • Dibuat oleh Guido van Rossum akhir 80-an dan awal 90-an yang bekerja di National Research Institute for Mathematics and Computer Science di Belanda. Saat ini Python dikembangkan oleh Python Software Foundation (situs web : http://www.python.org/)
  • Python dipengaruhi oleh :
    • ABC
    • Modula-3
    • C
    • C++
    • Algol-68
    • SmallTalk
    • Unix shell
    • dan bahasa scripting lainnya
  • Lisensi Python adalah open source GPL (Gnu Public License) dan memenuhi syarat OSI
Fitur Python dibandingkan dengan bahasa pemrograman lainnya :
  • Mudah dipelajari.
  • Mudah dibaca.
  • Mudah dipelihara
  • Memiliki standard library yang luas, portabel, dan cross platform. Sistem operasi yang didukung Python :
    • Unix (Solaris, Linux, FreeBSD, AIX, HP/UX, SunOS, IRIX dll.)
    • Win 9x/NT/2000
    • Macintosh (Intel, PPC, 68K)
    • OS/2
    • DOS
    • PalmOS
    • telepon genggam Nokia
    • Windows CE
    • Acorn/RISC OS
    • BeOS
    • Amiga
    • VMS/OpenVMS
    • QNX
    • VxWorks
    • Psion
    • Implementasi Python :
      • CPython
      • Jython untuk Java Virtual Machine implementation, dan dapat mengakses Java class library.
      • IronPython untuk .NET Common Language Runtime.
      • RPython dapat di-compile menjadi C, Java bytecode atau Common Intermediate Language, dan dugunakan untuk membuat interpreter Python PyPy.
      • Pyjamas meng-compile Python jadi JavaScript.
      • Shed Skin meng-compile Python jadi C++.
      • Cython dan Pyrex meng-compile Python jadi C.
  • Portabel sehingga dapat digunakan pada perangkat keras yang berbeda dengan antar muka yang sama.
  • Modul dapat diekstensi dengan bahasa pemrograman low level.
  • Memiliki antar muka dengan berbagai database yang ada.
  • Mendukung pemrograman GUI (graphical user interface -antar muka penggunak berbasis grafik-)
  • Python dapat digunakan pada aplikasi sederhana sampai aplikasi enterprise (scalable).
  • Selain mendukung OOP, Python juga mendukung pemrograman terstruktur dan pemrograman fungsional.
  • Dapat digunakan sebagai scripting language, bisa juga di-compile menjadi byte code.
  • Memiliki tipe data dinamis sangat tinggi dan mendukung pemeriksaan tpe data dinamis.
  • Mendukung garbage collection dinamis.
  • Mudah diintegrasikan dengan C, C++, COM, ActiveX, CORBA, dan Java.

Belajar Pemrograman Python Bag. 2 : Program Hello World

Melanjutkan postingan sebelumnya tentang Belajar Pemrograman Pyhton Bag. 1 : Instalasi sekarang mau belajar bikin program Python yang paling seupil yaitu program untuk menampilkan teks : hello world. Tapi karena gue orang Indonesia asli, tulisan yang mau ditampilkan diganti dengan : apa kabar duniaaaaaaa....

pertama bikin folder buat nyimpen file-file source code Python, nama foldernya terserahlah, punya gue sih namanya "belajar python" dan dibuat di drive D:. Nah habis itu buka program Notepad trus ketik perintah-perintah Python seperti pada gambar di bawah ini.

trus disimpen pakai nama : halo.py

Hati-hati waktu menyimpan file! waktu mengetik nama file, nama file-nya ditulis di antara tanda kutip dua ya! contoh : "halo.py"   penyebabnya karena kita kan pakai Notepad, ekstensi file Notepad adalah .txt, nah kalau kita tidak ketik nama file program Python pakai tanda kutip dua, nanti nama filenya jadi : halo.py.txt  kalo ekstensi filenya salah, nanti saat mau dieksekusi pasti salah juga (program ga bisa dijalankan)

Kalau file source code sudah disimpan dengan benar, sekarang tingga dijalankan / di-run / dieksekusi. Buka dulu Command Prompt-nya terus pinda ke folder tempat file program Python disimpan.
Lalu ketik : py halo.py (lihat gambar di bawah)





nah tuh tulisan "apa kabar duniaaaa..." sudah muncul. Berarti program telah sukses dieksekusi tanpa ada kesalahan.

Oke, saya akan coba menjelaskan tiap baris perintah di program Python yang sudah dibuat.

#! python

Perintah di atas (kayaknya sih -kan gue lagi belajar juga, jadi ya nebak-nebak aja- gak ilmiah ya?! hehehe) merupakan compiler directive yang berguna untuk interpreter Python (dan tidak berguna buat programmer, programmer mah cukup nulis perintah itu aja di baris paling atas). Catatan tambahan : yang pernah gue baca sih Python ini dibuat pakai bahasa C. Jadi ya perintah itu ngikutin bahasa C yang ada juga compiler directive-nya.

import sys

Perintah ini biasanya untuk menyertakan library atau class yang bernama sys. sys ini merupakan library atau class dasar yang harus ada di setiap program Python.

sys.stdout.write("apa kabar duniaaa...")

perintah ini adalah perintah untuk menampilkan teks. teks di pemrograman biasa disebut string. string d=harus diapit tanda kutip dua. Perintah ini diawali dengan perintah sys, berarti berkaitan dengan perintah : import sys. Coba aja perintah import sys dihapus. Pasti perintah sys.stdout.write("apa kabar duniaaa...") gak akan bisa dijalankan karena error. Dengan kata lain, pada waktu kita menggunakan suatu perintah, kita harus tau perintah itu ada di library / class apa. terus setelah kita tau nama library atau class-nya, nama library atau class tersebut di gunakan dengan perintah import.

ya gitu dulu ya belajar Python-nya... doain biar kita bisa belajar di bagian berikutnya.


Minggu, 16 Juni 2013

Belajar Pemrograman Python Bag. 1 : Instalasi

Ah iseng mau belajar Python biar tambah pinter...

Alasan : katanya Python gampang dipelajari. Sudah mendukung OOP (Object Oriented Programming). Bisa untuk game programming. Bisa untuk web programming.

Pertama download dulu Python for Windows di http://www.python.org/getit/.

Yang bikin bingung ada dua versi nih... versi 3.x sama 2.x. Biasanya yang model beginian ada masalah kompatibilitas antar versi. Dari pada mikirin perbedaannya mending download yang versi 3 aja (ver. 3.3.2)... karena baru belajar dan versi terakhir (pengalaman dari PHP yang dulu ada versi 5 sama 4... akhirnya skrg yang dipakai ya versi 5)

Trus untuk ngetik programnya pakai apa ya? mau pakai IDE atau Notepad 2? Notepad dua aja dulu lah... ntar kalau udah pinter dikit baru ganti pakai IDE khusus Python.... *ngeles... padahal lagi males download IDEnya Python*

Abis selesai download... liat ekstensi file installer-nya adalah .msi, dobel klik, jalan deh proses instalasi Python pakai wizard. Nah di bagian Customize Python 3.3.2, pilihan Add Python.exe to path dipilih dengan pilihan Entire features .... dst.

Karena Python ini seperti Java, menggunakan interpreter, jadi kita harus mengeset PATH-nya. Caranya ;
Klik tombol mouse kanan pada My Computer ‣ Properties ‣ Advanced ‣ Environment Variables

Tambahkan variabel PYTHONPATH lalu diisi dengan %PYTHONPATH%;C:\My_python_lib

Cara lain bisa pakai Command Prompt, ketik set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib

Catatan : Tulisan My_python_lib di atas diganti dengan nama folder tempat Python diinstall ya (kalo di komputer sini sih di C:\python33)

nah untuk ngecek path-nya sudah benar atau ada; bukan Command Prompt, ketik : echo %PATH% (lihat gambar di bawah)






atau bisa juga cek via Windows 7 (WinXP caranya mirip-mirip) lihat gambar di bawah.












Selasa, 01 Maret 2011

Melihat Perbedaan OOP dan Struktural / Prosedural Melalui Source Code C++

Berikut adalah source code C++ untuk menghitung luas persegi panjang yang panjang dan lebarnya diinput oleh user. Yang pertama menggunakan pendekatan struktural / prosedural programming, setelah itu menggunakan object oriented programming.

Structural Programming :
#include <iostream>
using namespace std;

int main(){
int p, l;
cout << "Hitung Luas Persegi Panjang" << endl;
cout << "p = "; cin >> p;
cout << "l = "; cin >> l;
cout << "L = " << (p * l);
cin.sync();
cin.get();
return 0;
}

OOP :
#include <iostream>
using namespace std;

class PersegiPanjang {
public:
int p, l;
int luas(){ return p * l; }
};

int main(){
PersegiPanjang buku;
cout << "Hitung Luas Persegi Panjang" << endl;
cout << "p = "; cin >> buku.p;
cout << "l = "; cin >> buku.l;
cout << "L = " << buku.luas();
cin.sync();
cin.get();
return 0;
}
Pada OOP sebelum mengisi panjang, lebar, dan menghitung luas, harus dibuat class-nya terlebih dahulu.

Senin, 25 Mei 2009

Pemrograman Berorientasi Objek (Object Oriented Programming)

OOP (Object Oriented Programming) atau pemrograman berorientasi objek merupakan cara metodologi dalam membuat program yang menggunakan objek sebagai hal utamanya.

Untuk mempelajari OOP, kita harus mengerti terlebih dahulu dasar-dasar pemrograman. Jadi kalau belum mengerti dasar-dasar pemrograman, dijamin, akan sulit mempelajari OOP.

OOP hanya salah satu cara alternatif jika kita ingin membangun sebuah program aplikasi sistem. Program aplikasi sistem biasanya besar dan kompleks. Tanpa OOP program aplikasi sistem masih dapat dibuat. Lalu kenapa harus menggunakan OOP jika program aplikasi sistem dapat dibuat dengan cara konvensional?

Salah satu alasan mengapa ada OOP adalah penyatuan antara data dan fungsi. Para metode pemrograman konvensional, misalnya kita memiliki fungsi sebagai berikut (menggunakan VB.Net) :

function hitung_luas(byval a as single, byval b as single) as double
return a * b;
end function

Meskipun nama fungsi di atas menunjukkan kegunaannya, namun user masih belum jelas untuk menghitung luas bidang apa. Sekarang perhatikan contoh program yang menggunakan OOP :

class PersegiPanjang
public panjang as single
public lebar as single

public function hitung_luas(byval a as single, byval b as single) as double
return a * b;
end function
end class
...
...
...
Dim buku as New PersegiPanjang
buku.panjang = 11
buku.lebar = 8.5
console.writeline(buku.hitung_luas())

Class adalah struktur rancang bangun sebuah objek. Buku adalah objek yang dibuat dari class PersegiPanjang.

Dari contoh di atas fungsi hitung_luas jelas untung menghitung luas persegi panjang. Selain itu data yang dibutuhkan yaitu panjang dan lebar juga menjadi satu dalam satu class. Dengan demikian data dan function akan jauh lebih mudah dikenali dan ditemukan. Sedangkan bagi pengguna class akan lebih mudah digunakan karena korelasi antara objek (buku), data, dan fungsinya menjadi jelas.

Nikmatnya OOP yang berikutnya adalah pewarisan (inheritance). Dengan inheritance ini, class menjadi mudah diperluas. Dari contoh class PersegiPanjang di atas, misalnya kita ingin tambahkan fungsi untuk menghitung isi / volume. Untuk menghitung volume data yang dibutuhkan adalah tinggi dan rumusnya adalah v = p * l * t. Dengan OOP kita tidak perlu mengubah kelas yang sudah ada, cukup mewariskan sifat dari class yang sudah ada.

class Balok
Inherits PersegiPanjang
public tinggi as single

public function hitung_isi(byval a as single, byval b as single, byval c as single
) as double
return a * b * c;
end function
end class
...
...
...
Dim kardus as New Balok
kardus.panjang = 5
kardus.lebar = 10
kardus.tinggi = 2
console.writeline(buku.hitung_isi())
Class Balok mewarisi sifat Class PersegiPanjang dengan perintah Inherits. Pada saat class Balok dibuat, panjang dan lebar tidak perlu dibuat ulang karena class Balok secara otomatis memiliki panjang dan lebar karena class Balok adalah keturunan class PersegiPanjang. Yang perlu dibuat adalah tinggi dan menghitung isinya. Dengan demikian selain mudah dikembangkan, dengan OOP program cepat pula waktu pengembangannya.

Di dalam OOP dikenal dengan istilah polymorphisme. Gambaran polymorphisme adalah sebagai berikut : suatu kata ; "buka pintu" akan mempunyai banyak bentuk proses "buka pintu" tergantung dari cara kerja pintunya. Jika pintu konvensional, maka untuk mem-"buka pintu" memutar handel pintu kemudian menariknya agar pintu terbuka. Jika pintunya bentuk sorong, maka untuk mem-"buka pintu"-nya harus mendorong pintunya agar terbuka. Itulah polymorphisme (memiliki banyak bentuk).

Pada OOP, data member dan fungsi dapat memiliki banyak bentuk. Polymorphisme biasanya berkaitan dengan inheritance.

** Sekian dulu ah **