Posted by : Agung Hudya Suad
Kamis, 31 Oktober 2013
Pemrograman Dasar
Bahasa pemrograman
Bahasa pemrograman, atau sering diistilahkan juga dengan bahasa
komputeratau bahasa pemrograman
komputer, adalah instruksi standar untuk memerintahkomputer.
Bahasa pemrograman ini merupakan suatu himpunan dari aturansintaks dan semantik yang
dipakai untuk mendefinisikan program
komputer. Bahasa ini memungkinkan seorang programmer dapat menentukan
secara persis data mana yang akan diolah oleh komputer, bagaimana data ini akan
disimpan/diteruskan, dan jenis langkah apa
secara persis yang akan diambil dalam berbagai situasi.
Menurut tingkat kedekatannya dengan mesin komputer, bahasa
pemrograman terdiri dari:
Bahasa Mesin, yaitu memberikan perintah kepada komputer
dengan memakai kode bahasa biner, contohnya 01100101100110
Bahasa Tingkat Rendah, atau dikenal dengan istilah bahasa
rakitan (bah.Inggris Assembly), yaitu memberikan perintah kepada komputer dengan
memakai kode-kode singkat (kode mnemonic), contohnya MOV, SUB, CMP, JMP,
JGE, JL, LOOP, dsb.
Bahasa Tingkat Menengah, yaitu bahasa komputer yang memakai
campuran instruksi dalam kata-kata bahasa manusia (lihat contoh Bahasa Tingkat
Tinggi di bawah) dan instruksi yang bersifat simbolik, contohnya {, }, ?,
<<, >>, &&, ||, dsb.
Bahasa Tingkat Tinggi, yaitu bahasa komputer yang memakai
instruksi berasal dari unsur kata-kata bahasa manusia, contohnya begin, end,
if, for, while, and, or, dsb.
Sebagian besar bahasa pemrograman digolongkan sebagai Bahasa
Tingkat Tinggi, hanya bahasa C yang digolongkan sebagai Bahasa Tingkat Menengah
dan Assembly yang merupakan Bahasa Tingkat Rendah.
Tingkatan Bahasa Pemrograman
Bahasa Tingkat Tinggi
Merupakan bahasa tingkat tinggi yang mempunyai ciri-ciri
mudah dimengerti karena kedekatannya terhadap bahasa sehari – hari. Sebuah
pernyataan program diterjemahkan kepada sebuah atau beberapa mesin dengan
menggunakan compiler.Sebagai contoh adalah Contohnya bahasa Basic, Visual
Basic, Pascal, Java dan lainnya.
Bahasa Tingkat Menengah
Disebut tingkat menengah karena bisa masuk ke dalam bahasa
tingkat tinggi maupun rendah. Contohnya bahasa C.
Bahasa Tingkat Rendah
Bahasa pemrograman generasi pertama. Bahasa jenis ini sangat
sulit dimengerti karena instruksinya menggunakan bahasa mesin. Disebut juga
dengan bahasa assembly merupakan bahasa dengan pemetaan satu –
persatu terhadap instruksi komputer. Setiap intruksi assembly diterjemahkan
dengan menggunakan assembler.
Proses Pembuatan Program
Proses Pembuatan Program
Proses pembuatan program yaitu kita menulis kode sumber pada
teks editor misalnya notepad kemudian mengubahnya menjadi bahasa mesin yang
bisa dieksekusi oleh CPU. Proses pengubahan kode sumber (source code) menjadi
bahasa mesin (machine language) ini terdiri dari dua macam yaitu kompilasi dan
interpretasi.
Kompilasi (Compilation)
Dalam proses kompilasi semua kode sumber dibaca terlebih
dahulu dan jika tidak ada kesalahan dalam menulis program maka akan dibentuk
kode mesinnya sehingga program bisa dijalankan. Program yang melakukan tugas
ini disebut Compiler. Program hasil kompilasi akan berbentuk executable.
Program bisa langsung dijalankan tanpa harus memiliki Compiler di komputer yang
menjalankan program tersebut. Bahasa yang menggunakan teknik kompilasi misalnya
bahasa C, C++, Pascal, Assembly dan masih banyak lagi.
Interpretasi (Interpretation)
Bahasa yang menggunakan teknik interpretasi akan membaca
kode sumber perbaris dan dieksekusi perbaris. Jika ditemukan kesalahan dalam
penulisan program maka di baris kesalahan itulah program akan dihentikan.
Program yang melakukan tugas ini disebut Interpreter. Pada teknik interpretasi
tidak ada akan dihasilkan program standalone, artinya untuk menjalankan program
kita harus mempunyai kode sumbernya sekaligus interpreter program tersebut.
Bahasa yang menggunakan teknik interpretasi misalnya bahasa Perl, Python, Ruby
dan masih banyak lagi.
Kompilasi Sekaligus Interpretasi
Ada juga bahasa pemrograman yang menghasilkan programnya
dengan teknik kompilasi sekaligus interpretasi. Misalnya bahasa java. Dalam
pembuatan program java kode sumber diubah menjadi bytecode. Meskipun nampak
seperti bahasa mesin namun ini bukanlah bahasa mesin dan tidak executable.
Untuk menjalankan bytecode tersebut kita membutuhkan Java Runtime Environment
(JRE) yang bertugas sebagai interpreter sehingga menghasilkan program dari
bytecode tersebut.
Meskipun setiap bahasa pemrograman dibuat untuk membuat program namun setiap bahasa dibuat dengan tujuan dan fungsi yang berbeda-beda. Misalnya untuk membuat driver hardware kita tidak bisa menggunakan bahasa Visual Basic. Untuk membuat program berbasis sistem seperti driver kita bisa gunakan bahasa C atau Assembly. Contohnya sistem operasi linux yang open source. Jika anda melihat kode sumbernya anda akan menemukan bahwa linux dibuat menggunakan bahasa C. Sedangkan untuk pemrograman desktop kita bisa menggunakan Visual Basic. Bahasa tersebut dirancang oleh Microsoft untuk pemrograman desktop dengan tampilan GUI yang memukau.
Pemrograman
Pemrograman adalah proses menulis, menguji dan
memperbaiki (debug), dan memelihara kode yang membangun sebuah program komputer. Kode
ini ditulis dalam berbagai bahasa pemrograman. Tujuan dari pemrograman
adalah untuk memuat suatu program yang dapat melakukan suatu perhitungan atau
'pekerjaan' sesuai dengan keinginan si pemrogram (programmer). Untuk dapat
melakukan pemrograman, diperlukan keterampilan dalam algoritma, logika, bahasa pemrograman, dan di banyak kasus,
pengetahuan-pengetahuan lain sepertimatematika.
Pemrograman adalah sebuah seni dalam menggunakan satu atau
lebih algoritmayang
saling berhubungan dengan menggunakan sebuah bahasa pemrogramantertentu sehingga menjadi
sebuah program komputer. Bahasa pemrograman yang berbeda mendukung
gaya pemrograman yang berbeda pula. Gaya pemrograman ini biasa disebut paradigma pemrograman.
Apakah memprogram perangkat lunak lebih merupakan seni, ilmu, atau tekniktelah lama
diperdebatkan. Pemrogram yang baik biasanya mengkombinasikan tiga hal tersebut,
agar dapat menciptakan program yang efisien, baik dari sisi waktu berjalan (run
time), atau memori.
Pemrograman Kompetitif
Pemrograman adalah bahan yang banyak digunakan di berbagai
kompetisi komputer di Indonesia maupun dunia. Di tingkat SMA, contohnya,
pemrograman dipertandingkan dalam Olimpiade Sains Nasional setiap
tahunnya. Ketigapuluh peraih medali di Olimpiade Sains Nasional ini kemudian
menjadi Tim Olimpiade Komputer Indonesia,
dan menempuh Pelatihan Nasional yang
menyeleksi empat orang wakil untuk mengikuti Olimpiade
Sains Internasional bidang Informasi(International Olympiad in Informatics)
yang diadakan setiap tahunnya.
Sejarah pemrograman
Mekanisme Antikythera dari Yunani kuno adalah kalkulator
menggunakan persneling dari berbagai ukuran dan konfigurasi untuk menentukan
operasi, yang dilacak siklus Metonik masih digunakan di bulan-ke-surya
kalender, dan yang konsisten untuk menghitung tanggal olimpiade . Al-Jazari
dibangun Automata diprogram pada tahun 1206. Salah satu sistem yang digunakan
dalam perangkat ini adalah penggunaan pasak dan Cams ditempatkan ke drum kayu
di lokasi tertentu, yang secara berurutan akan memicu tuas yang pada gilirannya
dioperasikan instrumen perkusi. Output dari perangkat ini adalah drumer kecil
bermain berbagai ritme dan pola drum. The Jacquard Loom, Joseph Marie Jacquard
yang dikembangkan pada tahun 1801, menggunakan serangkaian karton kartu dengan
menekan lubang di dalamnya. Pola lubang pola yang mewakili alat tenun harus
mengikuti menenun kain. Alat tenun bisa menghasilkan tenun yang sama sekali
berbeda dengan menggunakan kumpulan kartu yang berbeda. Charles Babbage
mengadopsi penggunaan kartu menekan sekitar tahun 1830 untuk mengendalikan
Analytical Engine. Program komputer pertama ditulis untuk Analytical Engine
oleh matematikawan Ada Lovelace untuk menghitung urutan Bilangan Bernoulli.
[Sintesis perhitungan numerik, operasi dan output telah ditentukan, bersama
dengan cara untuk mengatur dan masukan instruksi dengan cara yang relatif mudah
bagi manusia untuk hamil dan menghasilkan, menyebabkan perkembangan modern pemrograman
komputer. Pengembangan pemrograman komputer dipercepat melalui Revolusi
Industri. Pada akhir 1880-an, Herman Hollerith menemukan rekaman data pada
media yang kemudian dapat dibaca oleh mesin. Sebelum menggunakan mesin dibaca
dari media, di atas, telah untuk kontrol, bukan data. "Setelah beberapa
percobaan awal dengan kertas pita, ia menetap di kartu menekan ..." [8]
Untuk memproses kartu menekan ini, pertama kali dikenal sebagai "kartu
Hollerith" dia menciptakan tabulator, dan mesin keypunch. Ketiga
penemuannya dasar dari industri pengolahan informasi modern. Pada tahun 1896 ia
mendirikan Tabulating Machine Company (yang kemudian menjadi inti dari IBM).
Penambahan panel kontrol (plugboard) ke 1906 Tipe I Tabulator memungkinkannya
untuk melakukan pekerjaan yang berbeda tanpa harus secara fisik dibangun
kembali. Pada akhir 1940-an, ada berbagai mesin panel kontrol diprogram,
disebut catatan unit peralatan, untuk melakukan pengolahan data tugas.
Data dan instruksi dapat disimpan pada kartu punched eksternal,
yang disimpan dalam rangka dan disusun dalam deck. Penemuan arsitektur von
Neumann memungkinkan program komputer untuk disimpan dalam memori komputer.
Program awal harus susah payah dibuat dengan menggunakan instruksi (operasi
dasar) dari mesin tertentu, sering kali dalam notasi biner. Setiap model
komputer mungkin akan menggunakan instruksi yang berbeda (bahasa mesin) untuk
melakukan tugas yang sama. Kemudian, perakitan bahasa tersebut dikembangkan
yang memungkinkan programmer menentukan setiap instruksi dalam format teks,
singkatan memasukkan kode untuk setiap operasi, bukan menetapkan sebuah nomor
dan alamat dalam bentuk simbolik (misalnya, ADD X, JUMLAH). Memasuki sebuah
program dalam bahasa assembly biasanya lebih nyaman, lebih cepat, dan kurang rentan
terhadap kesalahan manusia daripada menggunakan bahasa mesin, tetapi karena
bahasa assembly adalah sedikit lebih dari satu notasi yang berbeda untuk bahasa
mesin, setiap dua mesin dengan instruksi yang berbeda set juga memiliki
perakitan yang berbeda bahasa. Pada tahun 1954, FORTRAN diciptakan, melainkan
tingkat pertama bahasa pemrograman tinggi untuk memiliki implementasi
fungsional, dibandingkan dengan hanya desain di atas kertas [9] [10] (Sebuah
bahasa tingkat tinggi adalah, dalam istilah yang sangat umum,. bahasa
pemrograman yang memungkinkan programmer untuk menulis program dalam istilah
yang lebih abstrak dari instruksi bahasa assembly, yaitu pada tingkat abstraksi
"lebih tinggi" daripada bahasa assembly.) Ini memungkinkan programmer
untuk menentukan perhitungan dengan memasukkan formula secara langsung
(misalnya Y = X * 2 + 5 * X + 9). Program teks, atau sumber, diubah menjadi
instruksi mesin menggunakan program khusus yang disebut kompilator, yang
diterjemahkan program FORTRAN ke dalam bahasa mesin. Bahkan, nama FORTRAN
adalah singkatan dari "Formula Translation". Banyak bahasa lainnya
dikembangkan, termasuk beberapa program untuk komersial, seperti COBOL. Program
itu sebagian besar masih masuk menggunakan kartu punched atau pita kertas.
(Lihat pemrograman komputer di era kartu punch). Pada akhir 1960-an, perangkat
penyimpanan data dan terminal komputer menjadi cukup murah bahwa program dapat
dibuat dengan mengetikkan langsung ke dalam komputer. Teks editor tersebut
dikembangkan yang memungkinkan perubahan dan perbaikan harus dilakukan jauh
lebih mudah dibandingkan dengan kartu berlubang. (Biasanya, kesalahan dalam
meninju kartu berarti bahwa kartu harus dibuang dan yang baru menekan untuk
menggantikannya.) Ketika waktu telah berkembang, komputer telah membuat
lompatan raksasa di bidang kekuatan prosesor. Ini telah membawa bahasa
pemrograman baru yang lebih disarikan dari hardware. Meskipun bahasa tingkat
tinggi biasanya dikenakan biaya overhead yang lebih besar, peningkatan
kecepatan komputer modern telah membuat penggunaan bahasa ini jauh lebih
praktis daripada di masa lalu. Bahasa ini semakin disarikan biasanya lebih
mudah untuk belajar dan memungkinkan programmer untuk mengembangkan aplikasi
jauh lebih efisien dan dengan kode sumber kurang. Namun, bahasa tingkat tinggi
masih praktis untuk beberapa program, seperti yang di mana tingkat rendah
kontrol perangkat keras diperlukan atau di mana kecepatan pemrosesan maksimum
adalah penting.
Sepanjang paruh kedua abad kedua puluh, pemrograman adalah
karier yang menarik di sebagian besar negara maju. Beberapa bentuk pemrograman
telah lepas pantai semakin tunduk pada outsourcing (impor perangkat lunak dan
jasa dari negara lain, biasanya dengan upah rendah), membuat keputusan karir
pemrograman di negara maju lebih rumit, sementara meningkatkan peluang ekonomi
di daerah kurang berkembang. Tidak jelas seberapa jauh kecenderungan ini akan
berlanjut dan seberapa dalam dampak akan programmer upah dan kesempatan.
Kata lain
Pemrograman adalah mengubah suatu masalah yang dapat
dimengerti oleh komputer dan dapat dipecahkan oleh komputer.
Persyaratan kualitas
Apapun pendekatan pengembangan perangkat lunak mungkin,
program akhir harus memenuhi beberapa sifat mendasar. Properti berikut adalah
di antara yang paling relevan:
Efisiensi / kinerja: jumlah sumber daya sistem program yang
mengkonsumsi waktu proses, ruang memori, perangkat bawahseperti disk, bandwidth
jaringan dan bahkan sampai batas tertentu interaksi dari pemakai): semakin
sedikit, semakin baik. Ini juga termasuk pembuangan benar beberapa sumber,
seperti membersihkan file-file sementara dan tidak adanya kebocoran
memori.
Reliabilitas: seberapa sering hasil dari sebuah program
sudah benar. Hal ini tergantung pada kebenaran konseptual algoritma, dan
pemrograman minimisasi kesalahan, seperti kesalahan dalam manajemen sumber daya
(misalnya, buffer overflows dan ras kondisi) dan kesalahan logika (seperti
pembagian dengan nol).
Kekokohan: seberapa baik program masalah mengantisipasi
bukan karena kesalahan programmer. Ini termasuk situasi seperti salah, tidak
pantas atau merusak data, tidak tersedianya sumber daya yang dibutuhkan seperti
memori, sistem operasi layanan dan koneksi jaringan, dan kesalahan pengguna.
Kegunaan: yang ergonomi sebuah program: kemudahan dengan
mana seseorang dapat menggunakan program untuk tujuan, atau dalam beberapa
kasus bahkan tujuan tak terduga. Isu-isu tersebut dapat membuat atau
menghancurkan kesuksesan bahkan tanpa masalah lain. Hal ini melibatkan berbagai
tekstual, grafis dan kadang-kadang elemen-elemen perangkat keras yang
meningkatkan kejelasan, intuitif, kekompakan dan kelengkapan program antarmuka
pengguna.
Portabilitas: kisaran perangkat keras komputer dan platform
sistem operasi yang kode sumber dari program dapat dikompilasi / ditafsirkan
dan lari. Hal ini tergantung pada perbedaan-perbedaan dalam fasilitas
pemrograman yang disediakan oleh platform yang berbeda, termasuk hardware dan
sistem operasi sumber daya, perilaku yang diharapkan dari hardware dan sistem
operasi, dan ketersediaan platform compiler tertentu (dan kadang-kadang
perpustakaan) untuk bahasa dari source code.
Kemampu-rawatan: kemudahan dengan sebuah program yang dapat
dimodifikasi oleh pengembang sekarang atau pada masa mendatang dalam rangka
untuk membuat perbaikan atau penyesuaian, memperbaiki bug dan lubang keamanan,
atau disesuaikan dengan lingkungan baru. Praktek yang baik selama pengembangan
awal membuat perbedaan dalam hal ini. Kualitas ini mungkin tidak secara
langsung jelas bagi pengguna akhir tetapi dapat secara signifikan memengaruhi
nasib sebuah program jangka panjang.
==Kompleksitas algoritma== [sunting]
Bidang akademik dan praktik teknik pemrograman komputer yang
baik terutama berkaitan dengan menemukan dan menerapkan algoritma yang paling
efisien untuk suatu masalah kelas. Untuk tujuan ini, algoritma diklasifikasikan
menjadi perintah dengan menggunakan apa yang disebut notasi Big O, O (n), yang
mengungkapkan penggunaan sumber daya, seperti waktu eksekusi atau pemakaian
memori, dalam hal ukuran sebuah input. Ahli programmer yang akrab dengan
berbagai mapan algoritma dan kompleksitas masing-masing dan menggunakan
pengetahuan ini untuk memilih algoritma yang paling cocok dengan keadaan.
Metodologi
Langkah pertama dalam sebagian besar proyek-proyek
pengembangan perangkat lunak formal adalah analisis persyaratan, diikuti dengan
pengujian untuk menentukan model nilai, pelaksanaan, dan kegagalan penghapusan
(debug). Terdapat banyak pendekatan yang berbeda untuk masing-masing tugas.
Salah satu pendekatan yang populer untuk analisis kebutuhan adalah Kasus
Gunakan analisis.
Teknik model populer meliputi Object-Oriented Analysis and
Design (OOAD) dan Model-Driven Architecture (MDA). The Unified Modeling
Language (UML) adalah sebuah notasi yang digunakan untuk kedua OOAD dan MDA.
Teknik yang sama digunakan untuk desain database adalah
Entity-Relationship Modeling (ER Modeling).
Pelaksanaan teknik termasuk bahasa imperatif
(object-oriented atau prosedural), fungsional bahasa, dan logika bahasa.
Mengukur pemakaian bahasa
Sangat sulit untuk menentukan apa yang paling populer bahasa
pemrograman modern. Beberapa bahasa yang sangat populer untuk jenis aplikasi
tertentu (misalnya, COBOL masih kuat di pusat data perusahaan, sering pada
mainframe besar, FORTRAN dalam aplikasi teknik, bahasa scripting dalam
pengembangan web, dan C dalam aplikasi embedded), sementara beberapa bahasa
teratur digunakan untuk menulis berbagai macam aplikasi.
Metode untuk mengukur popularitas bahasa pemrograman
meliputi: menghitung jumlah iklan lowongan pekerjaan yang menyebutkan bahasa
[10], jumlah buku-buku pengajaran bahasa yang dijual (overestimates ini
pentingnya bahasa baru), dan perkiraan jumlah baris yang ada kode yang ditulis
dalam bahasa (meremehkan ini jumlah pengguna bahasa bisnis seperti COBOL).
Debugging
Debugging adalah tugas yang sangat penting dalam proses
pengembangan perangkat lunak, karena program yang salah dapat memiliki
konsekuensi yang signifikan bagi penggunanya. Beberapa bahasa yang lebih rentan
terhadap beberapa jenis kesalahan karena mereka tidak memerlukan spesifikasi
kompiler untuk melakukan pengecekan sebanyak bahasa lainnya. Penggunaan alat
analisis statis dapat membantu mendeteksi beberapa kemungkinan masalah.
Debug sering dilakukan dengan IDE seperti Visual Studio,
NetBeans, dan Eclipse. Standalone debugger seperti gdb juga digunakan, dan ini
kurang sering menyediakan lingkungan visual, biasanya menggunakan baris
perintah.
Bahasa pemrograman
Bahasa pemrograman yang berbeda mendukung gaya pemrograman
yang berbeda (disebut paradigma pemrograman). Pilihan bahasa yang digunakan
adalah tunduk pada banyak pertimbangan, seperti kebijakan perusahaan,
kesesuaian untuk tugas, ketersediaan pihak ketiga paket, atau keinginan individunya.
Idealnya, bahasa pemrograman yang paling cocok untuk tugas yang dihadapi akan
dipilih. Trade-off dari ideal ini melibatkan cukup menemukan programmer yang
tahu bahasa untuk membangun sebuah tim, ketersediaan compiler untuk bahasa, dan
efisiensi dengan program-program yang ditulis dalam bahasa tertentu
mengeksekusi.
Beberapa bahasa pemrograman adalah:
Allen Downey, dalam bukunya How To Think Like A Computer Scientist, menulis:
Rincian terlihat berbeda dalam berbagai
bahasa, tetapi beberapa petunjuk dasar muncul di hampir setiap bahasa:
* Input: Get data
dari keyboard, file, atau beberapa perangkat lain.
* Output: Display
data pada layar atau mengirim data ke file atau perangkat lain.
* Berhitung:
Lakukan operasi aritmatika dasar seperti penjumlahan dan perkalian.
* Bersyarat
eksekusi: Periksa kondisi tertentu dan melaksanakan urutan sesuai pernyataan.
* Pengulangan:
Lakukan beberapa tindakan berulang-ulang, biasanya dengan beberapa variasi.
Banyak bahasa komputer menyediakan mekanisme untuk memanggil
fungsi yang disediakan oleh perpustakaan. Menyediakan fungsi-fungsi di perpustakaan
mengikuti konvensi runtime yang sesuai (misalnya, metode lewat argumen), maka
fungsi-fungsi ini dapat ditulis dalam bahasa lainnya.
Bahasa 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 menciptakanapplet 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.
Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk telepon genggam. Bahasa ini awalnya dibuat oleh James Gosling saat masih bergabung di Sun Microsystems saat ini merupakan bagian dari Oracle dan dirilis tahun 1995. Bahasa ini banyak mengadopsi sintaksis yang terdapat pada C dan C++ namun dengan sintaksis model objek yang lebih sederhana serta dukungan rutin-rutin aras bawah yang minimal. 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), dan secara khusus didisain untuk memanfaatkan dependensi implementasi seminimal mungkin. Karena fungsionalitasnya yang memungkinkan aplikasi java mampu berjalan di beberapa platform sistem operasi yang berbeda, java dikenal pula dengan slogannya, "Tulis sekali, jalankan di mana pun". Saat ini java merupakan bahasa pemrograman yang paling populer digunakan, dan secara luas dimanfaatkan dalam pengembangan berbagai jenis perangkat lunak aplikasi ataupun aplikasi berbasis web.
Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk telepon genggam. Bahasa ini awalnya dibuat oleh James Gosling saat masih bergabung di Sun Microsystems saat ini merupakan bagian dari Oracle dan dirilis tahun 1995. Bahasa ini banyak mengadopsi sintaksis yang terdapat pada C dan C++ namun dengan sintaksis model objek yang lebih sederhana serta dukungan rutin-rutin aras bawah yang minimal. 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), dan secara khusus didisain untuk memanfaatkan dependensi implementasi seminimal mungkin. Karena fungsionalitasnya yang memungkinkan aplikasi java mampu berjalan di beberapa platform sistem operasi yang berbeda, java dikenal pula dengan slogannya, "Tulis sekali, jalankan di mana pun". Saat ini java merupakan bahasa pemrograman yang paling populer digunakan, dan secara luas dimanfaatkan dalam pengembangan berbagai jenis perangkat lunak aplikasi ataupun aplikasi berbasis web.
Kelebihan
Multiplatform. Kelebihan utama dari Java ialah dapat
dijalankan di beberapa platform / sistem
operasi komputer, sesuai dengan prinsiptulis 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 OS dan Sun Solaris.
Penyebabnya adalah setiap sistem operasi menggunakan programnya sendiri-sendiri
(yang dapat diunduh dari situs Java) untuk meninterpretasikan bytecode tersebut.
OOP (Object
Oriented Programming - Pemrogram Berorientasi Objek)
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
Serikatjuga 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).
· java
merupakan bahasa yang sederhana. Java dirancang agar mudah dipelajari dan
digunakan secara efektif. Java tidak menyediakan fitur-fitur rumit bahasa
pemrograman tingkat tinggi, serta banyak pekerjaan pemrograman yang mulanya
harus dilakukan manual, sekarang digantikan dikerjakan Java secara otomatis
seperti dealokasi memori. Bagi pemrogram yang sudah mengenal bahasa C++ akan
cepat belajar susunan bahasa Java namun harus waspada karena mungkin Java
mengambil arah (semantiks) yang berbeda dibanding C++.
Kekurangan
Tulis sekali, jalankan di mana saja - Masih ada
beberapa hal yang tidak kompatibel antara platform satu
dengan platform lain. Untuk J2SE, misalnya SWT-AWT bridge yang
sampai sekarang tidak berfungsi padaMac OS X.
Mudah didekompilasi. Dekompilasi adalah proses membalikkan
dari kode jadi menjadi kode sumber. Ini dimungkinkan karena kode jadi Java
merupakan bytecode yang 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.
Java merupakan bahasa berorientasi objek (OOP) yaitu
cara ampuh dalam pengorganisasian dan pengembangan perangkat lunak. Pada OOP,
program komputer sebagai kelompok objek yang saling berinteraksi. Deskripsi
ringkas OOP adalah mengorganisasikan program sebagai kumpulan komponen, disebut
objek. Objek-objek ini ada secara independen, mempunyai aturan-aturan
berkomunikasi dengan objek lain dan untuk memerintahkan objek lain guna meminta
informasi tertentu atau meminta objek lain mengerjakan sesuatu. Kelas bertindak
sebagai modul sekaligus tipe. Sebagai tipe maka pada saat jalan, program
menciptakan objek-objek yang merupakan instan-instan kelas. Kelas dapat
mewarisi kelas lain. Java tidak mengijinkan pewarisan jamak namun menyelesaikan
kebutuhan pewarisan jamak dengan fasilitas antarmuka yang lebih elegan.
Seluruh objek diprogram harus dideklarasikan lebih dulu sebelum digunakan. Ini merupakan keunggulan Java yaitu Statically Typed. Pemaksaan ini memungkinkan kompilator Java menentukan dan melaporkan terjadinya pertentangan (ketidakkompatibelan) tipe yang merupakan barikade awal untuk mencegah kesalahan yang tidak perlu (seperti mengurangkan variabel bertipe integer dengan variabel bertipe string). Pencegahan sedini mungkin diharapkan menghasilkan program yang bersih. Kebaikan lain fitur ini adalah kode program lebih dapat dioptimasi untuk menghasilkan program berkinerja tinggi.
Java menggunakan model pengamanan tiga lapis (three-layer security model) untuk melindungi sistem dari untrusted Java code. Pertama, bytecode verifier membaca bytecode sebelum dijalankan dan menjamin bytecode memenuhi aturan-aturan dasar bahasa Java. Kedua, class loader menangani pemuatan kelas Java ke runtime interpreter. Ketiga, manajer keamanan menangani keamanan tingkat aplikasi dengan mengendalikan apakah program berhak mengakses sumber daya seperti sistem file, port jaringan, proses eksternal dan sistem window.
Platform independence adalah kemampuan program bekerja di sistem operasi yang berbeda. Bahasa Java merupakan bahasa yang secara sempurna tidak bergantung platform. Tipe variabel Java mempunyai ukuran sama di semua platform sehingga variabel bertipe integer berukuran sama tidak peduli dimana program java dikompilasi. Begitu telah tercipta file .class dengan menggunakan kompilator Java di platform manapun, maka file .class tersebut dapat dijalankan di platform manapun. Jadi “dimanapun dibuat, dimanapun dapat dijalankan”. Slogan ini biasa diringkas sebagai Write Once, Run Anywhere (WORA).
Java termasuk bahasa Multithreading. Thread adalah untuk menyatakan program komputer melakukan lebih dari satu tugas di satu waktu yang sama. Java menyediakan kelas untuk menulis program multithreaded, program mempunyai lebih dari satu thread eksekusi pada saat yang sama sehingga memungkinkan program menangani beberapa tugas secara konkuren.
Program Java melakukan garbage collection yang berarti program tidak perlu menghapus sendiri objek-objek yang tidak digunakan lagi. Fasilitas ini mengurangi beban pengelolaan memori oleh pemrogram dan mengurangi atau mengeliminasi sumber kesalahan terbesar yang terdapat di bahasa yang memungkinkan alokasi dinamis.
Java mempunyai mekanisme exception-handling yang ampuh. Exception-handling menyediakan cara untuk memisahkan antara bagian penanganan kesalahan dengan bagian kode normal sehingga menuntun ke struktur kode program yang lebih bersih dan menjadikan aplikasi lebih tegar. Ketika kesalahan yang serius ditemukan, program Java menciptakan exception. Exceptiondapat ditangkap dan dikelola program tanpa resiko membuat sistem menjadi turun.
Program Java mendukung native method yaitu fungsi ditulis di bahasa lain, biasanya C/C++. Dukungan native method memungkinkan pemrogram menulis fungsi yang dapat dieksekusi lebih cepat dibanding fungsi ekivalen di java. Native method secara dinamis akan di-link ke program java, yaitu diasosiasikan dengan program saat berjalan.
Selain itu keuntungan menggunakan bahasa pemrograman Java antara lain
memori pada Java secara otomatis dilengkapi garbage collector yang berfungsi mendealokasi memori yang tidak diperlukan. Tidak ada lagi upaya yang dilakukan pemrogram untuk melakukandispose(). Kita tidak lagi dibebani urusan korupsi memori. Java menerapkan array sebenarnya, menghilangkan keperluan aritmatika pointer yang berbahaya dan mudah menjadi salah. Menghilangkan pewarisan jamak (multiple inheritance) diganti fasilitas antarmuka. Dan mudah dijalankan diberbagai platform.
Grafical User Interface (GUI) adalah salah satu kemampuan Java dalam mendukung dan manajemen antarmuka berbasis grafis. Tampilan grafis yang akan ditampilkan terhubung dengan program serta tempat penyimpanan data. Elemen dasar di Java untuk penciptan tampilan berbasis grafis adalah dua paket yaitu AWT dan Swing. Abstract Windowing Toolkit (AWT), atau disebut juga “Another Windowing Toolkit”, adalah pustaka windowing bertujuan umum dan multiplatformserta menyediakan sejumlah kelas untuk membuat GUI di Java. Dengan AWT, dapat membuat window, menggambar, manipulasi gambar, dan komponen seperti Button, Scrollbar, Checkbox, TextField, dan menu pull-down.
Penggunaan komponen AWT ditandai dengan adanya instruksi : import java.awt.*; Swing merupakan perbaikan kelemahan di AWT. Banyak kelas swing menyediakan komponen alternatif terhadap AWT. Contohnya kelas JButton swing menyediakan fungsionalitas lebih banyak dibanding kelas Button. Selain itu komponen swing umumnya diawali dengan huruf “J”, misalnya JButton, JTextField, JFrame, JLabel, JTextArea, JPanel, dan sebagainya. Teknologi swing menggunakan dan memperluas gagasan-gagasan AWT. Sementara, penggunaan komponen Swing ditandai dengan adanya instruksi : import javax.swing.*;
Beberapa perbedaan AWT dan Swing, AWT merupakan komponen heavyweight (kelas berat) sedangkan Swing lightweight (kelas ringan). Swing memiliki lebih banyak komponen. Fasilitas Swing Look and Feel : Metal, Windows, Motif. Komponen Swing berdasar model-view, yaitu suatu cara pengembangan komponen dengan pemisahan penyimpanan dan penanganan data dari representasi visual data.
Bahasa pemrograman Java merupakan salah satu bahasa pemrograman yang umum digunakan untuk mengembangkan aplikasi basis data yang dibuat menggunakan MySQL.
Seluruh objek diprogram harus dideklarasikan lebih dulu sebelum digunakan. Ini merupakan keunggulan Java yaitu Statically Typed. Pemaksaan ini memungkinkan kompilator Java menentukan dan melaporkan terjadinya pertentangan (ketidakkompatibelan) tipe yang merupakan barikade awal untuk mencegah kesalahan yang tidak perlu (seperti mengurangkan variabel bertipe integer dengan variabel bertipe string). Pencegahan sedini mungkin diharapkan menghasilkan program yang bersih. Kebaikan lain fitur ini adalah kode program lebih dapat dioptimasi untuk menghasilkan program berkinerja tinggi.
Java menggunakan model pengamanan tiga lapis (three-layer security model) untuk melindungi sistem dari untrusted Java code. Pertama, bytecode verifier membaca bytecode sebelum dijalankan dan menjamin bytecode memenuhi aturan-aturan dasar bahasa Java. Kedua, class loader menangani pemuatan kelas Java ke runtime interpreter. Ketiga, manajer keamanan menangani keamanan tingkat aplikasi dengan mengendalikan apakah program berhak mengakses sumber daya seperti sistem file, port jaringan, proses eksternal dan sistem window.
Platform independence adalah kemampuan program bekerja di sistem operasi yang berbeda. Bahasa Java merupakan bahasa yang secara sempurna tidak bergantung platform. Tipe variabel Java mempunyai ukuran sama di semua platform sehingga variabel bertipe integer berukuran sama tidak peduli dimana program java dikompilasi. Begitu telah tercipta file .class dengan menggunakan kompilator Java di platform manapun, maka file .class tersebut dapat dijalankan di platform manapun. Jadi “dimanapun dibuat, dimanapun dapat dijalankan”. Slogan ini biasa diringkas sebagai Write Once, Run Anywhere (WORA).
Java termasuk bahasa Multithreading. Thread adalah untuk menyatakan program komputer melakukan lebih dari satu tugas di satu waktu yang sama. Java menyediakan kelas untuk menulis program multithreaded, program mempunyai lebih dari satu thread eksekusi pada saat yang sama sehingga memungkinkan program menangani beberapa tugas secara konkuren.
Program Java melakukan garbage collection yang berarti program tidak perlu menghapus sendiri objek-objek yang tidak digunakan lagi. Fasilitas ini mengurangi beban pengelolaan memori oleh pemrogram dan mengurangi atau mengeliminasi sumber kesalahan terbesar yang terdapat di bahasa yang memungkinkan alokasi dinamis.
Java mempunyai mekanisme exception-handling yang ampuh. Exception-handling menyediakan cara untuk memisahkan antara bagian penanganan kesalahan dengan bagian kode normal sehingga menuntun ke struktur kode program yang lebih bersih dan menjadikan aplikasi lebih tegar. Ketika kesalahan yang serius ditemukan, program Java menciptakan exception. Exceptiondapat ditangkap dan dikelola program tanpa resiko membuat sistem menjadi turun.
Program Java mendukung native method yaitu fungsi ditulis di bahasa lain, biasanya C/C++. Dukungan native method memungkinkan pemrogram menulis fungsi yang dapat dieksekusi lebih cepat dibanding fungsi ekivalen di java. Native method secara dinamis akan di-link ke program java, yaitu diasosiasikan dengan program saat berjalan.
Selain itu keuntungan menggunakan bahasa pemrograman Java antara lain
memori pada Java secara otomatis dilengkapi garbage collector yang berfungsi mendealokasi memori yang tidak diperlukan. Tidak ada lagi upaya yang dilakukan pemrogram untuk melakukandispose(). Kita tidak lagi dibebani urusan korupsi memori. Java menerapkan array sebenarnya, menghilangkan keperluan aritmatika pointer yang berbahaya dan mudah menjadi salah. Menghilangkan pewarisan jamak (multiple inheritance) diganti fasilitas antarmuka. Dan mudah dijalankan diberbagai platform.
Grafical User Interface (GUI) adalah salah satu kemampuan Java dalam mendukung dan manajemen antarmuka berbasis grafis. Tampilan grafis yang akan ditampilkan terhubung dengan program serta tempat penyimpanan data. Elemen dasar di Java untuk penciptan tampilan berbasis grafis adalah dua paket yaitu AWT dan Swing. Abstract Windowing Toolkit (AWT), atau disebut juga “Another Windowing Toolkit”, adalah pustaka windowing bertujuan umum dan multiplatformserta menyediakan sejumlah kelas untuk membuat GUI di Java. Dengan AWT, dapat membuat window, menggambar, manipulasi gambar, dan komponen seperti Button, Scrollbar, Checkbox, TextField, dan menu pull-down.
Penggunaan komponen AWT ditandai dengan adanya instruksi : import java.awt.*; Swing merupakan perbaikan kelemahan di AWT. Banyak kelas swing menyediakan komponen alternatif terhadap AWT. Contohnya kelas JButton swing menyediakan fungsionalitas lebih banyak dibanding kelas Button. Selain itu komponen swing umumnya diawali dengan huruf “J”, misalnya JButton, JTextField, JFrame, JLabel, JTextArea, JPanel, dan sebagainya. Teknologi swing menggunakan dan memperluas gagasan-gagasan AWT. Sementara, penggunaan komponen Swing ditandai dengan adanya instruksi : import javax.swing.*;
Beberapa perbedaan AWT dan Swing, AWT merupakan komponen heavyweight (kelas berat) sedangkan Swing lightweight (kelas ringan). Swing memiliki lebih banyak komponen. Fasilitas Swing Look and Feel : Metal, Windows, Motif. Komponen Swing berdasar model-view, yaitu suatu cara pengembangan komponen dengan pemisahan penyimpanan dan penanganan data dari representasi visual data.
Bahasa pemrograman Java merupakan salah satu bahasa pemrograman yang umum digunakan untuk mengembangkan aplikasi basis data yang dibuat menggunakan MySQL.
Pengertian OOP
OOP (Object Oriented Programming) adalah suatu metode
pemrograman yang berorientasi kepada objek. Tujuan dari OOP diciptakan adalah
untuk mempermudah pengembangan program dengan cara mengikuti model yang telah
ada di kehidupan sehari-hari. Jadi setiap bagian dari suatu permasalahan adalah
objek, nah objek itu sendiri merupakan gabungan dari beberapa objek yang lebih
kecil lagi. Saya ambil contoh Pesawat, Pesawat adalah sebuah objek. Pesawat itu
sendiri terbentuk dari beberapa objek yang lebih kecil lagi seperti mesin,
roda, baling-baling, kursi, dll. Pesawat sebagai objek yang terbentuk dari objek-objek
yang lebih kecil saling berhubungan, berinteraksi, berkomunikasi dan saling
mengirim pesan kepada objek-objek yang lainnya. Begitu juga dengan program,
sebuah objek yang besar dibentuk dari beberapa objek yang lebih kecil,
objek-objek itu saling berkomunikasi, dan saling berkirim pesan kepada objek
yang lain.
Dalam pemograman berorientasi Objek dikenal Ada
beberapa pengertian dasar yang harus kita ketahui yaitu:
1.Class, dimana class adalah merupakan penggambaran
dari sebuah objec atau benda,sifat objek, dan juga apa yang bisa dilakukan oleh
objek tersebut.
Sebagai contoh adalah pengambaran yang real dalam kehidupan
kita adalah tentang dunia transportasi. Tentunya kita semua mengetahui
bahwa sangatlah banyak jenis alat transportasi yang ada seperti motor,
mobil,pesawat terbang,kapal laut, dan lain sebagainya.Kemudian marilah kita
anggap berbagai alat transportasi tersebut sebagai suatu class. Maka
motor tentunya mempunyai no polisi,tahun pembuatan,merk dll demikian juga
dengan alat transportasi yang lainnya, oleh karenanya hal ini bisa disebut
sebagai properties. Selanjutnya motor itu sendiri bisa berjalan maju, berjalan
mundur,belok kiri, belok kanan yang mana kegiatan ini disebut method.
·
contoh :
public class ApaMotormu {
public static void main(String[] args){
Motor punyaku=new Motor();
punyaku.motorku();
}
}
public class ApaMotormu {
public static void main(String[] args){
Motor punyaku=new Motor();
punyaku.motorku();
}
}
2.Object, adalah merupakan suatu bentuk dari
class.
Kalau kita mengikuti analogi di atas, maka object dari class HEWAN
adalah Burung, KAMBING, AYAM, KUDA. Mereka adalah CONTOH dari class HEWAN.
Semua dari mereka adalah HEWAN yang mempunyai nama, kaki, Jenis makanan dst.
Dan bisa berlari, bersuara, berkembang biak dll.
contoh :
public class Peliharaanmu{
public static void main(String[] args){
Hewan punyaku=new Hewan();
punyaku.hewanku();
}
}
3.Inheritance, yaitu salah satu bentuk teknis untuk membuat
sebuah class lebih spesifik lagi.
Sebagai contoh dari kasus ini menurut analogi di atas.
Misalkan kita akan membuat class yang lebih spesifik dari ORANG yaitu
siswa/student. Maka class ini mempunyai properti tambahansekolah tempat
dia belajar. Akan tetapi, semua properti sebagai orang ada juga pada
class siswa ini.
Contoh:
Public Class ORANG_TUA
‘variabel untuk menampung nama bapak
Private XBapak As String
‘variabel untuk menampung nama ibu
Private XIbu As String
‘property (atribut/informasi) class
Public Property Nama_Bapak() As String
‘Get : hanya ijinkan akses data
Get
Return XBapak
End Get
‘Set : mengijinkan ubah data
Set(ByVal value As String)
XBapak = value
End Set
End Property
‘property (atribut/informasi) class
Public Property Nama_Ibu() As String
Get
Return XIbu
End Get
Set(ByVal value As String)
XIbu = value
End Set
End Property
End Class
Turunkan dengan inheritance :
Public Class ANAK_WANITA
‘membuat turunan dari base class
Inherits ORANG_TUA
Private XWanita As String
Private XUsia_W As String
Public Property Nama_Wanita() As String
Get
Return XWanita
End Get
Set(ByVal value As String)
XWanita = value
End Set
End Property
Public Property Usia_Wanita() As Byte
Get
Return XUsia_W
End Get
Set(ByVal value As Byte)
XUsia_W = value
End Set
End Property
End Class
4.Encapsulation, yaitu mengemas suatu objek sehingga pada
saat kita akan memakai objek tersebut kita tidak perlu lagi tahu tentang detail
bagaimana suatu action itu terjadi.
Contoh dalam hal ini, misal siswa (suatu object) sedang menulis
(method). Maka detail dari tentang cara siswa itu menulis (bagaimana otot
tangan itu bekerja untuk menulis, bagaimana sistem saraf pusat
memerintahkan untuk menulis) kita tidak perlu mengerti. Kita hanya melihatsi
siswa sedang menulis.
Contoh :
class Siswa
{
String nama;
String nim;
void isiData ( String namaku,String nimku )
{
nama = namaku;
nim = nimku;
}
String ambilNama()
{
return nama;
}
String ambilNim()
{
return nim;
}
}
public class Mahasiswa
{
public static void main ( String [] args)
{
Siswa mahasiswa_itn = new Siswa(); //membuat variable
instant
mahasiswa_itn.isiData(“Dina Damayanti”,”0412585″);
System.out.println( “Nama : ” + mahasiswa_itn.ambilNama());
System.out.println( “Nim : ” + mahasiswa_itn.ambilNim());
}
}
5.Polymorphism, yaitu suatu object bisa bertindak lain
terhadap message/method yang sama.
Misalkan kita punya satu class hewan dan
diturunkan menjadi dua class hewan berkaki duadan hewan berkaki empat.
Ketika hewan berkaki dua melakukan method makan maka yang dilakukan adalah
makan dengan paruhnya, dan ketika hewan berkaki empat juga makanmaka dia
akan menggunakan mulutnya. Keduanya melakukan aksi yang sama yaitu makanakan
tetapi perlakuannya lain..
Contoh :
class Binatang
{
public void info()
{
System.out.println(” Info tentang Hewan : “);
}
}
class Herbivora extends Binatang
{
public void info()
{
System.out.println (“Info pada herbivora: Memakan makanan
berupa tumbuh – tumbuhan”);
}
}
class Kelinci extends Herbivora
{
public void info()
{
System.out.println(“Info pada Kelinci: Memakan makanan
berupa wortel”);
}
}
public class Polimorfisme
{
public static void main(String[] args)
{
Herbivora herbivora;
Kelinci kelinciku;
Binatang hewan;
herbivora=new Herbivora();
kelinciku=new Kelinci();
hewan=herbivora;
hewan.info();
hewan=kelinciku;
hewan.info();
}
}
1.Karekteristik OOP
Karakteristik (ciri) suatu program termasuk dalam OOP, apabila terdapat Pembungkusan(Encapsulation), Polymorphisme, dan Turunan (Inheritance)
Baik, Mari Kita membahas apa yang saya sebutkan di atas satu persatu
1.2 Pembungkusan (Encapsulation)
Pembungkusan(Encapsulaton)merupakan suatu karakteristik OOP dimana program terbungkus menjadi satu) data (properti/field) dan perilaku (fungsi/method) artinya lebih memperhatikan aspek internal daripada aspek eksternal.
Contoh ; Di dalam sebuah program sering kita jumpai tombil Button Close (Sebagai Data), kemudian kita sisipkan Method System.exit(0) untuk keluar dari sistem Java.
1.3 Polymorphisme
Polymorphisme merupakan suatu karakteristik OO dimana objek yang berbeda dapat memakai method Polymorphisme dengan nama yang sama pada suatu kelas (class)
1.4 Turunan(Inheritance)
Turunan Merupakan Suatu Karakteristik OOP dimana suatu kelas (Parent Class/Base Class) yang dapat diturunkan ke kelas yang lain (child class/Derived class), sehingga kelas anak dapat memiliki data atau perilaku kelas orangtuanya.
Karakteristik (ciri) suatu program termasuk dalam OOP, apabila terdapat Pembungkusan(Encapsulation), Polymorphisme, dan Turunan (Inheritance)
Baik, Mari Kita membahas apa yang saya sebutkan di atas satu persatu
1.2 Pembungkusan (Encapsulation)
Pembungkusan(Encapsulaton)merupakan suatu karakteristik OOP dimana program terbungkus menjadi satu) data (properti/field) dan perilaku (fungsi/method) artinya lebih memperhatikan aspek internal daripada aspek eksternal.
Contoh ; Di dalam sebuah program sering kita jumpai tombil Button Close (Sebagai Data), kemudian kita sisipkan Method System.exit(0) untuk keluar dari sistem Java.
1.3 Polymorphisme
Polymorphisme merupakan suatu karakteristik OO dimana objek yang berbeda dapat memakai method Polymorphisme dengan nama yang sama pada suatu kelas (class)
1.4 Turunan(Inheritance)
Turunan Merupakan Suatu Karakteristik OOP dimana suatu kelas (Parent Class/Base Class) yang dapat diturunkan ke kelas yang lain (child class/Derived class), sehingga kelas anak dapat memiliki data atau perilaku kelas orangtuanya.
Pseudocode
Pseudo-code merupakan deskripsi tingkat tinggi informal
dan ringkas atasalgoritma pemrograman komputer yang menggunakan
konvensi struktural atas suatu bahasa pemrograman, dan ditujukan untuk dibaca
oleh manusia dan bukan oleh mesin. Kode palsu biasanya tidak menggunakan elemen
detail yang tidak diperlukan untuk kebutuhan pemahaman manusia atas suatu
algoritma, seperti deklarasi variabel, kode ataupun subrutin untuk sistem yang
bersifat spesifik. Bahasa pemrograman yang digunakan lebih diperbanyak dengan
deskripsi dalam bahasa natural atas sesuatu hal yang bersifat detail, atau
dengan menggunakan notasi matematis. Tujuan dari penggunaan kode-palsu adalah
untuk mempermudah manusia dalam pemahaman dibandingkan menggunakan bahasa
pemrograman yang umum digunakan, terlebih aspeknya yang ringkas serta tidak
bergantung pada suatu sistem tertentu merupakan prinsip utama dalam suatu
algoritma. Kode-palsu umumnya digunakan dalam buku-buku ataupun publikasi karya
ilmiah yang mendokumentasikan suatu algortima, dan juga dalam perencanaan
pengembangan program komputer, untuk membuat sketsa atas struktur sebuah
program sebelum program yang sesungguhnya ditulis.
Tidak ada satu pun standar yang berlaku atas kode-palsu,
sebuah program yang masih berupa kode-palsu tidak dapat dijalankan. Kode-palsu
menyerupai pula kerangka program (skeleton programs), termasuk dummy code,
yang bisa dikompilasi tanpa kesalahan. Diagram
alur dapat pula dimasukkan sebagai alternatif berbasis grafis sebuah
kode-palsu.
Seperti namanya , pseudocode umumnya tidak benar-benar
mematuhi aturan sintaks bahasa tertentu , tidak ada bentuk standar sistematis,
meskipun setiap penulis tertentu umumnya akan meminjam gaya dan sintaks ,
misalnya , struktur kontrol dari beberapa bahasa pemrograman konvensional .
Sumber sintaks populer termasuk Pascal , BASIC , C , C + + , Java , Lisp , dan
ALGOL . Deklarasi variabel biasanya dihilangkan . Fungsi panggilan dan blok
kode , seperti kode yang terkandung dalam satu lingkaran , sering diganti
dengan kalimat bahasa alami satu baris .
Tergantung pada penulis , pseudocode mungkin karena itu sangat bervariasi dalam gaya , dari imitasi hampir tepat dari bahasa pemrograman yang nyata pada satu ekstrim, dengan deskripsi mendekati prosa diformat pada yang lain .
Tergantung pada penulis , pseudocode mungkin karena itu sangat bervariasi dalam gaya , dari imitasi hampir tepat dari bahasa pemrograman yang nyata pada satu ekstrim, dengan deskripsi mendekati prosa diformat pada yang lain .
Contoh
<variable> = <expression>
if <condition>
do stuff
else
do other stuff
while <condition>
do stuff
for <variable> from <first value> to <last
value> by <step>
do stuff with variable
function <function name>(<arguments>)
do stuff with arguments
return something
<function name>(<arguments>)
// Function call
Pascal style pseudo code
procedure fizzbuzz
for i := 1 to 100 do
set print_number to true;
if i is divisible by 3 then
print
"Fizz";
set print_number to
false;
if i is divisible by 5 then
print
"Buzz";
set print_number to
false;
if print_number, print i;
print a newline;
end
C style pseudo code:
void function fizzbuzz
for (i = 1; i<=100; i++) {
set print_number to true;
if i is divisible by 3
print "Fizz";
set print_number
to false;
if i is divisible by 5
print "Buzz";
set print_number
to false;
if print_number, print i;
print a newline;
}
Fortran style pseudo code
program fizzbuzz
do i = 1 to 100
set print_number to true
if i is divisible by 3
print
"Fizz"
set
print_number to false
if i is divisible by 5
print
"Buzz"
set
print_number to false
if print_number, print i
print a newline
end do
Algoritma
Diagram Alur sering
digunakan untuk menggambarkan sebuah algoritma.
Dalam matematika dan komputasi, algoritma atau algoritme. ]merupakan
kumpulan perintah untuk menyelesaikan suatu masalah. Perintah-perintah ini
dapat diterjemahkan secara bertahap dari awal hingga akhir secara
sistematis dan logis.. Masalah tersebut dapat berupa apa saja, dengan catatan
untuk setiap masalah, ada kriteria kondisi awal yang harus dipenuhi sebelum
menjalankan algoritma. Algoritma akan dapat selalu berakhir untuk semua kondisi
awal yang memenuhi kriteria, dalam hal ini berbeda dengan heuristik.
Algoritma sering mempunyai langkah pengulangan (iterasi) atau
memerlukan keputusan (logika Boolean danperbandingan)
sampai tugasnya selesai.
Desain dan
analisis algoritma adalah suatu cabang khusus dalam ilmu
komputer yang mempelajari karakteristik dan performa dari suatu
algoritma dalam menyelesaikan masalah, terlepas dari implementasi algoritma tersebut.
Dalam cabang disiplin ini algoritma dipelajari secara abstrak, terlepas dari sistem
komputer atau bahasa pemrograman yang digunakan. Algoritma yang
berbeda dapat diterapkan pada suatu masalah dengan kriteria yang sama.
Kompleksitas dari suatu algoritma merupakan
ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk
menyelesaikan masalah. Secara informal, algoritma yang dapat menyelesaikan
suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah,
sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya
mempunyai kompleksitas yang tinggi.
Jenis-jenis Algoritma
Terdapat beragam klasifikasi algoritma dan setiap
klasifikasi mempunyai alasan tersendiri. Salah satu cara untuk melakukan
klasifikasi jenis-jenis algoritma adalah dengan memperhatikan paradigma dan
metode yang digunakan untuk mendesain algoritma tersebut. Beberapa paradigma
yang digunakan dalam menyusun suatu algoritma akan dipaparkan dibagian ini.
Masing-masing paradigma dapat digunakan dalam banyak algoritma yang berbeda.
Divide and Conquer, paradigma untuk membagi suatu
permasalahan besar menjadi permasalahan-permasalahan yang lebih kecil.
Pembagian masalah ini dilakukan terus menerus sampai ditemukan bagian masalah
kecil yang mudah untuk dipecahkan. Singkatnya menyelesaikan keseluruhan
masalah dengan membagi masalah besar dan kemudian memecahkan permasalahan-permasalahan
kecil yang terbentuk.
Dynamic programming,
paradigma pemrograman dinamik akan sesuai jika digunakan pada suatu masalah
yang mengandung sub-struktur yang
optimal (, dan mengandung beberapa bagian
permasalahan yang tumpang tindih . Paradigma ini sekilas terlihat
mirip dengan paradigmaDivide and Conquer, sama-sama mencoba untuk
membagi permasalahan menjadi sub permasalahan yang lebih kecil, tapi secara
intrinsik ada perbedaan dari karakter permasalahan yang dihadapi.
Metode serakah. Sebuah algoritma serakah mirip
dengan sebuahPemrograman dinamik,
bedanya jawaban dari submasalah tidak perlu diketahui dalam setiap tahap; dan
menggunakan pilihan "serakah" apa yang dilihat terbaik pada saat itu.
Algoritma adalah Sistim kerja komputer
memiliki brainware, hardware, dan software. Tanpa salah satu
dari ketiga sistim tersebut, komputer tidak akan berguna. Kita akan lebih fokus
pada softwarekomputer. Software terbangun atas susunan program
(silahkan baca mengenai pengertian program) dan syntax (cara
penulisan/pembuatan program). Untuk menyusun program atau syntax,
diperlukannya langkah-langkah yang sistematis dan logis untuk dapat
menyelesaikan masalah atau tujuan dalam proses pembuatan suatu software.
Maka,Algoritma berperan penting dalam penyusunan program
atau syntax tersebut.
Pengertian Algoritma adalah susunan yang logis dan
sistematis untuk memecahkan suatu masalah atau untuk mencapai tujuan tertentu.
Dalam dunia komputer, Algoritma sangat berperan penting dalam pembangunan
suatu software. Dalam dunia sehari-hari, mungkin tanpa kita sadari
Algoritma telah masuk dalam kehidupan kita.
Pengertian Algoritma adalah susunan yang logis dan
sistematis untuk memecahkan suatu masalah atau untuk mencapai tujuan tertentu.
Dalam dunia komputer, Algoritma sangat berperan penting dalam pembangunan
suatu software. Dalam dunia sehari-hari, mungkin tanpa kita sadari
Algoritma telah masuk dalam kehidupan kita.
Algoritma berbeda dengan Logaritma. Logaritma merupakan operasi Matematika yang merupakan kebalikan dari eksponen atau pemangkatan. Contoh Logaritma seperti bc= a ditulis sebagai blog a = c (b disebut basis).
Algoritma berbeda dengan Logaritma. Logaritma merupakan operasi Matematika yang merupakan kebalikan dari eksponen atau pemangkatan. Contoh Logaritma seperti bc= a ditulis sebagai blog a = c (b disebut basis).
Contoh nyata Algoritma dalam kehidupan sehari-hari
adalah "Cara Membuat Mie Instan". Berikut langkah-langkah cara
membuat mie instan:
1. Ambil goreng di dalam
lemari yang terletak di dapur.
2. Siapkan peralatan yang
diperlukan seperti panci, gunting, piring, serta sendok dan garpu.
3. Masukkan bumbu mie
instan pada piring
4. Hidupkan kompor,
kemudian tuangkan air kurang lebih tiga gelas air ke dalam panci kemudian
tunggu hingga air mendidih.
5. Masukkan mie instan ke
dalam air mendidih, lalu aduk dan tunggu hingga tiga menit.
6. Tiriskan air di dalam
panci, kemudian tuangkan mie pada piring.
7. Aduk mie agar bumbu
tercampur merata pada mie kemudian sajikan dengan keadaan hangat.
Kurang lebih di atas merupakan cara membuat mie instan.
Langkah-langkah di atas juga termasuk dalam Algoritma. Jadi perlu diingat bahwa
Algoritma tidak hanya diterapkan pada dunia komputasi, tetapi juga Algoritma
diterapkan dalam kehidupan sehari-hari.
Sedangkan dalam dunia komputasi, contoh penggunaan Algoritma
adalah dalam pembuatan program pada bahasa pemrograman seperti bahasa C, C#,
dan Visual Basic. Dengan syntax pada tiap bahasa pemrograman dan
Algoritma, maka akan tersusun program-program dan terlahirlah software.
Jadi intinya, Pengertian Algoritma adalah suatu
langkah/urutan yang logis dan sistematis untuk pemecahan suatu masalah atau
untuk mencapai tujuan yang diinginkan.
Flowchart
Flowchart atau bagan alur merupakan metode untuk
menggambarkan tahap-tahap penyelesaian masalah (prosedur), beserta aliran data
dengan simbol-simbol standar yang mudah dipahami. Dalam kehidupan sehari-hari,
flowchart banyak digunakan di pusat-pusat layanan seperti kantor pemerintahan,
bank, rumah sakit, organisasi masyarakat, dan perusahaan.
Tujuan utama penggunaan flowchart adalah untuk menyederhanakan rangkaian proses atau prosedur untuk memudahkan pemahaman pengguna terhadap informasi tersebut. Oleh karena itu, design sebuah flowchart harus ringkas, jelas, dan logis.
Symbol-symbol Flowchart :
Tujuan utama penggunaan flowchart adalah untuk menyederhanakan rangkaian proses atau prosedur untuk memudahkan pemahaman pengguna terhadap informasi tersebut. Oleh karena itu, design sebuah flowchart harus ringkas, jelas, dan logis.
Symbol-symbol Flowchart :
Berikut ini adalah contoh sebuah flowchart mengenai peminjaman buku di perpustakaan :
1. Siswa datang ke perpustakaan. Setelah memilih buku yang hendak dipinjam, siswa membawa buku tersebut ke petugas administrasi sambil menunjukkan kartu siswa. Jika syarat dipenuhi, siswa langsung menandatangani kartu (peminjaman) buku dan buku diserahkan kepada siswa tersebut. Namun jika persyaratan tidak dipenuhi (misal tidak membawa kartu siswa), maka ia tidak diperbolehkan meminjam buku.
Untuk memudahkan narasi tersebut, kita dapat meringkasnya dalam bentuk poin sebagai berikut :
- Siswa membawa buku yang akan dipinjam ke petugas administrasi sambil menunjukkan kartu siswa - Jika segala persyaratan dipenuhi, maka siswa menandatangani kartu buku
- Jika persyaratan tidak dipenuhi, siswa tersebut tidak
boleh meminjam buku.
Semua ketentuan diatas dapat dikonversikan dalam bentuk flowchart yang jauh lebih sederhana dan mudah dipahami seperti contoh berikut :
Semua ketentuan diatas dapat dikonversikan dalam bentuk flowchart yang jauh lebih sederhana dan mudah dipahami seperti contoh berikut :
Pengenalan Flowchart
Flowchart merupakan gambar atau bagan yang memperlihatkan
urutan dan hubungan antar proses beserta instruksinya. Gambaran ini dinyatakan
dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu.
Sedangkan hubungan antar proses digambarkan dengan garis penghubung.
Flowchart ini merupakan langkah awal pembuatan program.
Dengan adanya flowchart urutan poses kegiatan menjadi lebih jelas. Jika ada
penambahan proses maka dapat dilakukan lebih mudah. Setelah flowchart selesai
disusun, selanjutnya pemrogram (programmer) menerjemahkannya ke bentuk program
dengan bahsa pemrograman.
Simbol-simbol flowchart
Flowchart disusun dengan simbol-simbol. Simbol ini dipakai
sebagai alat bantu menggambarkan proses di dalam program. Simbol-simbol yang
dipakai antara lain :
Flow Direction symbol
Yaitu simbol yang digunakan untuk menghubungkan antara
simbol yang satu dengan simbol yang lain. Simbol ini disebut juga connecting
line.
Terminator Symbol
Yaitu simbol untuk permulaan (start) atau akhir (stop) dari
suatu kegiatan
Connector Symbol
Yaitu simbol untuk keluar – masuk atau penyambungan proses
dalam lembar / halaman yang sama.
Connector Symbol
Yaitu simbol untuk keluar – masuk atau penyambungan proses
pada lembar / halaman yang berbeda.
Processing Symbol
Simbol yang menunjukkan pengolahan yang dilakukan oleh
komputer
Simbol Manual Operation
Simbol yang menunjukkan pengolahan yang tidak dilakukan oleh
komputer
Simbol Decision
Simbol pemilihan proses berdasarkan kondisi yang ada.
Simbol Input-Output
Simbol yang menyatakan proses input dan output tanpa
tergantung dengan jenis peralatannya
Simbol Manual Input
Simbol untuk pemasukan data secara manual on-line keyboard
Simbol Preparation
Simbol untuk mempersiapkan penyimpanan yang akan digunakan
sebagai tempat pengolahan di dalam storage.
Simbol Predefine Proses
Simbol untuk pelaksanaan suatu bagian
(sub-program)/prosedure
Simbol Display
Simbol yang menyatakan peralatan output yang digunakan yaitu
layar, plotter, printer dan sebagainya.
Simbol disk and On-line Storage
Simbol yang menyatakan input yang berasal dari disk atau
disimpan ke disk.
Kaidah-kaidah pembuatan Flowchart
Dalam pembuatan flowchart tidak ada rumus atau patokan yang
bersifat mutlak. Karena flowchart merupakan gambaran hasil pemikiran dalam
menganalisa suatu masalah dengan komputer. Sehingga flowchart yang dihasilkan
dapat bervariasi antara satu pemrogram dengan pemrogram lainnya.
Namun secara garis besar, setiap pengolahan selalu terdiri
dari tiga bagian utama, yaitu;
1. Input
berupa bahan mentah
2. Proses
pengolahan
3. Output
berupa bahan jadi.
Untuk pengolahan data dengan komputer, dapat dirangkum
urutan dasar untuk pemecahan suatu masalah, yaitu;
· START:
berisi instruksi untuk persiapan perlatan yang diperlukan sebelum
menangani pemecahan masalah.
· READ: berisi
instruksi untuk membaca data dari suatu peralatan input.
· PROCESS: berisi
kegiatan yang berkaitan dengan pemecahan persoalan sesuai dengan data yang
dibaca.
· WRITE: berisi
instruksi untuk merekam hasil kegiatan ke perlatan output.
· END: mengakhiri
kegiatan pengolahan
Gambar berikut memperlihatkan flowchart dari kegiatan dasar
diatas.
Dari gambar flowchart di atas terlihat bahwa suatu flowchart
harus terdapat proses persiapan dan proses akhir. Dan yang menjadi topik dalam
pembahasan ini adalah tahap proses. Karena kegiatan ini banyak mengandung
variasi sesuai dengan kompleksitas masalah yang akan dipecahkan. Walaupun tidak
ada kaidah-kaidah yang baku dalam penyusunan flowchart, namun ada beberapa
anjuran yaitu:
· Hindari
pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya
proses menjadi singkat
· Penggambaran
flowchart yang simetris dengan arah yang jelas.
· Sebuah
flowchart diawali dari satu titik START dan diakhiri dengan END.