Senin, 28 Februari 2011

Object Oriented Programming

Pemrograman berorientasi objek (object-oriented programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya,
Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.

Konsep dasar dari Pemrograman Berorientasi Objek

Pemrograman orientasi-objek menekankan konsep berikut:
  • kelas — kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh 'class of dog' adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari anjing. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.
  • Abstraksi - Kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari "pelaku" abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.
  • Enkapsulasi - Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi ijin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.
  • Polimorfisme melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesa tersebut dikirim. Contohnya, bila sebuah burung menerima pesan "gerak cepat", dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.
  • Inheritas- Mengatur polimorfisme dan enkapsulasi dengan mengijinkan objek didefinisikan dan diciptakan dengan jenis khusus dari objek yang sudah ada - objek-objek ini dapat membagi (dan memperluas) perilaku mereka tanpa haru mengimplementasi ulang perilaku tersebut (bahasa berbasis-objek tidak selalu memiliki inheritas.)
  • Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bag administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bag administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas adminiistrasi. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri.

[sunting] Bahasa pemrograman

Bahasa pemrograman yang mendukung OOP antara lain:
  1. Visual Foxpro
  2. Java
  3. C++
  4. Pascal (bahasa pemrograman)
  5. Visual Basic.NET
  6. SIMULA
  7. Smalltalk
  8. Ruby
  9. Python
  10. PHP
  11. C#
  12. Delphi
  13. Eiffel
  14. Perl

IDE (Integrated Development Environment)

IDE (Integrated Development Environment) adalah program komputer yang memiliki beberapa fasilitas yang diperlukan dalam pembangunan perangkat lunak. Tujuan dari IDE adalah untuk menyediakan semua utilitas yang diperlukan dalam membangun perangkat lunak.
Sebuah IDE, atau secara bebas dapat diterjemahkan sebagai Lingkungan Pengembangan Terpadu, setidaknya memiliki fasilitas:
  • Editor, yaitu fasilitas untuk menuliskan kode sumber dari perangkat lunak.
  • Compiler, yaitu fasilitas untuk mengecek sintaks dari kode sumber kemudian mengubah dalam bentuk binari yang sesuai dengan bahasa mesin.
  • Linker, yaitu fasilitas untuk menyatukan data binari yang beberapa kode sumber yang dihasilkan compiler sehingga data-data binari tersebut menjadi satu kesatuan dan menjadi suatu program komputer yang siap dieksekusi.
  • Debuger, yaitu fasilitas untuk mengetes jalannya program, untuk mencari bug/kesalahan yang terdapat dalam program.
Sampai tahap tertentu IDE modern dapat membantu memberikan saran yang mempercepat penulisan. Pada saat penulisan kode, IDE juga dapat menunjukan bagian-bagian yang jelas mengandung kesalahan atau keraguan.

Sejarah

Sebagai bahan pembanding, bahasa pemrograman terdahulu disiapkan dengan cara yang berbeda, karena disiapkan melalui penyusunan flowchart, menggunakan formulir isian bahkan kartu berlubang.
IDE pada tahap awal memungkinkan perintah kode dituliskan dalam satu atau lebih file teks, lalu dikompilasi melalui perintah baris. Penyusunan tata letak relatif sulit karena hanya berupa perkiraan. Jika terdapat kesalahan pada kode, proses kompilasi harus dihentikan.

Daftar IDE

Berikut ini adalah daftar IDE yang biasa dipakai dalam industri teknologi informasi:

VB.Net Versus Borland Delphi

Microsoft Visual Basic .NET adalah sebuah alat untuk mengembangkan dan membangun aplikasi yang bergerak di atas sistem .NET Framework, dengan menggunakan bahasa BASIC. Dengan menggunakan alat ini, para programmer dapat membangun aplikasi Windows Forms, Aplikasi web berbasis ASP.NET, dan juga aplikasi command-line. Alat ini dapat diperoleh secara terpisah dari beberapa produk lainnya (seperti Microsoft Visual C++, Visual C#, atau Visual J#), atau juga dapat diperoleh secara terpadu dalam Microsoft Visual Studio .NET. Bahasa Visual Basic .NET sendiri menganut paradigma bahasa pemrograman berorientasi objek yang dapat dilihat sebagai evolusi dari Microsoft Visual Basic versi sebelumnya yang diimplementasikan di atas .NET Framework. Peluncurannya mengundang kontroversi, mengingat banyak sekali perubahan yang dilakukan oleh Microsoft, dan versi baru ini tidak kompatibel dengan versi terdahulu.

Delphi adalah sebuah IDE Compiler untuk bahasa pemrograman Pascal dan lingkungan pengembangan perangkat lunak. Produk ini dikembangkan oleh CodeGear sebagai divisi pengembangan perangkat lunak milik Embarcadero, divisi tersebut sebelumnya adalah milik Borland. Bahasa Delphi, atau dikenal pula sebagai object pascal (pascal dengan ekstensi pemrograman berorientasi objek (PBO/OOP)) pada mulanya ditujukan hanya untuk Microsoft Windows, namun saat ini telah mampu digunakan untuk mengembangkan aplikasi untuk Linux dan Microsoft .NET framework (lihat di bawah). Dengan menggunakan Free Pascal yang merupakan proyek opensource, bahasa ini dapat pula digunakan untuk membuat program yang berjalan di sistem operasi Mac OS X dan Windows CE

Delphi membawa keuntungan-keuntungan berikut:

  • Komunitas pengguna yang besar pada Usenet maupun web [2]
  • Dapat mengkompilasi menjadi single executable (aplikasi portable), memudahkan distribusi dan meminimalisir masalah yang terkait dengan versioning
  • Banyaknya dukungan dari pihak ketiga terhadap VCL (biasanya tersedia berikut source codenya) ataupun tools pendukung lainnya (dokumentasi, tool debugging)
  • Optimasi kompiler yang cukup cepat
  • Mendukung multiple platform dari source code yang sama

Berikut ini kerugiannya:

  • Partial single vendor lock-in (Borland dapat menetapkan standar bahasa, kompatibilitas yang harus mengikutinya)
  • Terbatasnya kemampuan portabilitas antar-platform OS (sebelum ada kylix)
  • Akses pada platform dan library pihak ketiga membutuhkan file-file header yang diterjemahkan ke dalam bahasa pascal
  • Dokumentasi atas platform dan teknik-teknik yang menyertainya sulit ditemukan dalam bahasa pascal (contoh akses COM dan Win32)

.NET Framework

Microsoft .NET Framework (dibaca Microsoft Dot Net Framework) adalah sebuah komponen yang dapat ditambahkan ke sistem operasi Microsoft Windows atau telah terintegrasi ke dalam Windows (mulai dari Windows Server 2003 dan versi-versi Windows terbaru). Kerangka kerja ini menyediakan sejumlah besar solusi-solusi program untuk memenuhi kebutuhan-kebutuhan umum suatu program baru, dan mengatur eksekusi program-program yang ditulis secara khusus untuk framework ini. .NET Framework adalah kunci penawaran utama dari Microsoft, dan dimaksudkan untuk digunakan oleh sebagian besar aplikasi-aplikasi baru yang dibuat untuk platform Windows.
Pada dasarnya, .NET Framework memiliki 2 komponen utama: CLR dan .NET Framework Class Library.
Program - program yang ditulis untuk .NET Framework dijalankan pada suatu lingkungan software yang mengatur persyaratan-persyaratan runtime program. Runtime environment ini, yang juga merupakan suatu bagian dari .NET Framework, dikenal sebagai Common Language Runtime (CLR). CLR menyediakan penampilan dari application virtual machine, sehingga para programmer tidak perlu mengetahui kemampuan CPU tertentu yang akan menjalankan program. CLR juga menyediakan layanan-layanan penting lainnya seperti jaminan keamanan, pengaturan memori, garbage collection dan exception handling / penanganan kesalahan pada saat runtime. Class library dan CLR ini merupakan komponen inti dari .NET Framework. Kerangka kerja itu pun dibuat sedemikian rupa agar para programmer dapat mengembangkan program komputer dengan jauh lebih mudah, dan juga untuk mengurangi kerawanan aplikasi dan juga komputer dari beberapa ancaman keamanan.
CLR adalah turunan dari CLI (Common Language Infrastructure) yang saat ini merupakan standar ECMA. Untuk keterangan lebih lanjut, silakan mengunjungi situs ECMA atau kunjungi sumber pranala di bawah artikel ini.
Solusi-solusi program pembentuk class library dari .NET Framework mengcover area yang luas dari kebutuhan program pada bidang user interface, pengaksesan data, koneksi basis data, kriptografi, pembuatan aplikasi berbasis web, algoritma numerik, dan komunikasi jaringan. Fungsi-fungsi yang ada dalam class library dapat digabungkan oleh programmer dengan kodenya sendiri untuk membuat suatu program aplikasi baru.
Pada berbagai literatur dan referensi di Internet, .NET Framework seringkali disingkat menjadi .NET saja.


Rabu, 16 Februari 2011

Simulation Using proModel

Software Promodel merupakan suatu program computer yang dapat digunakan untuk simulasi dan menganalisa system produksi dari semua tipe dan ukuran.
Promodel memberikan kemudahan untuk menguji ide-ide baru untuk mendesain system sebagai sarana untuk perbaikan system yang sudah ada ataupun pembuatan system baru, yaitu dengan cara :
-          Membuat model dari suatu system
-          Melakukan eksperimentasi terhadap model tersebut.
-          Menganalisis hasil eksperimentasi yang telah dilakukan sehingga dapat diambil keputusan – keputusan untuk memperbaiki system.
Konsep eksperimentasi yang dikenal sebagai simulasi semakin sering dipakai pada masa sekarang. Hal ini mengingat karakteistik dari pendekatan simulasi itu sendiri yang cocok untuk diterapkan pada system kompleks yang bersifat sangat acak tetapi terdapat saling ketergantungan diantara komponen-komponen penyusunnya.
ProModel adalah suatu software yang khusus didesain untuk mensimulasikan masalah-masalah yang ada pada indistri manufaktur dimana barang-barang yang diproses adalah barang-barang yang terhitung. Keunggulan utama dari software ini adalah memiliki kemampuan animasi sehingga kita dapat melihat keadaan nyata pada layar computer tetapi tidak ada angka diperlihatkan. Sebagai suatu software simulasi, Promodel dapat membantu mengetahui keadaan system dimasa yang akan datang dalam waktu yang lebih singkat dengan melihat segala kemungkinan yang ada. Hasil akan diperoleh dari hasil statistik tersebut akan dapat membantu pihak pengambil keputusan dalam mengidentifikasi sumber-sumber masalah dalam system sebenarnya serta mengambil keputusan dengan mengfanalisa angka-angka yang telah disajikan.

Simulation With Arena

ARENA adalah paket simulasi general-purpose yang memiliki kemampuan untuk memodelkan :
·         Sistem Manufaktur :
- Flowlines
- Assembly Lines
- Job Shop
- AS/RS Warehousing
- Fork Trucks
- Automated Guided Vehicles (AGV)
- Conveyors 
·         Sistem NonManufaktur :
- Paper Flow
- Health Care (Rumah sakit)
- Maintenance System
- Computer Networks
- Retail & Restaurant Facilities
- Transportation & Logistic System
- Business Process Reengineering (BPR)
- dll.


Fungsi-Fungsi Dasar Dalam Arena :
-          Arena adalah paket simulasi dalam ‘a complete windowing system’.
-          Pemodelan dengan Arena bersifat ‘Object-oriented modeling’.
-          Arena memberikan kemudahan untuk menggambarkan dan mendeskripsikan model dengan menggunakan blok-blok yang disebut MODUL.
-          Modul-modul ini dibedakan berdasarkan logika fungsinya kedalam 3 kelompok PANEL yang disebut ARENA TEMPLATE. Selain Arena Template, terdapat juga SIMAN
-          Template (Blocks dan Elements) serta panel-panel dasar DRAW untuk menggambar background statis dan text, ANIMATE yang berisi fungsi-fungsi animasi, dan RUN untuk menjalankan dan mengendalikan simulasi serta melihat statistik hasil simulasi.
-          Untuk mempermudah membangun modelnya, Arena menggunakan Graphical User Interface (GUI) yang secara otomatis memberikan bentuk-bentuk pemodelan dengan mengurangi pekerjaan menulis/tik.

Jumat, 11 Februari 2011

Bedanya OOP dengan Pemrograman terstruktur . . .

Object Oriented Programing atau yang biasa dikenal dengan OOP adalah suatu pemrograman yang mengarah pada objek. Object oriented juga disebut sebagai paradigma pemrograman.
Procedural Programming atau biasa disebut dengan pemrograman terstruktur adalah pemrograman yang disusun berdasarkan urutan tertentu.
Perbedaan mendasar antara OOP dan pemrograman terstruktur adalah:
Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sedangkan untuk pemrograman terstruktur,  menggunakan prosedur/tata cara yang teratur untuk mengoperasikan data struktur
Untuk tata nama, keduanya pun memiliki tatanan yang sama walaupun memiliki pengertian tersendiri:
object oriented menggunakan “method” sedangkan terstruktur menggunakan “function”. Bila di OOP sering didengar mengenai “objects” maka di terstruktur kita mengenalnya dengan ” modules”. Begitu pula  halnya dengan “message” pada OO dan “argument” pada terstruktur. “attribute” pada OO juga memiliki tatanan nama yang sepadan dengan “variabel” pada pemrograman terstruktur.

Belajar pemrograman . . . Ga susah dan ga gampang :D

Tidak tahu mengapa, bahwa ilmu tentang pemrograman ini gampang-gampang susah. Gampang ketika dijelasin cara bikin program oleh sang dosen. OO…. ternyata cuman gitu aja to… Tapi kalau ada tugas atau disuruh bikin program dari suatu studi kasus tertentu, banyak yang mengeluh… wah kok sulit ya…trus ujung-ujungnya copas miliknya teman.
Memang modal dasar pemrograman hanyalah penguasaan pada logika dan algoritma. Pelajaran logika, telah kita terima di pelajaran matematika SMU. So.. saya yakin para programmer pemula pasti sudah menguasai hal ini. Nah… yang terpenting adalah algoritma.
Perlu menjadi catatan di sini adalah, algoritma bukanlah teori maupun rumus yang perlu dihapalkan. Untuk belajar algoritma, perlu banyak waktu dan latihan. Tips untuk belajar algoritma hanyalah dengan memperbanyak latihan bagaimana mencari langkah-langkah solusi secara logis. Kalau perlu buat masalah sendiri dan cari langkah solusinya. Selain itu jangan hanya puas dengan mengerjakan tugas dari dosen. Karena tugas dari dosen itu scope nya kecil… masih banyak hal lain di luar tugas dosen yang perlu dieksplorasi.
Nah… terkadang, programmer pemula kesulitan dalam mengekspresikan algoritma yang ada di benaknya ke dalam bentuk algoritma pemrograman. Misalnya “Pak… saya sebenarnya tahu cara mencari nilai n faktorial, tapi kok rasanya sulit mengekspresikan ke dalam algoritma pemrogramannya?”. Hal ini juga perlu banyak latihan dan juga dengan melihat banyak contoh-contoh algoritma yang ada. Pelajari bagaimana teknik pengekspresian algoritma.
Terkadang… untuk menentukan algoritma penyelesaian suatu kasus itu muncul karena insting sang programmer. Nah… insting ini muncul kalo penguasaan atau jam terbang sang programmer sudah banyak.