IBX5A7018DC6625C

Friday, February 2, 2018

Evolusi Bahasa Pemrograman


Perkembangan teknologi yang sangat pesat dengan semakin banyaknya bahasa pemrograman yang hadir tentu tidak serta merta luput dari sejarah Bahasa Pemrograman itu sendiri, dalam perkembanganya melewati banyak generasi dan sejarah yang sangat banyak. Pada kesempatan kali ini kita akan membahas perkembangan Evolusi Bahasa Pemrograman dari waktu ke waktu, nah langsung saja yuk kita bahas.




SEJARAH PERKEMBANGAN BAHASA PEMROGRAMAN
Bahasa Pemrograman memiliki beberapa generasi dalam perkembanganya yakni
  1. Generasi Kesatu (Bahasa Mesin)
  2. Generasi Kedua (Bahasa Assembly)
  3. Generasi Ketiga
  4. Generasi Keempat
  5. Generasi Kelima


GENERASI KESATU (BAHASA MESIN)
  1. Bahasa pemrograman yang sangat dasar dan kuno
  2. Tidak lagi digunakan oleh programmer karena sangat sulit menggunakannya
  3. Disebut bahasa mesin (machine code)/ bahasa biner (kode-kode mesin yang hanya dapat
  4. Diinterpretasikan langsung oleh mesin komputer berarsitektur tertentu).
  5. Kumpulan kode dalam bahasa mesin dapat digabungkan disebut microcode
  6. [+]  Eksekusi cepat
  7. [-]   Sulit dipelajari manusia


GENERASI KEDUA (BAHASA ASSEMBLY)
  1. Sudah mulai ditinggalkan oleh programmer yang tidak langsung berhubungan dengan hw
  2. Dikenal dengan bahasa assembly & banyak digunakan pada pemrograman hw, ex: robotika
  3. Merupakan bahasa mesin yang disimbolkan dengan bahasa inggris sederhana sehingga memudahkan programmer
  4. Ex. Operator: mul (perkalian), sub (pengurangan), add (penjumlahan), div (pembagian), dll.
  5. Programmer dapat membuat standar yang cukup baku untuk arsitektur komputer yang beraneka ragam
  6. Sehingga dapat dibuat instruksi-instruksi bahasa assembly yang generik untuk semua arsitektur komputer
  7. (+) Eksekusi cepat, lebih mudah dipelajari, file kecil
  8. (-) Sulit dipelajari, program sangat panjang


GENERASI KETIGA
  1. Sampai saat ini masih sering digunakan oleh programmer untuk aplikasi aras tinggi/rendah
  2. Mulai dikenal sintaks (syntax)
  3. Menyediakan banyak kemudahan dalam pembuatan program, ex: variabel, tipe data, konstanta,
  4. Struktur kontrol, loop, fungsi, prosedur, dll.
  5. Contoh bahasa pemrograman generasi ketiga : c, basic, fortran dan pascal.
  6. (+) mudah dipelajari, mendekati permasalahan yang akan dipecahkan, kode program pendek.
  7. (-) eksekusi lambat


GENERASI KEEMPAT
  1. Dibuat untuk menyelesaikan beberapa persoalan pemrograman yang kompleks dan spesifik
  2. Dikenal sebagai specific problem oriented.
  3. Bersifat visual, memiliki tool builder yang canggih, dapat berkomunikasi dengan peralatan lain yg spesifik (basis data).
  4. Contoh: sql, html, visual basic, delphi, dan fox pro.
  5. Ada beberapa jenis :
    • Report generators : bahasa pemrograman yg dipakai untuk membuat laporan tercetak/dalam bentuk Html/file pdf, dg format yg dapat diatur sesuai kebutuhan. Contoh: oracle reports & crystal reports.
    • Form generators : bahasa yg dipakai untuk membuat antarmuka (form) yang dipakai untuk komunikasi Antara manusia dan komputer. Sering disebut bahasa pemrograman antarmuka (GUI creator). Contoh: Visual basic, form builder, visual foxpro, borland delphi dan visual studio .net
    • Computer aided software engineering (case) : bahasa yg dibuat dg mendefinisikan suatu spesifikasi di Atas layar (diagram) dan menspesifikasikan suatu proses tertentu. Contoh: relational rose, Oracle Designer, poseidon, dsb.
    • Database query language : bahasa yg dipakai untuk berkomunikasi dg mesin database, yg berupa pendefinisian data (DDL ), manipulasi data (DML), kontrol data (DCL), dsb. Contoh: sql, oracle sql*plus, progress 4gl, dsb
  1.  (+) Berorientasi pada masalah secara langsung
  2.  (-) sangat spesifik sehingga hanya bisa berfungsi untuk suatu hal tertentu saja.



GENERASI KELIMA
  1. Berbasis pada pemecahan masalah dg batasan-batasan (constraints) yg diberikan pada sebuah program, tidak menggunakan algoritma tertentu.
  2. Dipakai agar komputer dapat menyelesaikan suatu masalah berdasarkan constraint yg diberikan.
  3. Pemrogram mendefinisikan masalah yg akan diselesaikan beserta kondisinya tanpa memikirkan cara mengimplementasikan program/algoritma pemecahannya.
  4. Umumnya digunakan pada penelitian kecerdasan buatan.
  5. Contoh: prolog, ops5, dsb. 
  6. Bahasa pemrograman merupakan tool yg digunakan untuk membuat program
  7. Akan terjadi perubahan/translasi dari kode program yg ditulis dg bahasa pemrograman
  8. Tertentu menjadi kode program lain/kode dalam bentuk objek/langsung ke program yg
  9. Dapat dieksekusi secara langsung di mesin komputer tertentu.
  10. Proses translasi membutuhkan waktu yg cukup panjang dan kompleks
  11. Para pembuat translator berusaha agar proses translasi bisa berjalan dg secepatcepatnya.
  12. (+) sangat sesuai untuk pemecahan masalah sistem cerdas
  13. (-) membutuhkan pengetahuan lebih untuk membuat program dengan bahasa level ini.


JENIS TRANSLATOR BAHASA PEMROGRAMAN
Ada beberapa jenis translator bahasa pemrograman yang akan menterjemahkan program atau perintah yang kita buat kepada mesin dan di antaranya adalah :
·         ASSEMBLER
o   Terjadi perubahan bentuk dari kode sumber yg berupa bahasa assembly menjadi bahasa  mesin yg dapat dieksekusi secara langsung oleh prosesor tertentu.
o   Proses translasinya disebut meng-assemble.
o   Sumber : Bahasa Assembly
o   Hasil : Bahasa mesin yang bersifat executable.


·         INTERPRETER
o   Kode program bersama-sama dengan input dari pengguna diinterpretasikan (dipahami satu per satu lalu dicocokkan dg bahasa mesin prosesor tertentu) oleh mesin interpreter hingga dilakukan komputasi akhir, ex: menampilkannya ke layar monitor.
o   Disebut meng-interpret
o   Prosesnya berjalan lebih lama karena harus diterjemahkan satu per satu.
o   (+) Konsep interpreter lebih sederhana, penelusuran kesalahan lebih cepat, mudah dan simpel
o   Kode program tidak dianalisis secara keseluruhan melainkan per baris, jika terjadi error, interpreter akan langsung melaporkannya dan tidak akan melanjutkan pemrosesan sampai baris yg error diperbaiki.
o   Contoh: bahasa scripting pada web (javascript, php, asp classic, visual basic, dan BASIC




·         COMPILER
o   Kode program dikompilasi sehingga menghasilkan bentuk lain, yaitu object code (ekstensi .o atau .obj) disebut dengan compile time
o   Oleh program (linker), file-file object code digabungkan dengan library yg dibutuhkan sehingga menjadi file yg bisa langsung dieksekusi pada mesin prosesor tertentu. Disebut dengan run time.
o   Setelah dieksekusi, input dari pengguna diproses.
o   Proses translasinya disebut mengkompilasi. Proses berjalan lama. Jika sudah menjadi file executable proses kerjanya lebih cepat karena sudah binary file.
o   (+) konsep compiler lebih cepat dieksekusi.
o   (-) tidak portable disemua mesin komputer
o   Kode program dianalisis secara keseluruhan baru kemudian error ditampilkan
o   Contoh : Bahasa c, pascal, fortran, dan c++
o   Sumber : Bahasa tingkat tinggi
o   Hasil : Bahasa assembly/mesin


·         GABUNGAN COMPILER & INTERPRETER
o   Ditemukan pada bahasa pemrograman .net dan java.
o   Dilakukan dalam 2 tahap:
1.      Kode program dikompilasi menjadi file executable
2.      File executable yg dihasilkan pada tahap pertama dijalankan di atas runtime environtment yg harus diinstal pada masing-masing os. Pada saat dijalankan, program akan diinterpretasikan oleh interpreter oleh runtime environtment.
o   Sumber : bahasa tingkat tinggi
Hasil : bahasa level menengah


Referensi
[1] Munengsih Sari Bunga, S.Kom., M.Eng : Kuliah Bahasa Pemrograman. 2016

Thursday, February 1, 2018

KONSEP BAHASA PEMROGRAMAN

       Komputer, alat yang digunakan untuk melakukan komputasi (perhitungan) secara cepat, komputer juga dapat menyimpan data, dan data tersebut dibaca kembali. Algoritma merupakan urutan operasi yang akandikerjakan secara berurutan hingga menghasilkan suatu keluaran (output) yang diinginkan. Komputer tidak akan bisa terlepas dari Pemrograman dan sebuah program bisa di tanamkan dalam sebuah sistem komputer dengan bahasanya yang di buat khusus untuk di kenali oleh mesin. Nah, bagi orang awam yang belum paham dan ingin mendalami tentang Pemrograman ada baiknya kita memahami konsep dasarnya terlebih dahulu.

BAHASA PEMROGRAMAN?

Bahasa Pemrograman, merupakan himpunan aturan-aturan (konvensi) untuk menyatukan (menghubungkan) algoritma-algoritma.
Atau bisa lebih jelasnya saya bisa kutip dari Wikipedia :

      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.

How to learn?
  • Horizontal, Bahasa-bahasa pemrograman dipilih dan dipelajari secara berurutan.
  • Vertical, Membandingkan konsep dan konstruksi dari bahasabahasa pemrograman.
Jenis Bahasa Pemrograman
Ada 3 jenis bahasa pemrograman yaitu :
  • Bahasa Mesin (Machine)
    • Merupakan bahasa yang paling rendah levelnya (very low-level).
    • Dieksekusi secara langsung oleh komputer.
    • Proses eksekusi sangat cepat.
    • Realisasi (bahasa) membutuhkan biaya rendah (low cost of realization).
    • Fleksible untuk membuat layer software yang baru.
    • Tergantung pada mesin (Machine dependent).
  • Bahasa Rakitan (Assembly)
    • Menggunakan Mnemonic, misalnya ADD, ADC (Add with Carry).
    • Menggunakan nama simbolik.
    • Tergantung pada mesin (Machine dependent).
    • Contoh:
      • MOV AX,1234h
      • ADD AX, 01h
      • LEA AX, WORD PTR Number
      • PUSH AX
      • CALL baca_input
  • Bahasa Tingkat Tinggi (High-Level Language).
    • Mendefinisikan Sebuah Mesin Abstrak (Abstract machine).
    • Membutuhkan proses translasi oleh translator (compiler atau interpreter).
    • Lebih mudah untuk dipelajari karena lebih sederhana.
    • Lebih lambat dibandingkan bahasa mesin.
Why we learn?
Kenapa kita harus belajar tentang konsep bahasa Pemrograman ini?
  • Meningkatkan kapasitas untuk mengekspresikan ide pemrograman.
  • Dapat memilih bahasa pemrograman tertentu yang tepat untuk menyelesaikan suatu masalah.
  • Meningkatkan kemampuan untuk belajar bahasa pemrograman yang baru.
  • Memahami implementasi dari bahasa pemrograman.
  • Meningkatkan kemampuan untuk membuat bahasa pemrograman yang baru.

Programming Domains
  • Sistem Operasi
  • Aplikasi
  • Web
  • Basis Data
  • dll
Kriteria bahasa pemrograman
Berikut adalah kriteria bahasa pemrograman yang harus kita keahui :
  • Readability
Merupakan kriteria yang terpenting
Faktor-faktor :
·         Simplicity
·         Orthogonality
·         Statement Kontrol
·         Tipe data dan Struktur data
·         Syntax dan Lexical convention
  •     Writability
Faktor-faktor :
·         Simplicity.
·         Orthogonality.
·         Mendukung abstraksi.
·         Abstraksi adalah kemampuan untuk mendefinisikan dan kemudian menggunakan struktur yang kompleks atauoperasi yang mengijinkan detail dari operasi diabaikan.
  •      Reliability
Faktor-faktor :
·         Type checking.
·         Exception handling.
·         Readability dan writability.
  1. Cost
·         Training programmer.
·         Penulisan program / Pembuatan software.
·         Kompilasi dan eksekusi.
·         Maintenance.

Faktor yang Mempengaruhi Desain suatu bahasa

1.      Arsitektur Komputer (Computer Architecture)
o    Arsitektur von Neumann
§  Data dan program diletakkan pada memory yang sama.
§  Memory terpisah dari CPU.
§  Instruksi dan data difetch dari memori ke CPU.



2.      Metodologi Pemrograman (Programming Methodology)

o    1950-an dan awal 1960-an : Aplikasi-aplikasi sederhana, masih menitikberatkan pada efisiensi mesin.
o    Akhir 1960-an : Efisiensi dari sisi manusia lebih diutamakan (readibility), struktur kontrol yang lebih baik.
§  Pemrograman terstruktur.
§  Top-down design.
o    Akhir 1970-an : Process-oriented ke Data-oriented.
§  Abstraksi data.
o    Pertengahan 1980-an : Object-oriented programming

Kategori Bahasa Pemrograman

·         Imperative (Prosedural).
o    Fitur utamanya adalah variable, assignment, statement, dan iterasi.
o    Contoh : C, Pascal.
·         Functional
o    Menggunakan fungsi-fungsi untuk melakukan komputasi.
o    Contoh : LISP, Scheme.
·         Logic
o   Berdasaarkan aturan (rule-based).
o   Aturan tidak memiliki urutan khusus.
o   Contoh : Prolog.
·         Object-oriented
o   Pengkapsulan data dengan proses.
o   Pewarisan (inheritance) dan dynamic type binding.
o   Perkembangannya cepat.
o   Contoh : C++, Java

Metode Implementasi
  • ·         Kompilasi (Compilation), dilakukan oleh compiler.
o   Menerjemahkan high-level program ke kode mesin.
o   Translasi membutuhkan waktu tertentu (compiletime)
o   Eksekusi cepat
o   Contoh bahasa yang menggunakan compiler : Pascal, C/C++
  • ·         Interpretasi (Interpretation), dilakukan oleh interpreter.
o   Tanpa proses translasi.
o   Eksekusi lambat.
o   Saat ini jarang digunakan.
o   Contoh bahasa yang menggunakan interpreter : BASIC
  • ·         Hybrid
o   Gabungan antara kompilasi dan interpretasi
o   Translation cost kecil.
o   Kecepatan eksekusi tidak terlalu lambat

Programming Environments

Merupakan kumpulan tool yang digunakan dalam pengembangan software
  • UNIX.
  • Borland C++.
  • Smalltalk.
  • Microsoft Visual C++.
  • Lainnya : Borland Delphi, JBuilder, dll.

Referensi
[1] Munengsih Sari Bunga, S.Kom., M.Eng : Kuliah Bahasa Pemrograman. 2016

Free Download Code::Blocks 16.01 Full Version




Assalamualaikum wr.wb

     Pada kesempatan kali ini saya mau shareing ke agan-agan salah satu software yang kalo anak IT mah harus atau must be punya lah hehe ya minimal pernah make. Yups, namanya adalah Code::Blocks sebagaimana yang saya comot dari wikipedia berikut penjelasan singkat tentang software ini 

      Code::Blocks adalah suatu program lingkungan pengembangan terpadu bebasnirlababersumber terbuka dan lintas platform. Program yang ditulis dalam C++ beserta wxWidgets untuk GUI-nya ini bisa digunakan bersama dengan berbagai macam kompilator, contohnya GCC dan Visual C++. Peralatannya yang tersedia tergantung dari "plugin" yang ada dipasang. Sekarang ini, Code::Blocks lebih tersedia sebagai perangkat pengembangan dalam bahasa C dan C++, walaupun program ini juga bisa disesuaikan, dan mungkin akan membutuhkan pemasangan tambahan, untuk pengembangan perangkat lunak ARMAVRDirectX, FLTK, Fortran, GLFW, GLUT, GTK+Irrlicht, Lightfeather, MATLAB, OGRE, OpenGLQt, SDL, SFML, STL, SmartWin dan wx. Code::Blocks tersedia di sistem operasi WindowsLinuxMac OS X dan FreeBSD.

Nah singkatnya software ini mirip seperti Visual Sutdio, namun menurut saya lebih ringan baik itu dalam peroses ngoding maupun waktu ngecompile nya dan jangan khawatir tentang lisensi karena software ini gratis tis tis tis.... hehe tapi tentu berbeda dengan Visual Studio karena lebih banyak fiturnya ketimbang Code::Blocks. Nah tanpa banyak basa basi lagi langusng aja dah gan nih comot.



Link Download :



Ohya, pada postingan selanjutnya saya akan shareing program-program sederhana menggunakan bahasa pemrograman C++ dan tentunya akan memakai Code::Blocks dalam proses pembuatanya. So.. sampai jumpa di postingan selanjutnya