Kamis, 13 Desember 2012

Konsep Dasar Pemrograman


Konsep Dasar Pemrograman

Sebelum kita membuat suatu bahasa pemrograman, maka kita perlu mengetahui:

  1. Pemahaman masalah
  2. Solusi masalah
  3. Pemahaman tata bahasa (sintaks) bahasa pemrograman

Baru setelah itu dapat kita buat pemrograman, memakai bahasa pemrograman yang menurut kita paling sesuai menurut kebutuhan.
Contoh : Pascal, Cobol, untuk bisnis, Delphi, dll.

program adalah kumpulan instruksi yang digunakan untuk mengatur
komputer agar melakukan suatu tindakan tertentu. Tanpa program, komputer sesungguhnya tidak dapat berbuat apa-apa. Itulah sebabnya sering dikatakan bahwa komputer mencakup tiga aspek penting, yaitu berupa perangkat keras (hardware), perangkat lunak (software) yang dalam hal ini berupa program, perangkat akal (brainware) atau orang yang berperan dalam operasi komputer maupun pengembangan perangkat lunak (operator).

Program merupakan himpunan atau kumpulan instruksi yang dibuat oleh programmer atau suatu executable dari suatu software.


Pemrograman adalah suatu kumpulan urutan perintah ke komputer untuk
mengerjakan sesuatu, dimana instruksi tersebut menggunakan bahasa yang dimengerti oleh komputer atau yang dikenal dengan bahasa pemrograman.
Orang yang membuat program biasa disebut pemrogram (programmer). Adapun aktivitas yang berhubungan dengan pembuatan program dinamakan pemrograman (programing).

Pemrograman adalah suatu kumpulan urutan perintah ke komputer untuk mengerjakan sesuatu, dimana instruksi tersebut menggunakan bahasa yang dimengerti oleh komputer atau yang dikenal dengan bahasa pemrograman.


Bahasa Pemrograman merupakan prosedur atau tata cara penulisan program. Pada bahasa pemrograman terdapat dua factor penting, yaitu sintaks dan semantik.

Fungsi Bahasa Pemrograman adalah sebagai media untuk menyusun dan memahami serta sebagai alat komunikasi antara pemrogram dengan komputer.

Secara umum terdapat 4 kelompok Bahasa Pemrograman, yaitu :

1.       Object Oriented Language (Visual dBase, Visual FoxPro, Delphi, Visual C)
2.       High Level Language (seperti Pascal dan Basic)
3.       Middle Level Language (seperti bahasa C), dan
4.       Low Level Language (seperti bahasa Assembly)

Tipe Pemrograman ada 7 macam, yaitu :

  1. Pemrograman Prosedural
Algoritma berisi urutan langkah-langkah penyelesaian masalah. Ini berarti algoritma adalah proses yang prosedural.

Definisi prosedural adalah :
a.       Tahap-tahap kegiatan untuk menyelesaikan suatu aktivitas
b.      Metode langkah demi langkah secara eksak dalam memecahkan suatu masalah.

Bahasa tingkat tinggi seperti Cobol, Basic, Pascal, Fortran dan C mendukung kegiatan pemrograman prosedural, karena itu mereka dinamakan juga bahasa prosedural.

  1. Pemrograman Terstruktur
Pemrograman terstruktur adalah bahasa pemrograman yang mendukung pembuatan program sebagai kumpulan prosedur. Prosedur-prosedur ini dapat saling memanggil dan dipanggil dari manapun dalam program dan dapat mengunakan parameter yang berbeda-beda untuk setiap pemanggilan. Bahasa pemrograman terstruktur adalah pemrograman yang mendukung abstraksi data, pengkodean terstruktur dan kontrol program terstruktur.
Contoh bahasa pemrograman terstruktur : Pascal, Cobol, RPG, ADA, C.

  1. Pemrograman Modular
Dalam pemrograman modular, program dipecah-pecah ke dalam modul-modul, dimana setiap modul menunjukkan fungsi dan tugas tunggal. Dengan membagi masalah ke dalam modul-modul, maka masalah akan menjadi sederhana sehingga program dapat lebih mudah disusun dan dipahami.
Pemrograman modular diterapkan dengan menggunakan sub-routine, yaitu sebuah kumpulan perintah yang melakukan tugas pemrosesan yang terbatas. Pemrograman ini banyak dimanfaatkan oleh Bahasa Pemrograman Berbasis Obyek.

  1. Pemrograman Fungsional
Disebut bahasa pemrograman fungsional karena memang pada program seluruh kodenya berupa fungsi-fungsi. Bahasa pemrograman fungsional merupakan salah satu bahasa pemrograman yang memperlakukan proses komputasi sebagai evaluasi fungsi-fungsi matematika.
Contoh : Lisp, Scheme, ML, Haskell.

  1. Pemrograman Berorientasi Obyek
Obyek : elemen yang memiliki fungsi, metode, karakteristik tertentu yang dapat dibedakan dalam dunia nyata.
Class : kumpulan obyek-obyek yang memiliki kesamaan karakteristik.
    • Merupakan bahasa pemrograman yang mampu memanfaatkan obyek-obyek yang tersedia atau membuat suatu obyek tertentu dengan menggunakan bahasa pemrograman.
    • Mampu merefleksikan kebutuhan-kebutuhan user sebagaimana layaknya yang ada di dunia nyata
    • Relatif lebih fleksibel dan mudah diadaptasikan terhadap perubahan suatu program
    • Memiliki feature yang memperkuat dan meningkatkan fleksibilitas suatu obyek dengan adanya class, instance, encapsulation, inheritance, reusability, dan polymorphism.
Contoh : C++, SmallTalks, Java.

  1. Pemrograman Visual
    • Penggunaan ekspresi visual (seperti grafik, gambar, atau ikon) dalam proses pemrograman
    • Mengacu pada aktivitas yang memungkinkan pengguna untuk membuat program dalam dua (atau lebih) dimensi
  2. Pemrograman Even-Driven
Menggunakan konsep “jika sebuah aksi/perintah dilakukan terhadap sebuah obyek, apa yang akan terjadi/dilakukan oleh obyek tersebut selanjutnya”.
Sangat fleksibel dalam pembuatan koding program, karena sudah mengunakan konsep OOP dimana pemrograman dapat dimulai dari obyek yang diinginkan tanpa harus terurut. Biasanya meruapakan jenis bahasa pemrograman visual.
            Contoh : Visual Basic, Visual C++, Delphi.
Kriteria Bahasa Pemrograman

Seorang programmer akan memilih bahasa pemrogramannya jika merasa bahwa bahasa pemrograman tersebut bagus dan mudah untuk digunakan. Ada beberapa kriteria untuk penilaian suatu bahasa pemrograman, yaitu :

a.       Clarity, simplicity dan unity
Bahasa  pemrograman  harus  dapat  menolonprogrammeuntuk  membuat suatu desain       program             jauh        sebelum     programmer           melakukan        coding. Kemudahan, kesederhanaan, dan kesatuan merupakan suatu kombinasi yang membantu programmer mengembangkan suatu algoritma sehingga algoritma yang dihasilkan mempunyai kompleksitas yang rendah.
Sintaks bahasa pemrograman mempengaruhi kemudahan ketika program mulai ditulis, dites, dan dimodifikasi. Program yang mudah dibaca adalah kunci dari hal tersebut.

b.      Orthogonality
Orthogonality menunjuk kepada suatu atribut yang dapat dikombinasikan dengan beragam fitur bahasa pemrograman sehingga setiap kombinasinya mempunyai arti dan dapat digunakan. Contohnya, suatu bahasa pemrograman mendukung suatu ekspresi yang dapat menghasilkan suatu nilai, dan bahasa pemrograman tersebut juga mendukung statemen kondisi yang mengevaluasi suatu ekspresi untuk mendapatkan nilai true dan false. Dua fitur dari bahasa pemrograman tersebut, yaitu ekspresi dan statemen kondisi, adalah orthogonal jika sembarang ekspresi dapat digunakan (dan dievaluasi) di dalam statemen kondisi.
Ketika          fitur     bahasa pemrogramaadalaorthogonal,      maka    bahasa pemrograman tersebut akan mudah dipelajari dan program akan mudah ditulis karena hanya ada sedikit exception dan case yang harus diingat.

c.       Kewajaran untuk aplikasi
Bahasa pemrograman membutuhkan sintaks yang tepat/cocok yang digunakan pada struktur prograuntuk merefleksikan struktur logika yang melandasi suatu algoritma.
Bahasa pemrograman harus mempunyai struktur data, operasi-operasi, struktur kontrol, dan sintaks alami yang tepat/cocok untuk memecahkan suatu masalah. Suatu bahasa pemrograman didesain secara khusus untuk kebutuhan tertentu, misalnya PROLOG digunakan untuk keperluan deduksi atau C++ untuk pemrograman berorientasi objek.

d.      Mendukung abstraksi
Abstraksi merupakan suatu hal yang substansial bagi programmer untuk membuat suatu solusi dari masalah yang dihadapi, sehingga abstraksi tersebut dapat dengan mudah diimplementasikan menggunakan fitur-fitur yang ada dalam bahasa pemrograman.

e.       Kemudahan untuk verifikasi program
        Verifikasi program merupakan hal penting bagi sebuah program karena denganverifikasi 
      yang mudah maka suatu program akan dengan mudah dibangun dan dikembangkan.
         Kesederhaan struktur semantik dan sintaks merupakan aspek primer yang 
         mempengaruhi kesederhanaan verifikasi program.

f.       Lingkungan pemrograman
Bahasa pemrograman yang mempunyai lingkungan pemrograman yang baik dan lengkap akan memudahkan programmer untuk mengimplementasikan abstraksi  yang  sudah  disusunnya.  Lingkungan  pemrograman  di  sini  dapat berarti        editor                yang digunakan dokumentasi   yang    baik               dari        bahasapemrograman, fasilitas debugging, user interface yang baik, ataupun tool lain yang dapat digunakan untuk memudahkan pekerjaan programmer.

g.      Portabilitas program
Salah satu kriteria penting untuk proyek pemrograman adalah kemudahan program yang sudah jadi untuk dipindah-pindahkan dari komputer yang digunakan untuk membuat dan mengembangkan, ke komputer lain yang akan menggunakannya.

h.      Biaya penggunaan
Biaya merupakan elemen penting dalam mengevaluasi suatu bahasa pemrograman. Ada beberapa biaya yang dapat diukur, yaitu:

Biaya eksekusi program
Program yang sering dieksekusi akan membutuhkan suatu kode executable yang efisien sehingga cepat untuk dieksekusi. Semakin cepat suatu program dieksekusi maka akan semakin murah biaya eksekusi program.

 Biaya translasi/kompilasi program
Untuk          pembelajaran,  kecepatan        translasi           lebih    diutamakan daripada kecepatan eksekusi karena pada pembelajaran lebih sering dilakukan translasi/kompilasi daripada eksekusi program yang dihasilkan. Oleh karena itu, lebih dibutuhkan compiler yang efisien dibandingkan kode executable yang efisien.

Biaya penciptaan, testing dan penggunaan program
Semakin       baik                 dan lengkap     lingkungan      pemrogramapada bahasa pemrograman        maka    ketiga  biaya  ini        akan     menjadi rendah.  Hal ini disebabkan tidak banyak waktu dan tenaga serta pikiran yang dicurahkan ke pembuatan program.

Biaya pemeliharaan program
Pemeliharaan program termasuk perbaikan error yang muncul ketika program sudah digunakan, perubahan yang dibutuhkan pada program ketika hardware atau sistem operasi berubah, dan penyesuaian kebutuhan dengan kebutuhan yang baru. Pemeliharaan merupakan salah satu biaya terbesar dari life cycle cost dan merupakan suatu hal yang membosankan bagi programmer.

Tahap Pengembangan Program


1.        Data
Data : bahan mentah yang akan diolah menjadi informasi sehingga dapat digunakan oleh user atau pemakai.
1. Tipe Data Dasar merupakan tipe data primitif yang tidak terstruktur yang didefinisikan  oleh bahasa pemrograman.
Tipe data dasar dibagi menjadi lima bagian, yaitu :
a.       Tipe Data Numerik : setiap bahasa pemrograman dapat dipastikan ada tipe data numerik yaitu untuk menyimpan data berupa angka.
·         Integer       : merupakan bilangan bulat positif dan negatif
·         Real           : merupakan bilangan desimal atau mantissa
·         Subrange   : merupakan sebuah subtype dari tipe data integer dan terdiri dari
                        urutan nilai-nilai integer dalam range yang terbatas
·         Fixed-point real : bilangan ini direpresentasikan dengan urutan digit yang
                                           mempunyai panjang tetap dengan titik desimal diposisikan di
                                         tempat yang diberikan antara dua digit
b.      Enumerasi             : adalah suatu urutan list dari nilai-nilai yang berbeda.
c.      Boolean                 : tipe data untuk merepresentasikan True atau False (biasa 
            digunakan dalam  penyeleksian kondisi).
d.      Character              : berupa sebuah karakter yang ditulis diantara tanda petik tunggal 
         atau ganda ( ‘ atau “ ) tergantung dari bahasa pemrograman yang
         digunakan.
e.       String                     : urutan-urutan dari karakter yang terletak diantara tanda petik 
              tunggal atau ganda ( ‘ atau “ ) tergantung dari bahasa
              pemrograman yang digunakan.
f.       Internationalization : disebut I18N
2. Tipe Data Terstruktur : merupakan tipe data campuran dari berbagai tipe data dasar, contohnya : array, record, string, list dan file.
3. Tipe data didefinisikan oleh pemakai : tipe data ini biasa disebut Enumerasi
4. Tipe Data Penunjuk : contoh tipe data penunjuk adalah pointer

2.        Model Komputasi
Ada tiga model dasar komputasional :  fungsional, logika, dan imperatif. Sebagai tambahan terhadap satuan nilai-nilai dan operasi yang berhubungan, masing-masing model komputasional mempunyai satu set operasi yang digunakan untuk menggambarkan komputasi.

a.       Model Fungsional : terdiri dari satu set nilai-nilai, fungsi-fungsi dan operasi aplikasi fungsi dan komposisi fungsi. Fungsi dapat mengambil fungsi lain sebagai argumentasi dan mengembalikan fungsi sebagai hasil (higher-order function). Suatu program adalah koleksi definisi fungsi-fungsi dan suatu komputasi adalah aplikasi fungsi.

b.      Model Logika : terdiri dari satu set nilai-nilai, definisi hubungan dan kesimpulan logis. Program terdiri dari definisi hubungan dan suatu komputasi adalah suatu bukti(suatu urutan kesimpulan).

  1. Model Imperatif : terdiri dari satu set nilai-nilai yang mencakup suatu keadaan dan operasi tugas untuk memodifikasi pernyataan. Pernyataan adalah set pasangan nilai-nama dari konstanta dan variabel. Program terdiri dari urutan tugas dan suatu komputasi terdiri dari urutan pernyataan.

3.        Definisi Sintaks, Sematik, dan Pragmatis
Sintaks  : aturan gramatikal atau komposisi suatu program yang mengatur tata cara penulisan huruf, angka dan karakter lain.
Contoh  :  pada  pembuatan  program  Pascal  antara  dua  statement
dipisahkan oleh titik koma (;).

X := 1 ; X := X + 1;
Sintaks sebuah bahasa berhubungan dengan struktur bahasa. Sebagai contoh, untuk membentuk sebuah kalimat yang valid dalam bahasa kita memakai struktur: [subyek] + [kata kerja] + [kata benda]. Dengan memakai struktur ini, kita bisa membentuk kalimat, sebagai contoh: Saya makan nasi. Dalam hubungannya dengan bahasa pemrograman, kita musti memenuhi sintaks (baca: aturan struktur bahasa) agar program dapat berjalan. Sebagai contoh, dalam bahasa BASIC, untuk mengassign sebuah variabel dengan sebuah nilai, kita memakai operand ‘=’, tetapi kalau dalam Pascal, kita pakai ‘:=’. Contoh dalam BASIC: a=1, tapi dalam bahasa Pascal, a:=1.

Semantik  : mendefinisikan arti dari dari program yang benar secara sintaks dari bahasa pemrograman tersebut.
Contoh : Pada pembuatan program C

Int vector [10]

Arti semantiknya : akan menyebabkan ruang sebanyak 10 elemen integer diberikan kepada variabel bernama vector ( 0 9 untuk array dalam C)

Semantik sebuah bahasa menggambarkan hubungan antara sintaks dan model komputasi. Sederhananya, semantik menjelaskan arti dari program.
Analoginya sebagai berikut. Apabila kita memakai sintaks [subyek] + [kata kerja] + [kata benda], kita bisa menghasilkan kalimat-kalimat.
Apabila kita mengasilkan kalimat Saya makan nasi, maka kalimat ini memenuhi aturan sintaks. Tapi, apabila saya membuat kalimat Saya makan batu, secara sintaks kalimat ini sudah benar. Namun, secara semantik, kalimat ini tidak mengandung makna yang berarti.
Dalam hubungannya dengan bahasa pemrograman, kadang ada kalanya seorang programmer tidak bisa mengaitkan sintaks dengan model komputasi. Kesalahan logika bisa dengan mudah terjadi.

Sebagi contoh ada bahasa pemrograman sebagai berikut:
if(a=5) {
echo ‘Nilai a=5′;
}
Apabila program ini dijalankan, apa yang terjadi? Bergantung bahasa apa yang digunakan. Apabila bahasa yang dipakai adalah bahasa C, maka output yang keluar selalu Nilai a=5, walaupun nilai variabel a sebelumnya selain 5. Kenapa itu bisa terjadi? Itu karena operator ‘=’ dalam bahasa C berarti mengassign sebuah variabel yang ada di sebelah kiri dengan nilai yang ada di sebelah kanan. Dalam bahasa C, secara sintaks operasi ini sudah benar.
Tapi, apabila yang dimaksud adalah programmer ingin mengevaluasi nilai variabel a, maka seharusnya memakai operator logika ‘==’. Jadi, program yang sebenarnya menjadi
if(a==5){
echo ‘Nilai a=5′;
}

Pragmatis : memperhatikan tentang pemakaian bahasa, area aplikasi, kemudahan implementasi dan penggunaan, dan sukses bahasa didalam desain pelaksanaan tujuannya. Kekuatan yang membentuk suatu bahasa pemrograman meliputi arsitektur komputer, praktek rancang- bangun perangkat lunak (terutama daur hidup perangkat lunak), model komputasionaldan daerah aplikasi (contoh: alat penghubung pemakai, sistem pemprograman, dan sistem ahli).
Tujuan  umum  bahasa  pemrograman  berpegang  pada  prinsip  desain  bahasa pemrograman yang berikut.


Pragmatik berhubungan dengan kemudahan implementasi dan efisiensi. Dalam analoginya dengan bahasa, kita bisa saja memberitahukan ke seseorang “Jangan merokok” apabila ada peraturan yang melarang seseorang merokok di dalam sebuah ruangan. Kalimat singkat seperti itu sebenarnya sudah cukup efisien. Tapi, dalam kesempatan lain kita bisa saja memakai kalimat “Mohon Anda jangan merokok di sini karena menurut peraturan pemerintah daerah nomor XXX tahun XXX dinyatakan bahwa merokok di tempat umum akan mengakibatkan pelanggaran peraturan, selain itu dari sisi kesehatan… blah blah blah”.
Dalam hubungannya dengan bahasa pemrograman, seorang programmer harus bisa memastikan efisiensi dalam melakukan peng-coding-an. Dalam bahasa C, programmer diberikan kekuasaan untuk mengalokasikan memori. Sebagai akibatnya, apabila programmer lalai dalam mengontorl variabel-variabel yang dihasilkan dari hasil assignment pointer, maka akan terjadi kebocoran memori. Ini diakibatkan apabila seorang programmer mengcreate sebuah variabel pointer, dan kemudian menghapusnya, informasi tersebut masih ada dalam memori, hanya saja sudah tidak bisa diakses lagi.

4.        Prinsip-prinsip Desain Bahasa Pemrograman

Prinsip Kelengkapan Komputasional
Model  komputasional  untuk  tujuan  umum  suatu  bahasa  pemrograman  harus universal.

Prinsip Implementasi
Implementasi  harus  efisien  dalam  penggunaan  waktu  dan  ruangnya.  Prinsip
Memprogram  harus  ditulis  dalam  suatu  bahasa  yang  mencerminkan  daerah masalah.
Prinsip Desain Bahasa pemrograman

Suatu bahasa program harus dirancang untuk memudahkan agar dapat dibaca dan ditulis untuk para pemakai manusianya dan pelaksanaan efisien pada perangkat keras yang tersedia.

Keadaan dapat dibaca dan ditulis dimudahkan oleh prinsip yang berikut.

Prinsip Kesederhanaan

Bahasa harus didasarkan atas yang paling sedikit

Prinsip Orthogonal

Fungsi mandiri harus dikendalikan oleh mekanisme mandiri.

Prinsip Keteraturan

Satu set object disebut reguler berkenaan dengan kondisi beberapa jika, dan hanya jika, kondisi dapat digunakan untuk masing-masing unsur set.

Prinsip Sifat Ekstensibilitas(dapat diperpanjang)

Object baru dari tiap kelas sintaktis mungkin dibangun (digambarkan) dari dasar dan digambarkan membangun dengan suatu cara sistematis.

Prinsip keteraturan dan ekstensibilitas memerlukan konsep dasar bahasa harus diterapkan secara konsisten dan yang bersifat universal.

Pada halaman berikut kita akan belajar bahasa pemrograman sebagai perwujudan model komputasional, ilmu semantik sebagai hubungan antara model komputasional dan sintaksis, dan berhubungan pragmatis.

Prinsip Clarity, Simplicity dan Unity

Bahasa pemrograman harus dapat menolong programmer untuk membuat suatu desain program jauh sebelum programmer melakukan coding.
Kemudahan, kesederhanaan dan kesatuan merupakan suatu kombinasi yang membantu programmer mengembangkan suatu algoritma sehingga algoritma yang dihasilkan mempunyai kompleksitas yang rendah.

Orthogonality

Orthogonality menunjuk kepada suatu atribut yang dapat dikombinasikan dengan beragam fitur bahasa pemrograman sehingga setiap kombinasinya mempunyai arti dan dapat digunakan.

Kewajaran untuk Aplikasi

Bahasa pemrograman membutuhkan sintaks yang cocok/tepat yang digunakan pada struktur program untuk merefleksikan struktur logika yang melandasi suatu algoritma.


Mendukung Abstraksi

Abstraksi merupakan suatu hal yang substansial bagi programmer untuk membuat suatu solusi dari masalah yang dihadapi. Kemudian abstraksi tersebut dapat dengan mudah diimplementasikan menggunakan fitur-fitur yang ada dalam bahasa pemrograman.

Kemudahan untuk Verifikasi Program

Verifikasi program merupakan hal penting bagi sebuah program karena dengan verifikasi yang mudah maka satu program akan dengan mudah dibangun dan dikembangkan.

Lingkungan Pemrograman

Bahasa pemrograman yang mempunyai lingkungan pemrograman yang baik dan lengkap akan memudahkan programmer untuk mengimplementasikan abstraksi yang sudah disusunnya.

Portabilitas Program

Salah satu kriteria penting untuk proyek pemrograman adalah kemudahan program yang sudah jadi untuk dipindah-pindahkan dari komputer yang digunakan untuk membuat dan mengembangkan ke komputer lain yang akan menggunakannya.

Biaya Penggunaan

Biaya merupakan elemen penting dalam mengevaluasi suatu bahasa pemrograman.

Ada beberapa biaya yang dapat diukur yaitu :
  1. Biaya Eksekusi Program
  2. Biaya Translasi/kompilasi Program
  3. Biaya Penciptaan, Testing dan Penggunaan Program
  4. Biaya Referensi :

  1. R. Sedgewick, Algorithms, Addison-Wsley, 2002.
  2. Yay Singlemann, Business Programming Logic 2/e, Prentice Hall Engelwood Cliffs, New Jersey, 1982.
  3. Clark, R, Comparative Programming Languages 3/e, Addison Wesley, 2001.
  4. Bel, H. dan Grune, D., Programming Languages Essentials, Addison Wesley, 1994.
  5. Sebest, R.W., Concepts of Programming Languages 5/e, Addison Wesley, 2002.
  6. Binanto, Iwan, Konsep Bahasa Pemrograman, Andi, Yogyakarta, 200

Tidak ada komentar:

Posting Komentar