Bahasa pemrograman, atau sering diistilahkan juga dengan bahasa komputer atau bahasa pemrograman komputer, adalah
instruksi standar untuk memerintah komputer. Bahasa pemrograman ini
merupakan suatu himpunan dari aturan sintaks 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 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 seperti matematika.
Pemrograman
adalah sebuah seni dalam menggunakan satu atau lebih algoritma
yang saling berhubungan dengan menggunakan sebuah bahasa pemrograman tertentu 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 teknik telah 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
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 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.
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 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 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 Serikat 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).
·
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 pada Mac 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.
Exception dapat 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 melakukan
dispose(). 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
multiplatform
serta 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();
}
}
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 tambahan sekolah
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 melihat si 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 dua dan hewan
berkaki empat. Ketika hewan berkaki dua melakukan method makan maka
yang dilakukan adalah makan dengan paruhnya, dan ketika hewan berkaki empat
juga makan maka dia akan menggunakan mulutnya. Keduanya melakukan aksi
yang sama yaitu makan akan 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.
Pseudocode
Pseudo-code merupakan deskripsi tingkat tinggi informal dan ringkas atas algoritma 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 .
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 dan perbandingan) 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.
- Metode serakah. Sebuah algoritma serakah mirip
dengan sebuah Pemrograman 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).
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 :
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 :
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.