Pengenalan Bahasa Pemrograman

Pengenalan Bahasa Pemrograman

Bahasa Pemrograman

Kamus Besar Bahasa Indonesia (KBBI) mendefinisikan bahwa bahasa pemrograman adalah “sistem kata atau simbol yang memungkinkan untuk berkomunikasi dengan komputer, terutama untuk memasukkan instruksi-instruksi komputer melalui kata-kata yang mudah dipahami, dan kemudian diterjemahkan ke dalam kode mesin”. Pengertian diatas bisa diambil beberapa kata kunci, diantaranya: “sistem kata / simbol yang mudah dipahami“, “berkomunikasi dengan komputer”, dan “diterjemahkan ke dalam kode mesin”. “Sistem kata / simbol” lebih dikenal dengan istilah “sintaks”, sebenarnya sintaks ini digunakan untuk mempermudah manusia memahami komputer sehingga manusia bisa komunikasi untuk memerintahkan komputer melakukan suatu instruksi, namun komputer tidak langsung bisa tahu apa instruksi yang diperintahkan manusia, agar komputer paham, ada proses penerjemahan dari sintaks-sintaks tersebut menjadi kode mesin yang dilakukan oleh penerjemah (compiler/interpreter), hasil dari penerjemahan tersebut berupa bilangan biner, yaitu bilangan yang terdiri dari dua angka, 0 (nol) dan 1 (satu).

Ditinjau dari kedekatannya dengan bahasa manusia, bahasa pemrograman dibagi ke dalam tiga tingkat, yaitu:

  1. Bahasa tingkat tinggi, yaitu bahasa yang mudah dimengerti oleh manusia karena menggunakan bahasa yang biasa digunakan oleh manusia, biasanya didominasi menggunakan bahasa Inggris. Contoh: Java, C++, PHP, Ruby, dan lain-lain.
  2. Bahasa tingkat menengah, yang mendekati bahasa mesin (komputer) tetapi masih menggunakan bahasa manusia. Contoh: C, PL/S, MOL-360, dan lain-lain
  3. Bahasa tingkat rendah, yaitu bahasa yang berupa kode-kode singkatan dari bahasa manusia namun sulit sekali dipahami karena untuk bekerja dengan bahasa ini diharuskan paham cara kerja komputer secara menyeluruh. Contoh: Assembly.

Untuk lebih memahami seperti apa wujud dari bahasa pemrograman berdasarkan tingkatan, bisa dilihat dari ilustrasi berikut:

Binner

10101011110101110011101110010010001
10101011110101110011101110010010001
10101011110101110011101110010010001

Machine Language / Bahasa Mesin (hexadecimal)

+1300042774
+1400593419
+1200274027

Assembly

load basepay
add overpay
store grosspay

Bahasa tingkat menengah dan tingkat tinggi

grossPay = basePay + overTimePay

Dari ilustrasi diatas terlihat bahwa bahasa tingkat menengah dan tingkat tinggi memiliki kemiripan model sintaks namun yang membedahkan keduanya adalah bahasa pemrograman tingkat menengah masih mengharuskan programmer bersentuhan langsung dengan mesin komputer dalam melakukan suatu proses tertentu, seperti pengaturan register dalam suatu memori, sedangkan dalam bahasa pemrograman tingkat tinggi, proses-proses tersebut ditangani secara otomatis.

Saat ini bahasa pemrograman tingkat tinggi lah yang masih terus berkambang. Bahasa pemrograman ini terbagi ke dalam beberapa bagian berdasarkan dimana bahasa permrograman tersebut bisa dijalankan, diantaranya:

  1. Desktop, jenis bahasa pemrograman ini hanya bisa berjalan di komputer atau laptop, seperti Visual Basic, C++/C#, Java SE, dan lain-lain.
  2. Web, bahasa pemrograman ini terbagi lagi menjadi dua, yaitu bahasa pemrograman yang berjalan di server dan bahasa pemrograman yang berjalan di klien (browser). Kedua jenis bahasa ini saling berkomunikasi menggunakan jaringan internet. Kebanyakan programmer menyebut bahasa pemrograman yang berjalan di server dengan sebutan back-end sedangkan bahasa pemrograman yang berjalan di klien disebut dengan front-end. Contoh bahasa pemrograman back-end, yaitu: PHP, Ruby, Java EE, dan lain-lain. Contoh untuk bahasa pemrograman front-end, yaitu Javascript.
  3. Mobile, bahasa yang dijalankan di perangkat mobile (perangkat jinjin), jenis bahasa pemrograman ini terus berkembang selaras dengan kemudahan dan optimasi tampilan grafiknya. Bahasa pemrograman ini ada berbagai jenis tergantung pada sistem operasi yang digunakan, misalkan untuk Android menggunakan bahasa Android (pengembangan dari Java ME), iOS menggunakan Objective-C dan Swift, dan Windows Mobile menggunakan Visual C++, C#, Visual Basic, .Net.

Bahasa Java

Seperti yang sudah dibahas sebelumnya, bahasa permrograman Java merupakan bahasa pemrograman tingkat tinggi sehingga bahasa pemrograman ini relatif mudah untuk dipelajari. Jika dicermati dari pembahasa di atas, Java juga merupakan bahasa pemrograman yang bisa berjalan di Desktop (berbagai sistem operasi), Web, dan Mobile. Sebutan bahasa pemrograman yang bisa jalan dimanapun (Desktop, Web, dan Mobile) adalah bahasa pemrograman multiplatform.

Karena Java ini merupakan bahasa pemrograman tingkat tinggi maka paradigma pemrogramannya pun merujuk pada kehidupan seharihari. Paradigma tersebut dikenal dengan istilah bahasa pemrograman berorientasikan objek / object-oriented programming (OOP). Secara garis besar OOP ini bisa dipahami bahwa untuk membuat aplikasi bahasa Java, programmer harus memahami objek-objek yang terlibat dan hubungan objek-objek tersebut dalam proses bisnis yang terjadi di dunia nyata. Objek dan hubungan antar objek ini lah yang dirubah ke dalam kodekode / sintaks Java. Lebih detail tentang OOP akan dibahas pada bagian berikutnya.

Kode-kode Java tersebut tidak langsung bisa dikenali oleh mesin komputer, karenanya ada proses penerjemahan dari kode Java ke dalam bilangan biner. Berbeda dengan bahasa pemrograman lainnya yang langsung diterjemahkan oleh penerjemah (compailer / interpreter) karena dikhususkan untuk sistem operasi tertentu, Java sendiri merupakan bahasa multiplatform yang bisa dijalankan dimanapun, tidak tergantung pada sistem operasi tertentu sehingga ada proses sebelum penerjemahan. Proses tersebut dilakukan oleh sistem operasinya bahasa pemrograman Java, yaitu Java Virtual Machine (JVM). JVM sendiri diatasnya ada Java Runtime Environment (JRE). JRE inilah yang harus terlebih dahulu dipasang di atas sistem operasi induk (Microsoft, Linux, dan MacOS, dan beberapa sistem operasi device lainnya) sebelum aplikasi Java bisa dijalankan. Keuntungan yang diperoleh dengan adanya JVM/JRE adalah programmer hanya butuh sekali membuat aplikasi namun aplikasi tersebut bisa dijalankan di semua sistem operasi, tentunya sistem operasi induk tersebut terlebih dahulu harus sudah dipasang JVM/JRE.

Pembahasan di atas terkait dengan JVM/JRE yang digunakan untuk menjalan aplikasi Java. Berikutnya yaitu bagaimana cara mengembangkan aplikasi Java, apakah hanya memerlukan JVM/JRE. Tentunya ada sistem tambahan yang diperlukan selain JVM/JRE untuk mengembangkan aplikasi Java, yaitu Java Development Kit (JDK). Di dalam JDK terdapat banyak library (sekumpulan fungsi) yang digunakan untuk mengembangkan aplikasi Java, library-libray ini lah yang memudahkan kita mengembangkan aplikasi Java karena dalam penamaan library-library tersebut menggunakan bahasa Inggris. Selain library ada beberapa tool-tool tambahan yang juga mempermudah programmer dalam mengembangkan aplikasi Java, misalkan tool unutk debug dan compile. JDK ini berjalan di atas JVM/JRE sehingga JVM/JRE harus terlebih dahulu dipasang sebelum memasang JDK di sistem operasi induk.

Java memiliki tiga edisi / versi, yaitu Java 2 Standard Edition (J2SE), Java 2 Enterprise Edition (J2EE), dan Java 2 Micro Editin (J2ME). Tentunya masing-masing edisi tersebut dipilih tergantung pada dimana aplikasi Java dijalankan. J2SE berjalan di desktop. J2EE berjalan di server-client (jaringan internet). J2ME berjalan di wearable device / smartphone / mobile. Tujuan dari pembagian berdasarkan tempat dimana aplikasi Java tersebut dijalankan adalah untuk menyesuaikan kebutuhan akan performa dan keterbatasan resource / spesifikasi hardware yang ada yang dimiliki oleh mesin / device tersebut. Misalkan, mobile memiliki spesifikasi hardware yang relatif rendah sehingga J2ME diciptakan untuk mewujudakan proses yang efisien yang tidak memerlukan spesifikasi hardware tinggi sehingga performa yang dihasilkan relatif bagus. J2EE yang dijalankan di beberapa server harus menangani banyak client dalam sekali waktu sehingga J2EE membutuhkan fungsi / fitur yang bisa menangani sistem terdistribusi dan concurrent / multi thread system. Sedangkan untuk J2SE merupakan versi yang paling sederhana dan mudah untuk digunakan jika dibandingkan dua versi lainnya. Edisi J2SE inilah yang menjadi pembahasan dalam buku ini.

Integrated Development Environment (IDE)

Pembahasan di atas menjelaskan bahwa sebelum programmer bisa mengembangkan aplikasi Java, programmer diharuskan untuk menginstal JVM / JRE/ JDK. JVM / JRE / JDK harus disesuaikan dengan sistem operasi induknya. Ada beberapa versi untuk JVM / JRE / JDK. Jika sistem operasi induk adalah Windows maka pilih versi yang untuk Windows, begitu juga untuk sistem operasi induk lainnya.

Tool apa yang digunakan untuk mengetikkan sintaks Java? Untuk mengetikkannya bisa menggunakan tool yang paling sederhana, yaitu Notepad. Namun, Notepad bukan pilihan yang tepat digunakan untuk Java karena fungsi Notepad hanyalah text editor saja. Ada tool yang digunakan programmer untuk membantu mempercepat dan mempermudah dalam mengembangkan aplikasi (bahasa pemrograman apapun), yaitu Integrated Development Environment (IDE), karena di dalam tool tersebut banyak terdapat fitur-fitur selain text editor, misalkan debugger, compiler, documentation, versioning, tampilan visual yang menarik, dan fitur-fitur lainnya. Ada berbagai macam jenis IDE, ada IDE yang khusus mendukung bahasa pemrograman tertentu dan ada juga yang mendukung banyak bahasa pemrograman.

IDE yang paling cocok untuk bahasa pemrograman Java adalah Neatbeans. Netbeans adalah IDE resmi untuk Java yang dikeluarkan oleh perusahaan yang memiliki merek dagang Java, yaitu Oracle, sehingga semua fitur yang ada di Java didukung penuh oleh Neatbeans, karena Neatbeans dikembangkan menggunakan bahasa Java maka untuk memasangnya, terlebih dahulu diharuskan memasang JVM / JRE / JDK.

Sesudah memasang semua pre-requirement dalam mengembangkan aplikasi Java saatnya membuat aplikasi paling sederhana, yaitu aplikasi “Hello World!”.

Misalkan membuat aplikasi HelloWorld, di dalam Netbeans aplikasi tersebut direpresantasikan sebagai “project”, di dalamnya “project” terdapat “package”, “package” inilah yang membagi “project” ke beberapa bagaian agar bagian source code aplikasi tersebut tertata dengan rapi, karena biasanya di dalam satu aplikasi terdapat ribuan baris kode sehingga perlu adanya pembagian dengan menggunakan “package”, di dalam “package” terdapat “class”, “class” inilah yang di dalamnya terdapat kode / sintaks Java.

Hello World!

Kali ini menjelaskan contoh aplikasi HelloWorld, yang mana aplikasi ini sangat sederhana, hanya menampilkan tampilan “Hello World!” di console.


/*
 * To change this license header, choose License
Headers in Project Properties.
 * To change this template file, choose Tools |
Templates
 * and open the template in the editor.
 */
package helloworld;
/**
 *
 * @author tele
 */
public class helloworld {
 public static void main(String [] args){
 System.out.println("Hello World!");
 }

}

Baris 1 – 7 dan 9 – 12 adalah comment. Comment digunakan untuk memberikan narasi pada suatu kode agar programmer lain paham maksud dan tujuan logika yang dituliskan seorang programmer. Selain itu, biasanya comment juga digunakan untuk menjadi sarana pengingat bagi programmer saat programmer lupa karena sudah lama tidak memegang kode tersebut. Sekarang comment juga bisa di-generate secara otomatis menggunakan Javadoc untuk kepentingan dokumentasi. Caranya dengan menggunakan aturan-aturan Javadoc, yaitu dengan menambahkan annotasi (@) pada baris kode yang ingin dijelaskan, misalkan yang terlihat pada baris 11, “@author tele”, yaitu menjelaskan pembuat dari kode “helloworld”.

Baris 8 mendefinisikan “package”, yaitu “helloworld”. Baris 13 – 18 merupakan lingkup dari “class helloworld”, dimana di dalamnya terdapat method “main”. Method “main” merupakan method yang wajib ada pada suatu aplikasi karena method inilah yang akan menjalankan semua logika yang dituliskan menggunakan Java. Pada hal ini logika yang dituliskan hanya menampilkan tulisan “Hello World!” sehingga ketika aplikasi dijalankan di console akan nampak tulisan “Hello World!”. Untuk pembahasan tentang “class” dan “method” akan dibahas lebh detail pada pembahasan berikutnya.

Proses Jalannya Aplikasi

Proses jalannya aplikasi dibagi ke dalam 5 fase untuk lebih memahami proses jalannya aplikasi, yaitu (1) edit (2) compile (3) load (4) verify dan (5) execute.

1. Edit
Fase awal ini, programmer mengetikkan kode ke text editor (bisa menggunakan Netbeans), hasilnya disimpan di secondary memory (hardisk) dengan menggunakan ekstensi .java

2. Compile
Dengan menggunakan perintah “javac”, sistem merubah dari kode yang masih dalam sintaks bahasa inggris ke dalam bentuk bytecode (sebagian besar berupa hexadecimal) dengan menggunakan ekstensi .class. File tersebut masih disimpan di dalam hardisk.

3. Load
Dari hardisk, file .class (bytecode) dimasukkan ke dalam primary memory.

4. Verify
Bytecode tersebut diverifikasi apakah bytecode tersebut sesuai dengan bytecode-nya Java (karena bytecode bahasa pemrograman lain berbeda-beda) dan aman untuk dijalankan.

5. Execute
Pada fase akhir ini, JVM membaca bytecode tersebut dan dirubah ke dalam bentuk biner sehingga mesin komputer paham dan mengeksekusi perintah yang diketikkan programmer di text editor.

Rangkuman

Kamus Besar Bahasa Indonesia (KBBI) mendefinisikan bahwa bahasa pemrograman adalah “sistem kata atau simbol yang memungkinkan untuk berkomunikasi dengan komputer, terutama untuk memasukkan instruksi-instruksi komputer melalui kata-kata yang mudah dipahami, dan kemudian diterjemahkan ke dalam kode mesin”. Ditinjau dari kedekatannya dengan bahasa manusia, bahasa pemrograman dibagi ke dalam tiga tingkat, yaitu: (1) bahasa tingkat tinggi, (2) bahasa tingkat menengah, dan (3) bahasa tingkat rendah.

Sebelum programmer bisa mengembangkan aplikasi Java, programmer diharuskan untuk menginstal JVM / JRE/ JDK. JVM / JRE / JDK harus disesuaikan dengan sistem operasi induknya. Proses jalannya aplikasi dibagi ke dalam 5 fase untuk lebih memahami proses jalannya aplikasi, yaitu (1) edit (2) compile (3) load (4) verify dan (5) execute.

Leave a Reply

Your email address will not be published. Required fields are marked *