Object Oriented Programming (OOP) adalah metode yang baik dalam pengembangan aplikasi. Sebuah variable biasa dapat di ubah menjadi sebuah object dan dapat melakukan banyak hal seperti simpan data, memformat penampilan data dll.
Sama hal-nya dengan bahasa pemrograman lainnya, JavaScript juga membutuhkan konsep OOP dalam pengembangan aplikasi yang lebih komplex dan powerful. Saat ini banyak framework JavaScript yang menawarkan kemudahan dalam pengembangan aplikasi namun tidak banyak di antara framework-framework tersebut yang support dengan konsep OOP seperti pemrograman lainnya.
Sejauh ini framework yang saya gunakan sehari-hari adalah jQuery dan PrototypeJs. Sejauh ini konsep OOP yang kuat masih dipegang oleh PrototypeJs dan di website ini banyak script yang saya berikan sentuhan OOP dalam pengembangannya. Namun ternyata jQuery bisa juga melakukan hal yang sama.
Berikut adalah contoh script OOP dengan menggunakan PrototypeJs berikut penjelasannya:
<script language="javascript" src="prototype.js"></script> <script language="javascript"> // cara memulai sebuah class di PrototypeJs var Matematika = Class.create({ /* Pada PrototypeJs, fungsi yang dianggap sebuah konstruktor adalah fungsi initialize() Maka fungsi initialize() adalah fungsi yang pertama dijalankan ketika class Matematika dipanggil */ initialize: function(a,b){ this.bil_a = a; // set nilai pada bilangan pertama this.bil_b = b; // set nilai pada bilangan kedua }, tambah: function(){ // mengembalikan nilai hasil penambahan kedua bilangan return this.bil_a + this.bil_b; }, getBil1: function(){ // mengembalikan nilai bilangan pertama return this.bil_a; }, getBil2: function(){ // mengembalikan nilai bilangan pertama return this.bil_b; }, bil_a: 0, // default bilangan pertama bil_b: 0 // default bilangan kedua }); var Perkalian = Class.create(Matematika,{ init: function($super,a,b){ /* Pada PrototypeJs untuk memanggil konstruktor class induk adalah dengan mengikut sertakan variable $super di dalam parameter kontruktor class anak. Variable $super itu kemudian akan digunakan untuk memanggil kontruktor class induk karena $super selain variable juga dianggap sebagai sebuah fungsi. Pada contoh kali ini kedua bilangan yang dilempar ke konstruktor di class Perkalian akan dilempar lagi ke konstruktor di class Matematika. Namun ketika class Perkalian dipanggil cukup mengirimkan 2 parameter saja, dan jangan hiraukan variable $super. */ $super(a,b); }, kali: function(){ // mengembalikan nilai hasil perkalian kedua bilangan return this.bil_a * this.bil_b; } }); </script>
OOP di PrototypeJs sudah merupakan built-in function dari framework tersebut, sedang pada jQuery harus dibantu dengan plugin agar OOP dapat berjalan dengan baik seperti halnya PrototypeJs. Nama plugin tsb adalah Classy Query, dapat anda lihat di link ini.
Berikut adalah contoh script OOP dengan menggunakan jQuery berikut penjelasannya:
<script language="javascript" src="jquery.js"></script> <script language="javascript" src="myclass.js"></script> <script language="javascript"> // cara memulai sebuah class di jQuery var Matematika = $.Class.create({ /* Pada jQuery, fungsi yang dianggap sebuah konstruktor adalah fungsi init() Maka fungsi init() adalah fungsi yang pertama dijalankan ketika class Matematika dipanggil */ init: function(a,b){ this.bil_a = a; // set nilai pada bilangan pertama this.bil_b = b; // set nilai pada bilangan kedua }, tambah: function(){ // mengembalikan nilai hasil penambahan kedua bilangan return this.bil_a + this.bil_b; }, getBil1: function(){ // mengembalikan nilai bilangan pertama return this.bil_a; }, getBil2: function(){ // mengembalikan nilai bilangan pertama return this.bil_b; }, bil_a: 0, // default bilangan pertama bil_b: 0 // default bilangan kedua }); var Perkalian = Matematika.extend({ init: function(a,b){ /* Pada jQuery untuk memanggil konstruktor class induk cukup gunakan method this._super() Pada contoh kali ini kedua bilangan yang dilempar ke konstruktor di class Perkalian akan dilempar lagi ke konstruktor di class Matematika */ this._super(a,b); }, kali: function(){ // mengembalikan nilai hasil perkalian kedua bilangan return this.bil_a * this.bil_b; } }); </script>
Karena kedua script diatas berfungsi sama maka dalam implementasinya di sebuah halaman web juga sama. Contohnya adalah script di bawah ini:
// buat object dari class Matematika dengan mengirimkan dua bilangan yang akan di operasikan oleh class var math_dasar = new Matematika(6,4); alert('Hasil Penambahan '+math_dasar.getBil1()+' dan '+math_dasar.getBil2()+': '+math_dasar.tambah()); // hasilnya: 10 /* Ketika membuat object untuk class Perkalian, caranya sama ketika membuat object untuk class Matematika dan nilai bilangan pertama dan kedua akan diperlakukan sama seperti di konstruktor class Matematika */ var math_lanjut = new Perkalian(15,3); /* Object dari class Perkalian bisa memanggil method getBil1(),getBil2() dan tambah() dari class Matematika karena class Perkalian merupakan turunan dari class Matematika */ alert('Hasil Perkalian '+math_lanjut.getBil1()+' dan '+math_lanjut.getBil2()+': '+math_lanjut.kali()); // hasilnya: 45 alert('Hasil Penambahan '+math_lanjut.getBil1()+' dan '+math_lanjut.getBil2()+': '+math_lanjut.tambah()); // hasilnya: 18
Dengan demikian perbedaan-perbedaan script untuk membuat OOP di masing-masing framework adalah:
| No | Item | Prototype | jQuery |
| 1 | Untuk memulai deklarasi class |
var MyClass = Class.create({ ... }); |
var MyClass = $.Class.create({ ... }); |
| 2 | Nama method konstruktor pada suatu class |
initialize() |
init() |
| 3 | Syntax Inheritance |
var Anak = Class.create(Induk,{ ... }) |
var Anak = Induk.extend({ ... }) |
| 4 | Pemanggilan konstruktor class Induk pada class Anak |
initialize: function($super,params){ $super(params); } |
init: function(params){ this._super(params); } |
Tidak ada demo pada artikel kali ini namun jika anda ingin men-download program lengkap konsep OOP artikel ini maka dapat anda peroleh dari link ini
Semoga dapat menambah wawasan… ^_^

(11 votes, average: 4.09 out of 5)
Chandra Jatnika



8 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.
Artikel anda di
http://programing.infogue.com/konsep_object_oriented_programming_pada_framework_prototypejs_dan_jquery
promosikan artikel anda di infoGue.com. Telah tersedia widget shareGue dan pilihan widget lainnya serta nikmati fitur musikgue, info cinema, game online & kamus untuk para netter Indonesia. Salam!
bagus tulisannya, tapi menurut saya, menggunakan javascript emang bisa digunakan untuk objek oriented programming
jadi pengen belajar terus……
wah bagus mas artikelnya, kbetulan saya baru dapet prototypejs nih dari temen.. jadi bisa praktek pake tutor ini deh… thx.
w mo dalemin bahasa java tks ya
SIIIP, wah ok nih, konsepnya.. ini yang saya cari sejak dulu
thanks mas
Oh iya mas, itu yang jquery kenapa harus nginclude myclass.js ??
karena jquery gak pny fungsi sendiri utk bermain OOP, dan myclass.js itu plugin buat OOP di jquery