Sabtu, 13 Agustus 2016

POP VS OOP

POP VS OOP


Dalam dunia pemrograman ada dua methoda umum yang digunakan sebagai landasan dasar yaitu Procedural Oriented Programming (POP) dan Object Oriented Programming (OOP). 

  • POP(Procedural Oriented Programming)

a.         Pengertian
                                               Metode pemrograman ini memecah program menjadi beberapa fungsi dan modul.
         Tidak ada hubungan antara fungsi dan data, Fungsi tidak dapat membatasi akses terhadap data yang global.
         Data lokal tersembunyi dalam fungsi dan digunakan secara eklusif oleh fungsi tersebut, tetapi pada saat dua fungsi mengakses data yang sama, maka data tersebut harus dibuat.
         Dalam program yang besar, terdapat banyak fungsi dan data global, sehingga timbul masalah:

o      Struktur program rumit.
o   Program sulit dimodifikasi, karena perubahan pada data global dapat menyebabkan penulisan program diulang kembali. 

         Pemrograman terstruktur menggunakan teorema terstruktur:
o   Sequence (berurutan).
o   Selection (pemilihan).
o   Repetition (pengulangan).

Secara singkat dapat dijelaskan bahwa kerugian membuat program dengen POP adalah masalah yang sering timbul jika kompleksitas program membengkak seiring dengan waktu.

b.        Bahasa Pemrograman
1.    Cobol Turbo Prolog
2.    C
3.    Pascal
4.    Delphi
5.    Borland Delphi

c.         Kelebihan Prosedural :
1.   Memiliki algoritma pemecahan masalah yanag sederhana, standar dan efektif.
2.   Penulisan program memiliki struktur logika yang benar dan mudah dipahami
3. Program hanya terdiri dari 3(tiga) struktur dasar, yaitu struktur berurutan, struktur seleksi dan struktur perulangan.
4.    Memiliki dokumentasi yang baik.
5.  Menghindari penggunaan pernyataan GOTO, yang akan menjadikan program tidak terstruktur dengan baik.

d.        Kekurangan Prosedural :
1.    Program cukup sulit untuk proses perawatan
2.    Fungsi yang tersedia, susah untuk diubah tanpa harus mempengaruhi fungsi sistem secara keseluruhan.
3.    Butuh usaha yang keras untuk menterjemahkan Business Models dalam programming models.
Mungkin dapat bekerja dengan baik pada saat terisolasi tapi tidak pada saat terintegrasi dengan sistem lain.


  •        OOP  (Object Oriented Programming)

a.         Pengertian
Dalam pemrograman berorientasi objek, setiap objek akan memilih data(sifat berupa variable atau konstanta) dan method (perilaku atau kemampuan melakukan sesuatu dengan fungsi). Jadi Objek dapat di defenisikan sebagai suatu entitas yang memiliki data dan method.
Contoh:

Manusia adalah suatu objek yang memiliki data-data:

a.    Nama
b.    Jenis kelamin
c.    Tinggi badan
d.    Berat badan
e.    Golongan darah

Manusia memiliki method:

a.    Cara bicara
b.    Cara berjalan
c.    Cara marah
d.    Sifat

·     Gagasan dasar dari OOP adalah menggabungkan data dengan fungsi menjadi satu kesatuan yang utuh.
·       Karakteristik utama dari OOP adalah:

o   Encapsulation (Encapsulation adalah pengemasan data dan fungsi dalam satu wadah bernama obyek)
o   Inheritance.yaitu sifat dari OOP yang dimungkinkan menurunkan sifat-sifat dari suatu kelas pada kelas yang lain.
o   Polymorphism. yaitu suatu konsep yang menyatakan bahwa sesuatu yang sama dapat mempunyai berbagai bentuk dan perilaku yang berbeda.

Secara singkat dapat disimpulkan bahwa OOP ini mempunyai keunggulan yang mengarahkan kita bahwa saat membuat program gunakanlah konsep OOP.

b.        Bahasa Pemrograman

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
15.     Adobe Flash AS 3.0

c.         Kelebihan OOP:

1.         Dalam menggunakan sebuah class cukup sekali tidak perlu dituis berkali-kali.
2.         Dapat menambahkan fitur pada class tanpa mengedit class asal.
3.         Menggunakan objek tanpa harus tahu teknis yang ada didalamnya.
4.    Data yang digunakan dalam bentuk private hanya bisa di akses oleh fungsi lokasi, sehingga tidak perlu khawatir untuk berpengaruh pada fungsi lainnya.
5.   Dalam pembuatan library sangat mudah dalam penggunaan. Library java kian bertambah karena meningkatnya dalam pembangunan aplikasi sehingga library juga ikut meningkat untuk memudahkan programer dalam pembangunan aplikasi. Serta tampilan yang cukup rapi.
6.         Memiliki sintak seperti bahasa C maupun C++.
7.    Dapat mengatur memori secara langsung tanpa programer mengatur memori secara manual.

d.        Kelemahan OOP:

1.         Memiliki memori lebih besar dibandingkan dengan program terstruktur.
2.   Mudah mengembalikan kode jadi menjadi kode sumber sehingga algoritma yang digunakan pun sulit untuk disembunyikan dan mudah dibajak.

3.      Cara Pandang
         OOP : program adalah serangkaian objek yang bekerja sama untuk menyelesaikan suatu problem
         Prosedural : program adalah suatu urutan instruksi
4.      Beda nyata antara prosedural dan OOP
       Prosedural fokus pada bagaimana cara komputer menangani masalah

       OOP fokus pada masalah yang ditangani dengan menggunakan komputer.

TENTANG JAVA

JAVA

1.             Pengertian Java
Java adalah bahasa pemrograman yang dapat membuat seluruh bentuk aplikasi, desktop, web, mobile dan lainnya, sebagaimana dibuat dengan menggunakan bahasa pemrograman konvensional yang lain. Bahasa Pemrograman Java ini berorientasi objek (OOP-Object Oriented Programming), dan dapat dijalankan pada berbagai platform sistem operasi. Perkembangan Java tidak hanya terfokus pada satu sistem operasi, tetapi dikembangkan untuk berbagai sistem operasi dan bersifat open source. Dengan slogannya “Write once, run anywhere”.
Bahasa ini banyak mengadopsi sintaksis yang terdapat pada C dan C++ namun dengan sintaksis model objek yang lebih sederhana. Aplikasi-aplikasi berbasis java umumnya dikompilasi ke dalam p-code (bytecode) dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM). Java merupakan bahasa pemrograman yang bersifat umum/non-spesifik (general purpose).
Pengertian lainnya tentang java, Java adalah bahasa pemrograman tingkat tinggi yang berorientasi objek dan program java tersusun dari bagian yang disebut kelas. Kelas terdiri atas metode-metode yang melakukan pekerjaan dan mengembalikan informasi setelah melakukan tugasnya. Para pemrogram Java banyak mengambil keuntungan dari kumpulan kelas di pustaka kelas Java, yang disebut dengan Java Application Programming Interface (API). Kelas-kelas ini diorganisasikan menjadi sekelompok yang disebut paket (package). Java API telah menyediakan fungsionalitas yang memadai untuk menciptakan applet dan aplikasi canggih. Jadi ada dua hal yang harus dipelajari dalam Java, yaitu mempelajari bahasa Java dan bagaimana mempergunakan kelas pada Java API. Kelas merupakan satu-satunya cara menyatakan bagian eksekusi program, tidak ada cara lain. Pada Java program javac untuk mengkompilasi file kode sumber Java menjadi kelas-kelas bytecode. File kode sumber mempunyai ekstensi *.java. Kompilator javac menghasilkan file bytecode kelas dengan ekstensi *.class. Interpreter merupakan modul utama sistem Java yang digunakan aplikasi Java dan menjalankan program bytecode Java.
2.             Karakteristik Java
Java adalah sebuah bahasa pemrograman berorientasi obyek murni. Jadi program – program Java berada dalam sebuah struktur kelas – kelas dan obyek – obyek. Pada dasarnya sintaks pada bahasa Java mirip dengan sintaks pada bahasa C atau C++. Java bertipe kuat (strongly-typed). Ini berarti semua tipe data terikat secara statis atau dengan kata lain setiap nama variabel diasosiasikan dengan sebuah tipe data tunggal yang dikenali pada saat kompilasi.

Ciri Utama Dari Java
·                     JVM (Java Virtual Machine)
·                     Garbage Collection
·                     Code Security


3.             Sejarah Perkembangan Java
Bahasa pemrograman Java terlahir dari The Green Project, yang berjalan selama 18 bulan, dari awal tahun 1991 hingga musim panas 1992. Proyek tersebut belum menggunakan versi yang dinamakan Oak. Proyek ini dimotori oleh Patrick Naughton, Mike Sheridan, dan James Gosling, beserta sembilan pemrogram lainnya dari Sun Microsystems. Salah satu hasil proyek ini adalah maskot Duke yang dibuat oleh Joe Palrang. Pertemuan proyek berlangsung di sebuah gedung perkantoran Sand Hill Road di Menlo Park. Sekitar musim panas 1992 proyek ini ditutup dengan menghasilkan sebuah program Java Oak pertama, yang ditujukan sebagai pengendali sebuah peralatan dengan teknologi layar sentuh (touch screen), seperti pada PDA sekarang ini. Teknologi baru ini dinamai "*7" (Star Seven).

Setelah era Star Seven selesai, sebuah anak perusahaan Tv kabel tertarik ditambah beberapa orang dari proyek The Green Project. Mereka memusatkan kegiatannya pada sebuah ruangan kantor di 100 Hamilton Avenue, Palo Alto. Perusahaan baru ini bertambah maju jumlah karyawan meningkat dalam waktu singkat dari 13 menjadi 70 orang. Pada rentang waktu ini juga ditetapkan pemakaian Internet sebagai medium yang menjembatani kerja dan ide di antara mereka. Pada awal tahun 1990-an, Internet masih merupakan rintisan, yang dipakai hanya di kalangan akademisi dan militer. Mereka menjadikan perambah (browser) Mosaic sebagai landasan awal untuk membuat perambah Java pertama yang dinamai Web Runner, terinsipirasi dari film 1980-an, Blade Runner. Pada perkembangan rilis pertama, Web Runner berganti nama menjadi Hot Java.
Pada sekitar bulan Maret 1995, untuk pertama kali kode sumber Java versi 1.0.2 dibuka. Kesuksesan mereka diikuti dengan untuk pemberitaan pertama kali pada surat kabar San Jose Mercury Newspada tanggal 23 Mei 1995. Sayang terjadi perpecahan di antara mereka suatu hari pada pukul 04.00 di sebuah ruangan hotel Sheraton Palace. Tiga dari pimpinan utama proyek, Eric Schmidt dan George Paolini dari Sun Microsystems bersama Marc Andreessen, membentuk Netscape.
Nama Oak, diambil dari pohon oak yang tumbuh di depan jendela ruangan kerja "Bapak Java", James Gosling. Nama Oak ini tidak dipakai untuk versi release Java karena sebuah perangkat lunak lain sudah terdaftar dengan merek dagang tersebut, sehingga diambil nama penggantinya menjadi "Java". Nama ini diambil dari kopi murni yang digiling langsung dari biji (kopi tubruk) kesukaan Gosling. Konon kopi ini berasal dari Pulau Jawa. Jadi nama bahasa pemrograman Java tidak lain berasal dari kata Jawa (bahasa Inggris untuk Jawa adalah Java).

·      Edisi Java
Java adalah bahasa yang dapat dijalankan dimanapun dan di sembarang platform apapun, di beragam lingkngan : internet, intranets,consumer electronic products, dan computer applications.The java 2 platform tersedia dalam 3 edisi untuk keperluan berbeda. Untuk beragam aplikasi yang dibuat dengan bahasa Java, java dipaketkan dalam edis – edisi berikut:

1.Java 2 Standard Edition ( J2SE )
2.Java 2 Enterprise dition ( J2EE )
3.Java 2 Micro Edition ( J2ME )

Masing – masing edisi berisi Java 2 Software Development Kit ( J2SDK ) untuk mengembangkan aplikasi dan Java 2 Runtime Environent ( J2RE ) untuk menjalankan aplikasi.

4. Perbedaan Java dengan bahasa pemrograman lain

Java dirancang untuk menjadi bahasa yang sederhana, meminimalkan kesalahan, namun tetap tangguh. Itulah yang membedakannya dengan bahasa pemrograman yang lain. Suatu aplikasi Java ditulis dalam bahasa Java dan memanfaatkan Java API (Application Programming Interface). Java API berisi koleksi class-class siap pakai yang mempermudah dalam penulisan aplikasi.
Perbedaan Java dengan C++ Aplikasi ini juga hampir mirip dengan C++ dalam hal syntax perintahnya, namun tetap saja Java tidaklah sama dengan C++. Adapun perbedaan antara Java dengan C++ adalah :
  • Pada Java, manajemen memory dinamis dan pointer dilakukan secara otomatis. Pada C++ pemrograman melakukan sendiri alokasi dan dealokasi memory. Otomatisasi ini menghilangkan kemungkinan bagi penggunaan pointer yang dapat merusak kestabilan program dan system operasi.
  • Java tidak mengenal multiple inheritance seperti pada C/C++. Multiple Inheritance membingungkan dan berakibat pada sulitnya pembuatan aplikasi dan compiler. Sebagai ganti yang lebih baik, Java menggunakan interface.
  • Java merupakan bahasa OOP murni sedangkan C++ adalah bahasa OOP hybrid.
  • Java menggunakan model Exception dalam menangani kesalahan program.
  • Java tidak mempergunakan compiler-directive pada source code.
  • Java memiliki fasilitas garbage-collector yang bekerja secara otomatis untuk menjamin ketersediaan memori dengan membebaskan memori yang tidak terpakai.
  • Java sangat portable baik pada file sumbernya maupun hasil kompilasinya, sedangkan C++ hanya portable pada level kode sumbernya saja.
  • Spesifikasi bahasa dan implementasi Java sudah ditetapkan dan tidak mengikuti suatu mesin atau platform tertentu, C++ sangat tergantung pada mesin dan platform yang akan digunakan 
Keunggulan Java
Yang membuat Java berbeda dengan bahasa pemrograman yang lain adalah karena Java mempunyai beberapa keunggulan yang memang mutlak bisa di jadikan pertimbangan dalam menggunakan bahasa Java ini. Berikut beberapa keunggulan Java :
  • Multiplatform. Kelebihan utama dari Java ialah dapat dijalankan di beberapa platform / sistem operasi komputer, sesuai dengan prinsip tulis sekali, jalankan di mana saja. Dengan kelebihan ini pemrogram cukup menulis sebuah program Java dan dikompilasi (diubah, dari bahasa yang dimengerti manusia menjadi bahasa mesin /bytecode) sekali lalu hasilnya dapat dijalankan di atas beberapa platform tanpa perubahan. Kelebihan ini memungkinkan sebuah program berbasis java dikerjakan diatas operating system Linux tetapi dijalankan dengan baik di atas Microsoft Windows. Platform yang didukung sampai saat ini adalah Microsoft Windows, Linux, Mac OSdan Sun Solaris. Penyebanya adalah setiap sistem operasi menggunakan programnya sendiri-sendiri (yang dapat diunduh dari situs Java) untuk meninterpretasikanbytecode tersebut.
  • OOP (Object Oriented Programming – Pemrogram Berorientasi Objek) yang artinya semua aspek yang terdapat di Java adalah Objek. Java merupakan salah satu bahasa pemrograman berbasis oebjek secara murni. Semua tipe data diturunkan dari kelas dasar yang disebut Object. Hal ini sangat memudahkan pemrogram untuk mendesain, membuat, mengembangkan dan mengalokasi kesalahan sebuah program dengan basis Java secara cepat, tepat, mudah dan terorganisir. Kelebihan ini menjadikan Java sebagai salah satu bahasa pemograman termudah, bahkan untuk fungsi fungsi yang advance seperti komunikasi antara komputer sekalipun.
  • Perpustakaan Kelas Yang Lengkap, Java terkenal dengan kelengkapan library/perpustakaan (kumpulan program program yang disertakan dalam pemrograman java) yang sangat memudahkan dalam penggunaan oleh para pemrogram untuk membangun aplikasinya. Kelengkapan perpustakaan ini ditambah dengan keberadaan komunitas Java yang besar yang terus menerus membuat perpustakaan-perpustakaan baru untuk melingkupi seluruh kebutuhan pembangunan aplikasi.
  • Bergaya C++, memiliki sintaks seperti bahasa pemrograman [C++] sehingga menarik banyak pemrogram C++ untuk pindah ke Java. Saat ini pengguna Java sangat banyak, sebagian besar adalah pemrogram C++ yang pindah ke Java. Universitas-universitas di Amerika juga mulai berpindah dengan mengajarkan Java kepada murid-murid yang baru karena lebih mudah dipahami oleh murid dan dapat berguna juga bagi mereka yang bukan mengambil jurusan komputer.
  • Pengumpulan sampah otomatis, memiliki fasilitas pengaturan penggunaan memori sehingga para pemrogram tidak perlu melakukan pengaturan memori secara langsung (seperti halnya dalam bahasa C++ yang dipakai secara luas).

5.    Kelebihan Dari Java
Multiplatform. Kelebihan utama dari Java ialah dapat dijalankan di beberapa platform / sistem operasi komputer, sesuai dengan prinsip tulis sekali, jalankan di mana saja. Dengan kelebihan ini pemrogram cukup menulis sebuah program Java dan dikompilasi (diubah, dari bahasa yang dimengerti manusia menjadi bahasa mesin /bytecode) sekali lalu hasilnya dapat dijalankan di atas beberapa platform tanpa perubahan. Kelebihan ini memungkinkan sebuah program berbasis java dikerjakan diatas operating system Linux tetapi dijalankan dengan baik di atas Microsoft Windows. Platform yang didukung sampai saat ini adalah Microsoft Windows, Linux, Mac OSdan Sun Solaris. Penyebanya adalah setiap sistem operasi menggunakan programnya sendiri-sendiri (yang dapat diunduh dari situs Java) untuk meninterpretasikanbytecode tersebut.
OOP (Object Oriented Programming - Pemrogram Berorientasi Objek) yang artinya semua aspek yang terdapat di Java adalah Objek. Java merupakan salah satu bahasa pemrograman berbasis oebjek secara murni. Semua tipe data diturunkan dari kelas dasar yang disebut Object. Hal ini sangat memudahkan pemrogram untuk mendesain, membuat, mengembangkan dan mengalokasi kesalahan sebuah program dengan basis Java secara cepat, tepat, mudah dan terorganisir. Kelebihan ini menjadikan Java sebagai salah satu bahasa pemograman termudah, bahkan untuk fungsi fungsi yang advance seperti komunikasi antara komputer sekalipun. Perpustakaan Kelas Yang Lengkap, Java terkenal dengan kelengkapan library/perpustakaan (kumpulan program program yang disertakan dalam pemrograman java) yang sangat memudahkan dalam penggunaan oleh para pemrogram untuk membangun aplikasinya. Kelengkapan perpustakaan ini ditambah dengan keberadaan komunitas Java yang besar yang terus menerus membuat perpustakaan-perpustakaan baru untuk melingkupi seluruh kebutuhan pembangunan aplikasi. Bergaya C++, memiliki sintaks seperti bahasa pemrograman [C++] sehingga menarik banyak pemrogram C++ untuk pindah ke Java. Saat ini pengguna Java sangat banyak, sebagian besar adalah pemrogram C++ yang pindah ke Java. Universitas-universitas di Amerika juga mulai berpindah dengan mengajarkan Java kepada murid-murid yang baru karena lebih mudah dipahami oleh murid dan dapat berguna juga bagi mereka yang bukan mengambil jurusan komputer.
Pengumpulan sampah otomatis, memiliki fasilitas pengaturan penggunaan memori sehingga para pemrogram tidak perlu melakukan pengaturan memori secara langsung (seperti halnya dalam bahasa C++ yang dipakai secara luas).
6.        Kekurangan Dari Java
Tulis sekali, perbaiki di mana saja - Masih ada beberapa hal yang tidak kompatibel antara platform satu denganplatform lain. Untuk J2SE, misalnya SWT-AWT bridge yang sampai sekarang tidak berfungsi pada Mac OS X.
Mudah didekompilasi. Dekompilasi adalah proses membalikkan dari kode jadi menjadi kode sumber. Ini dimungkinkan karena koe jadi Java merupakan bytecodeyang menyimpan banyak atribut bahasa tingkat tinggi, seperti nama-nama kelas, metode, dan tipe data. Hal yang sama juga terjadi pada Microsoft .NET Platform. Dengan demikian, algoritma yang digunakan program akan lebih sulit disembunyikan dan mudah dibajak/direverse-engineer.

Penggunaan memori yang banyak. Penggunaan memori untuk program berbasis Java jauh lebih besar daripada bahasa tingkat tinggi generasi sebelumnya seperti C/C++ dan Pascal (lebih spesifik lagi, Delphi dan Object Pascal). Biasanya ini bukan merupakan masalah bagi pihak yang menggunakan teknologi terbaru (karena trend memori terpasang makin murah), tetapi menjadi masalah bagi mereka yang masih harus berkutat dengan mesin komputer berumur lebih dari 4 tahun.