KONSEP DASAR PEMOGRAMAN DAN KONSEP BAHAS
KONSEP DASAR PEMOGRAMAN DAN KONSEP
BAHASA PEMOGRAMAN
1. Pengenalan
Komputer adalah mesin yang dapat melaksanakan seperangkat perintah dasar (instruction
set). Agar komputer dapat melakukan sesuatu hal, harus diberikan perintah yang dapat
dilaksanakannya, yaitu dalam bentuk kumpulan perintah perintah dasar. Program komputer
adalah sekumpulan instruksi yang dikenal oleh komputer dan disusun menurut urutan yang
logis untuk menyelesaikan suatu masalah. Bahasa pemrograman adalah bahasa yang dapat
diterjemahkan menjadi kumpulan perintah-perintah dasar tersebut. Penerjemahan dilakukan oleh
program komputer yang disebut kompilator. Sintaks dari bahasa pemrograman lebih mudah
dipahami oleh manusia daripada sintaks perintah dasar. Namun tentu saja komputer hanya
dapat melaksanakan perintah dasar itu. Maka di sinilah peran penting kompilator sebagai
perantara antara bahasa pemrograman dengan perintah dasar. Kegiatan membuat program
komputer dengan menggunakan bahasa pemrograman disebut pemrograman komputer. Untuk
dapat membuat program komputer, harus dikuasai bahasa komputer. Berbagai bahasa
komputer telah diciptakan untuk membantu manusia memprogram komputer. Berdasarkan
tingkatannya dikenal beberapa tingkat bahasa pemrograman diantaranya:
Bahasa Pemrograman tingkat dasar seperti: Bahasa Mesin, Bahasa Assembley.
Bahasa Pemrograman tingkat tengah seperti: Bahasa C, Bahasa FORTH.
Bahasa Pemrograman tingkat tinggi seperti: Bahasa Pascal, FORTRAN, COBOL, dan lain-lain.
Bahasa pemgrogram tingkat dasar, sebagai hirarki pertama, disebut juga bahasa generasi
pertama, bahasa ini sangat tergantung pada jenis CPU yang dipakai oleh komputer itu. Bahasa
ini sangat sulit dipelajari, karena sifatnya yang sangat tergantung pada mesinnya itu (machine
dependent). Untuk menguasai bahasa ini, harus dipelajari dan dikuasai teknologi dan arsitektur
komputer, matematika diskrit, elektronika, dan lain-lain. Bahasa ini masih menggunakan simbolsimbol yang bersifat mnemonic.
Bahasa pemrograman tingkat tengah, sifatnya sudah lebih mudah daripada bahasa pemrograman
tingkat dasar, perintah-perintahnya sudah lebih mudah dibaca sebab sudah menggunakan hurufhuruf.
Bahasa pemrograman tingkat tinggi adalah bahasa komputer yang sudah mirip dengan bahasa
manusia. Perintah-perintahnya sudah dibuat dalam bahasa yang mudah dimengerti manusia,
seperti PRINT, WRITE, IF, THEN, ELSE, dan lain-lain.
Tahapan dalam Pemrograman
Langkah-langkah yang dilakukan dalam menyelesaikan masalah dalam pemrograman dengan
komputer adalah:
Defenisikan Masalah
Tentukan apa yang menjadi masalah
Tentukan data input yang diperlukan
Tentukan output yang diinginkan
Buat bagan dan struktur cara penyelesaian
Bagan secara global
Deskripsikan tugas masing-masing subprogram
Pilih Metode Penyelesaian
Pilih struktur data dan Algoritma terbaik
Pengkodean
Pilih bahasa pemrograman yang sesuai
Menterjemahkan algoritma ke bahasa pemrograman
Mencari Kesalahan
1.
2.
3.
Kesalahan sintaks (penulisan program)
Kesalahan Pelaksanaan: Semantik, Logika, dan ketelitian
Uji dan Verifikasi Program
Dokumentasi Program
Pemiliharaan Program
Memperbaiki kekurangan yang ditemukan kemudian
Memodifikasi, karena perubahan spesifikasi
3. Diagram Alir
Konsep pemrograman dapat digambarkan juga dengan menggunakan diagram alir (flowchart).
Diagram alir adalah simbol-simbol yang digunakan untuk menggambarkan sebuah pernyataan
logika pemrograman serta aliran logika yang ditunjukkan dengan arah panah. Ada dua jenis
diagram alir yaitu:
1. Diagram alir sistem yaitu bagan dengan simbol-simbol tertentu yang menggambarkan
urutan procedure dan proses suatu file dalam suatu media menjadi file di dalam media
lain, dalam suatu system pengolahan data.
2. Diagram alir program yaitu bagan dengan simbol-simbol tertentu yang menggambarkan
urutan proses dan hubungan antar proses secara mendetail di dalam suatu program.
Berikut merupakan beberapa contoh simbol yang disepakati oleh dunia pemrograman:
4. Syarat Program yang Baik
Program yang baik haruslah memenuhi beberapa kriteria, antara lain:
Program haruslah sesuai dengan tujuan dan memenuhi spesifikasi yang telah ditentukan.
Fleksibel
Tidak mengandung kesalahan
Didokumentasi secara baik
Cepat dalam waktu penggunaannya
Efesien dalam penggunaan memori computer.
KELEMAHAN DAN KELEBIHAN BAHASA PEMROGRAMAN
A. Bahasa C
Kelebihan Bahasa C
Bahasa C tersedia hampir di semua jenis computer
Kode bahasa C sifatnya adalah portable dan fleksible untuk semua jenis computer
Bahasa C hanya menyediakan sedikit kata-kata kunci, hanya terdapat 32 kata kunci
Proses executable program bahasa C lebih cepat
Dukungan pustaka yang banyak
C adalah bahasa yang terstruktur
Bahasa C termasuk bahasa tingkat menengah
Kekurangan Bahasa C
B.
Banyaknya operator serta fleksibilitas penulisan program kadang-kadang membingungkan
pemakai
Bagi pemula pada umumnya akan kesulitan menggunakan pointer
Bahasa Java
Kelebihan Bahasa Java:
Sederhana dan ampuh, java menyediakan sarana untuk membuat program (applet) yang
berjalan pada web browser. Programmer dapat menggunakan applet kecil yang aman,
dinamik, lintas platform, aktif dan siap dijalankan di jaringan.
Aman, java dirancang dengan konsep keamanan internet.
Berorientasi objek, java tidak diturunkan bahasa pemrogaman manapun. Java memiliki
keseimbangan yang menyediakan mekanisme peng-class-an sederhana dengan model
antarmuka dinamik yang intuitif hanya jika diperlukan.
Kokoh, java membatasi programmer dengan memberi kunci supaya progamer dapat
menemukan kesalahan lebih cepat saat mengembangkan program.
Interaktif, java dirancang untuk menciptakan program jaringan yang interaktif.
Netral terhadap berbagai arsitektur, java mampu berjalan dalam platform apapun seperti PC,
UNIX, Macintosh, dll.
Terinterpretasi dan berkinerja tinggi, java melengkapi keajaiban lintas platform yang luar
biasa dengan kompilasi ke dalam representasi langsung yang disebut java code byte yang
dapat diterjemahkan oleh system apapun yang memiliki java interpreter dan java virtual
machine.
Mudah dipelajari karena bersifat sederhana
Mendukung koneksi ke database
Kekurangan bahasa Java :
Java memiliki kecepatan yang kurang dari bahasa C ++
Implementasi J2ME tidak global. Misalnya, J2ME untuk Motorola dengan J2ME untuk Sony
Ericson tidak sama. Berbeda lagi J2ME untuk Nokia. Setiap produk selalu mempunyai modul
tersendiri yang dinilai aneh penerapannya dan harus di-compile dengan modul yang
berbeda-beda.
Java memakan banyak memori computer
Java merupakan bahasa yang kompleks dan susah dipelajari
Program yang dibuat oleh bahasa ini lebih lambat disbanding program yang dibuat dengan
bahasa lain seperti C atau C++.
C. Bahasa Pascal
Kelebihan bahasa pascal :
Tipe data standar, tipe-tipe data standar yang telah tersedia bahasa pemrogaman. Pascal
memiliki tipe data standar Boolean, integer, char, real, string.
User defined data types, programmer dapat membuat tipe data lain yang diturunkan dari
tipe data standar.
Strongly-typed, programmer harus menentukan tipe data dari suatu variable dan variable
tersebut tidak dapat dipergunakan untuk menyimpan tipe data selain format yang
ditentukan.
Terstruktur, memiliki sintaks yang memungkinkan penulisan program dipecah menjadi fungsifungsi kecil (procedur dan function) yang dapat dipergunakan berulang-ulang.
Sederhana dan ekspresif, memiliki struktur yang sederhana dan sangat mendekati bahasa
manusia (bahasa inggris) sehingga mudah dipelajari dan dipahami.
Kekurangan bahasa pascal :
Versi awal Pascal kurang cocok untuk aplikasi bisnis karena dukungan basisdata yang
terbatas.
Sintaks Pascal terlalu bertele-tele
Tidak mendukung pemrograman berorientasi objek
Pascal tidak fleksibel dan banyak kekurangan yang dibutuhkan untuk membuat aplikasi yang
besar.
D. Bahasa PHP
Kelebihan PHP:
PHP menjadi popular karena kesederhanaannya dan kemampuannya dalam menghasilkan
berbagai aplikasi web seperti counter, system artikel/ CMS, e-commerce, bulletin board, dll
PHP adalah salah satu bahasa server-side yang didesain khusus untuk aplikasi web.
PHP termasuk dalam Open Source Product dan telah mencapai versi 4.
Aplikasi PHP cukup cepat dibandingkan dengan aplikasi CGI dengan Perl atau Phyton bahkan
lebih cepat disbanding dengan ASP maupun Java dalam berbagai aplikasi web
Tersedia baik di Windows maupun Linux, walau saat ini paling efektif di web server Apache
dan OS Linux
Sintaks mirip C dan mudah dipelajari
Komunitas yang ramai dan saling membantu, seperti
di diskusiweb.com, phpbuilder.com,phpindo.com, dll
Berbagai script atau aplikasi yang gratis telah tersedia.
Kekurangan :
Tidak detail untuk pengembangan skala besar
E.
Tidak memiliki system pemrogaman berorientasi objek yang sesungguhnya
Tidak bisa memisahkan antara tampilan dengan logic dengan baik
PHP memiliki kelemahan security tertentu apabila programmer tidak jeli dalam melakukan
pemrogaman dan kurang memperhatikan isu konfigurasi PHP.
Kode PHP dapat dibaca semua orang, dan kompilasi hanya dapat dilakukan dengan tool yang
mahal dari Zend
Bahasa Ruby
Kelebihan:
Sintaks sederhana
Memiliki Exception Handling yang baik
OOP
Single inheritance
Didukung oleh OS Linux, Windows, MacOS X, OS/2, BeOs, dan Unix.
Merupakan bahasa pemrograman scripting yang berorientasi objek
Memiliki garbage collector yang secara otomatis akan menghapus informasi tak terpakai dari
memori
Kelemahan :
F.
Multithreading. Implementasi thread di ruby masih berupa green thread, bukan native
thread. Hal ini membuat aplikasi GUI (desktop) dengan background thread tidak mungkin
diimplementasikan di ruby.
Virtual Memory, ruby masih fully interpreted sehingga program ruby cenderung lebih
lambat.
Spek. saat ini spesifikasi ruby (syntax, behaviour, dll) adalah implementasi ruby yang asli dari
matz.
IDE. Saat ini kualitas IDE untuk ruby masih jauh daripada .net dan java. Tapi dengan
bermunculnya IDE ruby yang dibuat dengan java.net, kondisinya agak berubah. Tapi karena
ruby bahasa yang sangat dinamis, sulit untuk bisa mendapatkan informasi secara lengkap
mengenai struktur sebuah program ruby secara statis.
Bahasa PROLOG
Kelebihan :
Berbeda dengan bahasa pemrograman yang lain, yang menggunakan algoritma konvensionl
sebagai teknik pencariannya seperti pada Delphi, Pascal, Basic, COBOL dan bahasa
pemrograman yang sejenisnya, maka prolog menggunakan teknik pencarian yang di
sebutheuristik (heutistic) dengan menggunakan pohon logika.
Melakukan komputasi rumit pada data yang kompleks.
Mengekpresikan algoritma dengan baik.
Mengalokasikan memori secara dinamis sehingga programmer tidak harus mendeklarasikan
ukuran sebuah struktur data sebelum membuatnya.
Mengembangkan dan memodifikasi dirinya sendiri sehingga sebuah program dapat “belajar”
melalui informasi yang didapat selama program dijalankan
PROLOG mempunyai Automated Reasoning Procedure (Prosedur Sebab-Akibat Otomatis)
yang disebut Inference Engine (Inference = proses pengambilan kesimpulan) yang sudah
built-in didalamnya. Akibatnya, program yang menggunakan logika sebab-akibat jadi lebih
mudah ditulis dalam PROLOG.
Kekurangan :
Pemborosan dalam pengalokasian memory sehingga program berjalan menjadi lambat
G. Bahasa Phyton
Kelebihan :
Tidak ada tahapan kompilasi dan penyambungan (link) sehingga kecepatan perubahan pada
masa pembuatan system aplikasi meningkat.
Tidak ada deklarasi tipe sehingga program menjadi lebih sederhana, singkat, dan fleksible.
Manajemen memori otomatis yaitu kumpulan sampah memori sehingga dapat menghindari
pencatatan kode
Tipe data dan operasi tingkat tinggi yaitu kecepatan pembuatan system aplikasi
menggunakan tipe objek yang telah ada
Pemrograman berorientasi objek
Pelekatan dan perluasan dalam C
Terdapat kelas, modul, eksepsi sehingga terdapat dukungan pemrograman skala besar secara
modular
Pemuatan dinamis modul C sehingga ekstensi menjadi sederhana dan berkas biner yang kecil
Pemuatan kembali secara dinamis modul phyton seperti memodifikasi aplikasi tanpa
menghentikannya
Model objek universal kelas Satu
Konstruksi pada saat aplikasi berjalan
Interaktif, dinamis dan alamiah
Akses hingga informasi interpreter
Portabilitas secara luas seperti pemrograman antar platform tanpa ports
Kompilasi untuk portable kode byte sehingga kecepatan eksekusi bertambah dan melindungi
kode sumber
Antarmuka terpasang untuk pelayanan keluar seperti perangkat Bantu system, GUI,
persistence, database, dll
Kekurangan:
Beberapa penugasan terdapat diluar dari jangkauan python, seperti bahasa pemrograman
dinamis lainnya, python tidak secepat atau efisien sebagai statis, tidak seperti bahasa
pemrograman kompilasi seperti bahasa C.
Disebabkan python merupakan interpreter, python bukan merupakan perangkat bantu
terbaik untuk pengantar komponen performa kritis.
Python tidak dapat digunakan sebagai dasar bahasa pemrograman implementasi untuk
beberapa komponen, tetapi dapat bekerja dengan baik sebagai bagian depan skrip
antarmuka untuk mereka.
Python memberikan efisiensi dan fleksibilitas tradeoff by dengan tidak memberikannya
secara menyeluruh. Python menyediakan bahasa pemrograman optimasi untuk kegunaan,
bersama dengan perangkat bantu yang dibutuhkan untuk diintegrasikan dengan bahasa
pemrograman lainnya.
H. Bahasa Cobol
Kelebihan :
Program COBOL dibuat dalam instruksi bahasa inggris, sehingga lebih mudah dipelajari dan
dibuat.
Program COBOL sesuai untuk pengolahan data yang banyak diterapkan pada permaslahan .
Program COBOL sifatnya standard, sehingga dapat dipergunakan pada komputer-komputer
yang berbeda, tanpa banyak perbedaan.
Struktur program COBOL jelas, sehingga dapat dimengerti oleh orang seperti akuntan,
auditor, atau manajer-manajer yang hanya mempunayai pengetahuan pengolahan data yang
sedikit.
COBOL menyediakan fasilitas Listing Program, bilamana perlu dapat diperiksa oleh orang lain
selain programer.
Mudah didokumentasikan dan dikembangkan bilamana perlu
Problem Orientad Language
Kekurangan :
I.
Operasi masukan dan keluaran yang masih kaku
Struktur penulisan program yang sangat kaku dan bertele-tele
Bahasa Basic
Kelebihan:
Bahasa Basic tergolong bahasa serbaguna dan dapat digunakan di aplikasi apa saja.
Kekurangan:
J.
Bahasanya kurang terstruktur
Tidak cocok untuk membuat aplikasi besar
Sintaksnya penuh dengan GOTO yang menyesatkan
Bahasa ini merupakan bahasa yang primitif di era DOS
Bahasa C++
Kelebihan:
Merupakan induk dari bahasa pemrograman perl, php, phyton, visual basic, gambas, java, C#
Compiler bahasa C++ terdapat di semua platform
Untuk pengembangan visual dijejali dengan platform yang sangat banyak seperti OWL, MFC,
Cocoa, QT, GTK, dll
Merupakan pemrograman berorientasi objek
Kekurangan:
Bahasa ini cukup sulit untuk dipel;ajari dan dipahami
Banyaknya operator serta fleksibilitas penulisan program kadang-kadang membingungkan
pemakai
Bagi pemula pada umumnya akan kesulitan menggunakan pointer
PARADIGMA PEMOGRAMAN
Paradigma adalah sudut pandang tertentu yang digunakan terhadap suatu problem, realitas, keadaan
dan sebagainya. Paradigma membatasi dan mengkondisikan jalan berpikir seseorang, mengarahkannya
terhadap beberapa atribut dan mengabaikan atribut lain, sehingga paradigma hanya memberikan
pandangan yang terbatas terhadap sebuah realitas.
Dalam pemrograman dikenal beberapa paradigma, yaitu:
1. Paradigma Pemrograman Prosedural atau Imperatif
Paradigma ini didasari oleh konsep mesin Von Newman (stored program concept) sekelompok tempat
penyimpanan (memori), yang dibedakan menjadi memori instruksi dan memori data, masing-masing
memori tersebut dapat diberi nama dan nilai, selanjutnya instruksi akan dieksekusi satu persatu secara
sekuensial oleh sebuah proses tunggal.
Program dalam paradigma ini berdasarkan pada struktur informasi di dalam memori dan manipulasi dari
informasi yang disimpan tersebut. Kata kunci yang sering digunakan dalam paradigma ini adalah:
Algoritma + Struktur Data = Program
Kelebihan dari paradigma ini adalah efisiensi eksekusi karena lebih dekat dengan konsep mesin,
kekurangannya adalah batasan yang sangat mengikat sehingga terkadang menyulitkan programmer
yang tidak terbiasa.
Contoh bahasa pemrogaman yang menggunakan paradigma prosedural atau imperatif adalah: Algol,
Pascal, Fortran, Basic, Cobol, C, dsb…
2. Paradigma Pemrograman Fungsional
Paradigma ini didasari oleh konsep pemetaan dan fungsi pada matematika, fungsi dapat berupa fungsi
”primitif”, atau komposisi dari fungsi-fungsi lain yang telah terdefinisi. Dalam paradigma ini, diasumsikan
bahwa akan selalu ada fungsi-fungsi dasar yang dapat digunakan, sehingga penyelesaian masalah
berdasarkan pada fungsi-fungsi yang telah tersedia tersebut. Jadi dasar pemecahan masalah adalah
transformasional, semua kelakuan program adalah suatu rantai transformasi dari sebuah keadaan awal
menuju ke suatu rantai keadaan akhir, yang mungkin melalui keadaan antara, melalui aplikasi fungsi.
Paradigma fungsional tidak mempermasalahkan memorisasi dan struktur data, tidak ada pemilahan
antara data dan program, tidak ada lagi pengertian tentang ”variabel”. Programmer tidak perlu tahu
bagaimana mesin mengeksekusi atau bagaimana informasi disimpan dalam memori, setiap fungsi
seperti ”kotak hitam”, yang perlu diperhatikan hanya keadaan awal dan akhir, sebuah program besar
dihasilkan dengan menggabungkan fungsi-fungsi yang telah tersedia. Kelebihannya program yang dibuat
lebih terstruktur dan lebih teliti, dan kekurangannya yaitu kinerja pengolahan program lebih lama dan
tidak begitu efisien, dan panjang pendek sintak menentukan kinerja program yang sedang dijalankan
Contoh bahasa pemrograman yang menggunakan paradigma fungsional adalah LOGO, APL dan LISP.
3. Paradigma Pemrograman Deklaratif, Predikatif atau
Lojik
Paradigma ini didasari atas pendefinisian relasi antar individu yang dinyatakan sebagai predikat. Sebuah
program lojik adalah kumpulan aksioma (Fakta dan aturan deduksi.
Dalam paradigma ini, programmer menguraikan sekumpulan fakta dan aturan-aturan (inference rules).
Ketika program dieksekusi, pemakai akan mengajukan pertanyaan, selanjutnya program akan
menggunakan aturan deduksi dan mencocokkan pertanyaan dengan fakta-fakta yang ada untuk
menjawab pertanyaan. Kelebihannya lebih mendeskripsikan apa yang progrsm kerjakan daripada
bagaimana program menyelesaikannya. Lalu kekurangannya memerlukan algoritma yang eksplisit.
Contoh bahasa pemrograman yang menggunakan paradigma ini adalah: Prolog.
4. Paradigma Berorientasi Object (Object Oriented)
Paradigma Pemrograman
Berorientasi
konsep class dan object, object adalah
mempunyai attribute dan method,
Objek
instansiasi
masing-masing object dapat
dari class,
berinteraksi
(OOP) menggunakan
setiap object akan
dengan object lainnya
meskipun berasal dari class yang berbeda.
mempunyai hirarki artinya sebuah class dapat diturunkan menjadi sebuah class baru yang juga memiliki
attribut dan method class diatasnya. Dengan begitu dalam paradigma ini dikenal konsep modularitas,
penggunaan kembali (reuse) serta kemudahan modifikasi. Kelebihannya yaitu dalam menggunakan
sebuah class tidak perlu berkali-kali, dapat menggunakan objek tanpa harus tahu teknis yang ada
didalam,data yang digunakan dalam bentuk private hanya bisa diakses oleh fungsi lokasi sehingga tidak
perlu khawatir untuk berperngaruh pada fungsi lainnya, memiliki sintak seperti bahasa C maupun C++,
kekurangannya yaitu memiliki memori lebih besar dibandingkan dengan program terstruktur.
Contoh bahasa pemrograman yang menggunakan paradigma ini adalah: Smalltalk, Eifel, Delphi, Java.
5. Paradigma Konkuren
Paradigma ini didasari oleah kenyataan bahwa dalam keadaan nyata, sebuah sistem komputer harus
menangani beberapa program (task) yang harus dieksekusi secara bersamaan dalam sebuah lingkungan
baik mono ataupunmulti processor. Dalam paradigma ini programmer tidak lagi berpikir sekuensial,
melainkan harus menangani komunikasi dan sikronisasi antar task.
Masing-masing paradigma tersebut mempunyai strategi analisa yang khusus untuk memecahkan
persoalan. Setiap paradigma mempunyai kekurangan dan kelebihan sehingga tidak semua persoalan
dapat dipecahkan dengan satu jenis paradigma, sehingga diperlukan analisis secara menyeluruh
terhadap persoalan yang akan diselesaikan sebelum menentukan paradigma pemrograman seperti apa
yang akan digunakan untuk menyelesaikan persoalan tersebut.
BAHASA PEMOGRAMAN
1. Pengenalan
Komputer adalah mesin yang dapat melaksanakan seperangkat perintah dasar (instruction
set). Agar komputer dapat melakukan sesuatu hal, harus diberikan perintah yang dapat
dilaksanakannya, yaitu dalam bentuk kumpulan perintah perintah dasar. Program komputer
adalah sekumpulan instruksi yang dikenal oleh komputer dan disusun menurut urutan yang
logis untuk menyelesaikan suatu masalah. Bahasa pemrograman adalah bahasa yang dapat
diterjemahkan menjadi kumpulan perintah-perintah dasar tersebut. Penerjemahan dilakukan oleh
program komputer yang disebut kompilator. Sintaks dari bahasa pemrograman lebih mudah
dipahami oleh manusia daripada sintaks perintah dasar. Namun tentu saja komputer hanya
dapat melaksanakan perintah dasar itu. Maka di sinilah peran penting kompilator sebagai
perantara antara bahasa pemrograman dengan perintah dasar. Kegiatan membuat program
komputer dengan menggunakan bahasa pemrograman disebut pemrograman komputer. Untuk
dapat membuat program komputer, harus dikuasai bahasa komputer. Berbagai bahasa
komputer telah diciptakan untuk membantu manusia memprogram komputer. Berdasarkan
tingkatannya dikenal beberapa tingkat bahasa pemrograman diantaranya:
Bahasa Pemrograman tingkat dasar seperti: Bahasa Mesin, Bahasa Assembley.
Bahasa Pemrograman tingkat tengah seperti: Bahasa C, Bahasa FORTH.
Bahasa Pemrograman tingkat tinggi seperti: Bahasa Pascal, FORTRAN, COBOL, dan lain-lain.
Bahasa pemgrogram tingkat dasar, sebagai hirarki pertama, disebut juga bahasa generasi
pertama, bahasa ini sangat tergantung pada jenis CPU yang dipakai oleh komputer itu. Bahasa
ini sangat sulit dipelajari, karena sifatnya yang sangat tergantung pada mesinnya itu (machine
dependent). Untuk menguasai bahasa ini, harus dipelajari dan dikuasai teknologi dan arsitektur
komputer, matematika diskrit, elektronika, dan lain-lain. Bahasa ini masih menggunakan simbolsimbol yang bersifat mnemonic.
Bahasa pemrograman tingkat tengah, sifatnya sudah lebih mudah daripada bahasa pemrograman
tingkat dasar, perintah-perintahnya sudah lebih mudah dibaca sebab sudah menggunakan hurufhuruf.
Bahasa pemrograman tingkat tinggi adalah bahasa komputer yang sudah mirip dengan bahasa
manusia. Perintah-perintahnya sudah dibuat dalam bahasa yang mudah dimengerti manusia,
seperti PRINT, WRITE, IF, THEN, ELSE, dan lain-lain.
Tahapan dalam Pemrograman
Langkah-langkah yang dilakukan dalam menyelesaikan masalah dalam pemrograman dengan
komputer adalah:
Defenisikan Masalah
Tentukan apa yang menjadi masalah
Tentukan data input yang diperlukan
Tentukan output yang diinginkan
Buat bagan dan struktur cara penyelesaian
Bagan secara global
Deskripsikan tugas masing-masing subprogram
Pilih Metode Penyelesaian
Pilih struktur data dan Algoritma terbaik
Pengkodean
Pilih bahasa pemrograman yang sesuai
Menterjemahkan algoritma ke bahasa pemrograman
Mencari Kesalahan
1.
2.
3.
Kesalahan sintaks (penulisan program)
Kesalahan Pelaksanaan: Semantik, Logika, dan ketelitian
Uji dan Verifikasi Program
Dokumentasi Program
Pemiliharaan Program
Memperbaiki kekurangan yang ditemukan kemudian
Memodifikasi, karena perubahan spesifikasi
3. Diagram Alir
Konsep pemrograman dapat digambarkan juga dengan menggunakan diagram alir (flowchart).
Diagram alir adalah simbol-simbol yang digunakan untuk menggambarkan sebuah pernyataan
logika pemrograman serta aliran logika yang ditunjukkan dengan arah panah. Ada dua jenis
diagram alir yaitu:
1. Diagram alir sistem yaitu bagan dengan simbol-simbol tertentu yang menggambarkan
urutan procedure dan proses suatu file dalam suatu media menjadi file di dalam media
lain, dalam suatu system pengolahan data.
2. Diagram alir program yaitu bagan dengan simbol-simbol tertentu yang menggambarkan
urutan proses dan hubungan antar proses secara mendetail di dalam suatu program.
Berikut merupakan beberapa contoh simbol yang disepakati oleh dunia pemrograman:
4. Syarat Program yang Baik
Program yang baik haruslah memenuhi beberapa kriteria, antara lain:
Program haruslah sesuai dengan tujuan dan memenuhi spesifikasi yang telah ditentukan.
Fleksibel
Tidak mengandung kesalahan
Didokumentasi secara baik
Cepat dalam waktu penggunaannya
Efesien dalam penggunaan memori computer.
KELEMAHAN DAN KELEBIHAN BAHASA PEMROGRAMAN
A. Bahasa C
Kelebihan Bahasa C
Bahasa C tersedia hampir di semua jenis computer
Kode bahasa C sifatnya adalah portable dan fleksible untuk semua jenis computer
Bahasa C hanya menyediakan sedikit kata-kata kunci, hanya terdapat 32 kata kunci
Proses executable program bahasa C lebih cepat
Dukungan pustaka yang banyak
C adalah bahasa yang terstruktur
Bahasa C termasuk bahasa tingkat menengah
Kekurangan Bahasa C
B.
Banyaknya operator serta fleksibilitas penulisan program kadang-kadang membingungkan
pemakai
Bagi pemula pada umumnya akan kesulitan menggunakan pointer
Bahasa Java
Kelebihan Bahasa Java:
Sederhana dan ampuh, java menyediakan sarana untuk membuat program (applet) yang
berjalan pada web browser. Programmer dapat menggunakan applet kecil yang aman,
dinamik, lintas platform, aktif dan siap dijalankan di jaringan.
Aman, java dirancang dengan konsep keamanan internet.
Berorientasi objek, java tidak diturunkan bahasa pemrogaman manapun. Java memiliki
keseimbangan yang menyediakan mekanisme peng-class-an sederhana dengan model
antarmuka dinamik yang intuitif hanya jika diperlukan.
Kokoh, java membatasi programmer dengan memberi kunci supaya progamer dapat
menemukan kesalahan lebih cepat saat mengembangkan program.
Interaktif, java dirancang untuk menciptakan program jaringan yang interaktif.
Netral terhadap berbagai arsitektur, java mampu berjalan dalam platform apapun seperti PC,
UNIX, Macintosh, dll.
Terinterpretasi dan berkinerja tinggi, java melengkapi keajaiban lintas platform yang luar
biasa dengan kompilasi ke dalam representasi langsung yang disebut java code byte yang
dapat diterjemahkan oleh system apapun yang memiliki java interpreter dan java virtual
machine.
Mudah dipelajari karena bersifat sederhana
Mendukung koneksi ke database
Kekurangan bahasa Java :
Java memiliki kecepatan yang kurang dari bahasa C ++
Implementasi J2ME tidak global. Misalnya, J2ME untuk Motorola dengan J2ME untuk Sony
Ericson tidak sama. Berbeda lagi J2ME untuk Nokia. Setiap produk selalu mempunyai modul
tersendiri yang dinilai aneh penerapannya dan harus di-compile dengan modul yang
berbeda-beda.
Java memakan banyak memori computer
Java merupakan bahasa yang kompleks dan susah dipelajari
Program yang dibuat oleh bahasa ini lebih lambat disbanding program yang dibuat dengan
bahasa lain seperti C atau C++.
C. Bahasa Pascal
Kelebihan bahasa pascal :
Tipe data standar, tipe-tipe data standar yang telah tersedia bahasa pemrogaman. Pascal
memiliki tipe data standar Boolean, integer, char, real, string.
User defined data types, programmer dapat membuat tipe data lain yang diturunkan dari
tipe data standar.
Strongly-typed, programmer harus menentukan tipe data dari suatu variable dan variable
tersebut tidak dapat dipergunakan untuk menyimpan tipe data selain format yang
ditentukan.
Terstruktur, memiliki sintaks yang memungkinkan penulisan program dipecah menjadi fungsifungsi kecil (procedur dan function) yang dapat dipergunakan berulang-ulang.
Sederhana dan ekspresif, memiliki struktur yang sederhana dan sangat mendekati bahasa
manusia (bahasa inggris) sehingga mudah dipelajari dan dipahami.
Kekurangan bahasa pascal :
Versi awal Pascal kurang cocok untuk aplikasi bisnis karena dukungan basisdata yang
terbatas.
Sintaks Pascal terlalu bertele-tele
Tidak mendukung pemrograman berorientasi objek
Pascal tidak fleksibel dan banyak kekurangan yang dibutuhkan untuk membuat aplikasi yang
besar.
D. Bahasa PHP
Kelebihan PHP:
PHP menjadi popular karena kesederhanaannya dan kemampuannya dalam menghasilkan
berbagai aplikasi web seperti counter, system artikel/ CMS, e-commerce, bulletin board, dll
PHP adalah salah satu bahasa server-side yang didesain khusus untuk aplikasi web.
PHP termasuk dalam Open Source Product dan telah mencapai versi 4.
Aplikasi PHP cukup cepat dibandingkan dengan aplikasi CGI dengan Perl atau Phyton bahkan
lebih cepat disbanding dengan ASP maupun Java dalam berbagai aplikasi web
Tersedia baik di Windows maupun Linux, walau saat ini paling efektif di web server Apache
dan OS Linux
Sintaks mirip C dan mudah dipelajari
Komunitas yang ramai dan saling membantu, seperti
di diskusiweb.com, phpbuilder.com,phpindo.com, dll
Berbagai script atau aplikasi yang gratis telah tersedia.
Kekurangan :
Tidak detail untuk pengembangan skala besar
E.
Tidak memiliki system pemrogaman berorientasi objek yang sesungguhnya
Tidak bisa memisahkan antara tampilan dengan logic dengan baik
PHP memiliki kelemahan security tertentu apabila programmer tidak jeli dalam melakukan
pemrogaman dan kurang memperhatikan isu konfigurasi PHP.
Kode PHP dapat dibaca semua orang, dan kompilasi hanya dapat dilakukan dengan tool yang
mahal dari Zend
Bahasa Ruby
Kelebihan:
Sintaks sederhana
Memiliki Exception Handling yang baik
OOP
Single inheritance
Didukung oleh OS Linux, Windows, MacOS X, OS/2, BeOs, dan Unix.
Merupakan bahasa pemrograman scripting yang berorientasi objek
Memiliki garbage collector yang secara otomatis akan menghapus informasi tak terpakai dari
memori
Kelemahan :
F.
Multithreading. Implementasi thread di ruby masih berupa green thread, bukan native
thread. Hal ini membuat aplikasi GUI (desktop) dengan background thread tidak mungkin
diimplementasikan di ruby.
Virtual Memory, ruby masih fully interpreted sehingga program ruby cenderung lebih
lambat.
Spek. saat ini spesifikasi ruby (syntax, behaviour, dll) adalah implementasi ruby yang asli dari
matz.
IDE. Saat ini kualitas IDE untuk ruby masih jauh daripada .net dan java. Tapi dengan
bermunculnya IDE ruby yang dibuat dengan java.net, kondisinya agak berubah. Tapi karena
ruby bahasa yang sangat dinamis, sulit untuk bisa mendapatkan informasi secara lengkap
mengenai struktur sebuah program ruby secara statis.
Bahasa PROLOG
Kelebihan :
Berbeda dengan bahasa pemrograman yang lain, yang menggunakan algoritma konvensionl
sebagai teknik pencariannya seperti pada Delphi, Pascal, Basic, COBOL dan bahasa
pemrograman yang sejenisnya, maka prolog menggunakan teknik pencarian yang di
sebutheuristik (heutistic) dengan menggunakan pohon logika.
Melakukan komputasi rumit pada data yang kompleks.
Mengekpresikan algoritma dengan baik.
Mengalokasikan memori secara dinamis sehingga programmer tidak harus mendeklarasikan
ukuran sebuah struktur data sebelum membuatnya.
Mengembangkan dan memodifikasi dirinya sendiri sehingga sebuah program dapat “belajar”
melalui informasi yang didapat selama program dijalankan
PROLOG mempunyai Automated Reasoning Procedure (Prosedur Sebab-Akibat Otomatis)
yang disebut Inference Engine (Inference = proses pengambilan kesimpulan) yang sudah
built-in didalamnya. Akibatnya, program yang menggunakan logika sebab-akibat jadi lebih
mudah ditulis dalam PROLOG.
Kekurangan :
Pemborosan dalam pengalokasian memory sehingga program berjalan menjadi lambat
G. Bahasa Phyton
Kelebihan :
Tidak ada tahapan kompilasi dan penyambungan (link) sehingga kecepatan perubahan pada
masa pembuatan system aplikasi meningkat.
Tidak ada deklarasi tipe sehingga program menjadi lebih sederhana, singkat, dan fleksible.
Manajemen memori otomatis yaitu kumpulan sampah memori sehingga dapat menghindari
pencatatan kode
Tipe data dan operasi tingkat tinggi yaitu kecepatan pembuatan system aplikasi
menggunakan tipe objek yang telah ada
Pemrograman berorientasi objek
Pelekatan dan perluasan dalam C
Terdapat kelas, modul, eksepsi sehingga terdapat dukungan pemrograman skala besar secara
modular
Pemuatan dinamis modul C sehingga ekstensi menjadi sederhana dan berkas biner yang kecil
Pemuatan kembali secara dinamis modul phyton seperti memodifikasi aplikasi tanpa
menghentikannya
Model objek universal kelas Satu
Konstruksi pada saat aplikasi berjalan
Interaktif, dinamis dan alamiah
Akses hingga informasi interpreter
Portabilitas secara luas seperti pemrograman antar platform tanpa ports
Kompilasi untuk portable kode byte sehingga kecepatan eksekusi bertambah dan melindungi
kode sumber
Antarmuka terpasang untuk pelayanan keluar seperti perangkat Bantu system, GUI,
persistence, database, dll
Kekurangan:
Beberapa penugasan terdapat diluar dari jangkauan python, seperti bahasa pemrograman
dinamis lainnya, python tidak secepat atau efisien sebagai statis, tidak seperti bahasa
pemrograman kompilasi seperti bahasa C.
Disebabkan python merupakan interpreter, python bukan merupakan perangkat bantu
terbaik untuk pengantar komponen performa kritis.
Python tidak dapat digunakan sebagai dasar bahasa pemrograman implementasi untuk
beberapa komponen, tetapi dapat bekerja dengan baik sebagai bagian depan skrip
antarmuka untuk mereka.
Python memberikan efisiensi dan fleksibilitas tradeoff by dengan tidak memberikannya
secara menyeluruh. Python menyediakan bahasa pemrograman optimasi untuk kegunaan,
bersama dengan perangkat bantu yang dibutuhkan untuk diintegrasikan dengan bahasa
pemrograman lainnya.
H. Bahasa Cobol
Kelebihan :
Program COBOL dibuat dalam instruksi bahasa inggris, sehingga lebih mudah dipelajari dan
dibuat.
Program COBOL sesuai untuk pengolahan data yang banyak diterapkan pada permaslahan .
Program COBOL sifatnya standard, sehingga dapat dipergunakan pada komputer-komputer
yang berbeda, tanpa banyak perbedaan.
Struktur program COBOL jelas, sehingga dapat dimengerti oleh orang seperti akuntan,
auditor, atau manajer-manajer yang hanya mempunayai pengetahuan pengolahan data yang
sedikit.
COBOL menyediakan fasilitas Listing Program, bilamana perlu dapat diperiksa oleh orang lain
selain programer.
Mudah didokumentasikan dan dikembangkan bilamana perlu
Problem Orientad Language
Kekurangan :
I.
Operasi masukan dan keluaran yang masih kaku
Struktur penulisan program yang sangat kaku dan bertele-tele
Bahasa Basic
Kelebihan:
Bahasa Basic tergolong bahasa serbaguna dan dapat digunakan di aplikasi apa saja.
Kekurangan:
J.
Bahasanya kurang terstruktur
Tidak cocok untuk membuat aplikasi besar
Sintaksnya penuh dengan GOTO yang menyesatkan
Bahasa ini merupakan bahasa yang primitif di era DOS
Bahasa C++
Kelebihan:
Merupakan induk dari bahasa pemrograman perl, php, phyton, visual basic, gambas, java, C#
Compiler bahasa C++ terdapat di semua platform
Untuk pengembangan visual dijejali dengan platform yang sangat banyak seperti OWL, MFC,
Cocoa, QT, GTK, dll
Merupakan pemrograman berorientasi objek
Kekurangan:
Bahasa ini cukup sulit untuk dipel;ajari dan dipahami
Banyaknya operator serta fleksibilitas penulisan program kadang-kadang membingungkan
pemakai
Bagi pemula pada umumnya akan kesulitan menggunakan pointer
PARADIGMA PEMOGRAMAN
Paradigma adalah sudut pandang tertentu yang digunakan terhadap suatu problem, realitas, keadaan
dan sebagainya. Paradigma membatasi dan mengkondisikan jalan berpikir seseorang, mengarahkannya
terhadap beberapa atribut dan mengabaikan atribut lain, sehingga paradigma hanya memberikan
pandangan yang terbatas terhadap sebuah realitas.
Dalam pemrograman dikenal beberapa paradigma, yaitu:
1. Paradigma Pemrograman Prosedural atau Imperatif
Paradigma ini didasari oleh konsep mesin Von Newman (stored program concept) sekelompok tempat
penyimpanan (memori), yang dibedakan menjadi memori instruksi dan memori data, masing-masing
memori tersebut dapat diberi nama dan nilai, selanjutnya instruksi akan dieksekusi satu persatu secara
sekuensial oleh sebuah proses tunggal.
Program dalam paradigma ini berdasarkan pada struktur informasi di dalam memori dan manipulasi dari
informasi yang disimpan tersebut. Kata kunci yang sering digunakan dalam paradigma ini adalah:
Algoritma + Struktur Data = Program
Kelebihan dari paradigma ini adalah efisiensi eksekusi karena lebih dekat dengan konsep mesin,
kekurangannya adalah batasan yang sangat mengikat sehingga terkadang menyulitkan programmer
yang tidak terbiasa.
Contoh bahasa pemrogaman yang menggunakan paradigma prosedural atau imperatif adalah: Algol,
Pascal, Fortran, Basic, Cobol, C, dsb…
2. Paradigma Pemrograman Fungsional
Paradigma ini didasari oleh konsep pemetaan dan fungsi pada matematika, fungsi dapat berupa fungsi
”primitif”, atau komposisi dari fungsi-fungsi lain yang telah terdefinisi. Dalam paradigma ini, diasumsikan
bahwa akan selalu ada fungsi-fungsi dasar yang dapat digunakan, sehingga penyelesaian masalah
berdasarkan pada fungsi-fungsi yang telah tersedia tersebut. Jadi dasar pemecahan masalah adalah
transformasional, semua kelakuan program adalah suatu rantai transformasi dari sebuah keadaan awal
menuju ke suatu rantai keadaan akhir, yang mungkin melalui keadaan antara, melalui aplikasi fungsi.
Paradigma fungsional tidak mempermasalahkan memorisasi dan struktur data, tidak ada pemilahan
antara data dan program, tidak ada lagi pengertian tentang ”variabel”. Programmer tidak perlu tahu
bagaimana mesin mengeksekusi atau bagaimana informasi disimpan dalam memori, setiap fungsi
seperti ”kotak hitam”, yang perlu diperhatikan hanya keadaan awal dan akhir, sebuah program besar
dihasilkan dengan menggabungkan fungsi-fungsi yang telah tersedia. Kelebihannya program yang dibuat
lebih terstruktur dan lebih teliti, dan kekurangannya yaitu kinerja pengolahan program lebih lama dan
tidak begitu efisien, dan panjang pendek sintak menentukan kinerja program yang sedang dijalankan
Contoh bahasa pemrograman yang menggunakan paradigma fungsional adalah LOGO, APL dan LISP.
3. Paradigma Pemrograman Deklaratif, Predikatif atau
Lojik
Paradigma ini didasari atas pendefinisian relasi antar individu yang dinyatakan sebagai predikat. Sebuah
program lojik adalah kumpulan aksioma (Fakta dan aturan deduksi.
Dalam paradigma ini, programmer menguraikan sekumpulan fakta dan aturan-aturan (inference rules).
Ketika program dieksekusi, pemakai akan mengajukan pertanyaan, selanjutnya program akan
menggunakan aturan deduksi dan mencocokkan pertanyaan dengan fakta-fakta yang ada untuk
menjawab pertanyaan. Kelebihannya lebih mendeskripsikan apa yang progrsm kerjakan daripada
bagaimana program menyelesaikannya. Lalu kekurangannya memerlukan algoritma yang eksplisit.
Contoh bahasa pemrograman yang menggunakan paradigma ini adalah: Prolog.
4. Paradigma Berorientasi Object (Object Oriented)
Paradigma Pemrograman
Berorientasi
konsep class dan object, object adalah
mempunyai attribute dan method,
Objek
instansiasi
masing-masing object dapat
dari class,
berinteraksi
(OOP) menggunakan
setiap object akan
dengan object lainnya
meskipun berasal dari class yang berbeda.
mempunyai hirarki artinya sebuah class dapat diturunkan menjadi sebuah class baru yang juga memiliki
attribut dan method class diatasnya. Dengan begitu dalam paradigma ini dikenal konsep modularitas,
penggunaan kembali (reuse) serta kemudahan modifikasi. Kelebihannya yaitu dalam menggunakan
sebuah class tidak perlu berkali-kali, dapat menggunakan objek tanpa harus tahu teknis yang ada
didalam,data yang digunakan dalam bentuk private hanya bisa diakses oleh fungsi lokasi sehingga tidak
perlu khawatir untuk berperngaruh pada fungsi lainnya, memiliki sintak seperti bahasa C maupun C++,
kekurangannya yaitu memiliki memori lebih besar dibandingkan dengan program terstruktur.
Contoh bahasa pemrograman yang menggunakan paradigma ini adalah: Smalltalk, Eifel, Delphi, Java.
5. Paradigma Konkuren
Paradigma ini didasari oleah kenyataan bahwa dalam keadaan nyata, sebuah sistem komputer harus
menangani beberapa program (task) yang harus dieksekusi secara bersamaan dalam sebuah lingkungan
baik mono ataupunmulti processor. Dalam paradigma ini programmer tidak lagi berpikir sekuensial,
melainkan harus menangani komunikasi dan sikronisasi antar task.
Masing-masing paradigma tersebut mempunyai strategi analisa yang khusus untuk memecahkan
persoalan. Setiap paradigma mempunyai kekurangan dan kelebihan sehingga tidak semua persoalan
dapat dipecahkan dengan satu jenis paradigma, sehingga diperlukan analisis secara menyeluruh
terhadap persoalan yang akan diselesaikan sebelum menentukan paradigma pemrograman seperti apa
yang akan digunakan untuk menyelesaikan persoalan tersebut.