Logic Programming Language

 

Logical programing adalah jenis paradigma program yang berdasarkan formal logic. Formal logic ini berkerja seperti logika matematika dimana penerapan konsep matematika diekspresiakan melalui system logika umum. Prolog, answer set programing(ISP), dan datalog termasuk dalam logical programing.

  • Prolog adalah bahasa pemrograman logika atau di sebut juga sebagai bahasa non-procedural.
  • Answer set programing(ASP) merupakan suatu program dekraratif yang berorientasi pada search problem yang sulit.
  • Datalog merupakan deklarasi logical program dimana deklarasi tersebut termasuk dalam subset prolog.

Dalam suatu logical programing terdapat symbol-simbol logika yang biasa disebut symbolic logic. Simbolic logic ini bisa digunakan untuk:

  • Mengekspresikan proposisi
  • Mengekspresikan hubungan proposisi
  • Menyatakan bagaiman proposisi baru dapat diganggu oleh proposisi lain

Beberapa symbolic logic yang digunakan untuk programing logical disebut predicate calculus.

Proposisi suatu logical programing language terdiri atas object dan hubungan object. Suatu proposisi (proposition) adalah suatu pernyataan (statement) yang memiliki nilai kebenaran true (benar, T) atau false (salah, F) tetapi tidak kedua-duanya pada saat dinyatakannya.

Contoh:

Pernyataan berikut adalah proposisi:

(a)                    Jakarta adalah ibu kota Indonesia.

(b)                    Penang adalah ibu kota Malaysia.

(c)                    5 + 6 = 11.

(d)                   25 + 2 = 26.

Proposisi (a) dan proposisi (c) bernilai true, sedangkan proposisi (b) dan proposisi (d) bernilai  false.

Dalam sebuah proposisi terdapat objek yang dapat dinyatakan dalam:

  • Constant :sebuah simbol yang dapat menyatakan objek.
  • Variable :sebuah simbol yang dapat menyatakan objek yang berbeda di setiap waktu yang berbeda.

Dalam suatu logical programing terdapat atomic proposisi dimana prosisi tersebut terdiri dari compound term. Compound terms merupakan suatu elemen dari mathematic relation yang ditulis seperti mathermatic function. Bagian-bagian compound:

  • Functor: function symbol yang merupakan nama relation
  • Tuple(order list parameter)

Contoh:

student(jon)

like(seth, OSX)

like(nick, windows)

like(jim, linux)

Proposisi terdapat 2 bentuk:

  • Fact: proposisi dianggap benar
  • Query: kebenaran suatu proposisi ditentukan

 

 

Logical operators

1
Gambar XIII.1: Logical Operator

Quantifiers

2

Gambar XIII.2: Quantifiers

Arithmetic Operators

Operator Description Example
+ (Addition) Adds values on either side of the operator. A + B will give 30
– (Subtraction) Subtracts right-hand operand from left-hand operand. A – B will give -10
* (Multiplication) Multiplies values on either side of the operator. A * B will give 200
/ (Division) Divides left-hand operand by right-hand operand. B / A will give 2
% (Modulus) Divides left-hand operand by right-hand operand and returns remainder. B % A will give 0
++ (Increment) Increases the value of operand by 1. B++ gives 21
— (Decrement) Decreases the value of operand by 1. B– gives 19

Tabel XII.1: Arithmetic Operator

Relational Operators

Operator Description Example
== (equal to) Checks if the values of two operands are equal or not, if yes then condition becomes true. (A == B) is not true.
!= (not equal to) Checks if the values of two operands are equal or not, if values are not equal then condition becomes true. (A != B) is true.
> (greater than) Checks if the value of left operand is greater than the value of right operand, if yes then condition becomes true. (A > B) is not true.
< (less than) Checks if the value of left operand is less than the value of right operand, if yes then condition becomes true. (A < B) is true.
>= (greater than or equal to) Checks if the value of left operand is greater than or equal to the value of right operand, if yes then condition becomes true. (A >= B) is not true.
<= (less than or equal to) Checks if the value of left operand is less than or equal to the value of right operand, if yes then condition becomes true. (A <= B) is true.

Tabel XIII.2: Relational Operator

 

 

 

 

 

Functional Programming Language

 

  1. Pengertian Functional Programming

Pemrograman Fungsional adalah cara pemrograman yang berdasarkan teori fungsi matematika, dimana proses komputasi diperlakukan sebagai  evaluasi fungsi-fungsi matematika.  Cara pemrograman fungsional bisa menjadikan program lebih ekpresif (menggunakan koding lebih sedikit untuk mengimplementasikan sesuatu ide) sehingga programer dapat menjadi lebih produktif.

 

Bahasa pemrograman fungsional yang paling banyak digunakan oleh yaitu Javascript. Mula-mula Javascript yang diciptakan oleh Netscape bertujuan melengkapi bahasa Java pada pemrograman web dengan menarik untuk programmer nonprofesional pada pemrograman sisi client, sehingga sintaks Javascript banyak diambil dari bahasa C dan juga menyamar seolah-olah sebagai bahasa prosedural sampai programmer siap untuk pindah ke tingkat berikutnya yaitu pemrograman fungsional. Sebenarnya prinsip-prinsip desain kunci dalam JavaScript diambil dari bahasa pemrograman Self dan Scheme, yang bukan lain adalah bahasa pemrograman fungsional. Sehingga tanpa memahami paradigma fungsional ini, banyak programmer akan gagal memahami script yang ditulis dalam bahasa Javascript dengan baik.

 

  1. Procedural Functions

1

Gambar XII.A.1: Contoh Procedural Function, Halo sebagai Nama Fungsi

 

  1. Function as Variables

2

Gambar XII.A.2.1: Contoh Function as Variables, Fungsi Hello akan Dikirimkan ke Fungsi Lain

 

  1. Passing Functions To Function

3

Gambar XII.A.3.1: Contoh Passing To Function

 

Fungsi, dalam Javascript, adalah juga sekaligus sebuah objek. Sehingga selain memiliki fungsi sendiri, maka juga Anda memiliki objek fungsi,  yang berarti  memiliki metode dan properti sebagai objek, yang selanjutnya dapat diperluas oleh programmer sesuai kebutuhan.

Setiap fungsi memiliki properti berikut:

  • Arguments – Sebuah array / objek yang mengandung argumen dilewatkan ke fungsi
  • Alength – menyimpan sejumlah argumen dalam array
  • Acallee – pointer ke fungsi pelaksana (memungkinkan fungsi anonim untuk rekursi).
  • Constructor – fungsi pointer ke fungsi konstruktor.
  • Length – jumlah argumen fungsi
  • Prototype – memungkinkan penciptaan prototipe

Setiap fungsi memiliki metode berikut:

  • Apply – sebuah metode yang memungkinkan Anda lebih easilly melewati argumen fungsi.
  • Call – memungkinkan Anda untuk memanggil fungsi dalam konteks yang berbeda.
  • ToSource – mengembalikan kode sumber dari sebuah objek.
  • ToString – mengembalikan sumber fungsi sebagai string.
  • ValueOf – Mengembalikan nilai primitif dari objek Boolean

Exception Handling dan Event Handling

 

  1. Exception

Dalam melakukan pemrograman pasti pernah terjadi kesalahan, hal tersebut secara otomatis akan dilemparkan dalam bentuk objek yang disebut sebagai exception. Secara lebih rinci, exception merupakan suatu event yang terjadi selama eksekusi program dan mengacaukan aliran normal instruksi program. Dalam menangani sebuah exception, Java menggunakan mekanisme penanganan exception terstruktur.

 

Contoh kasus yang sering dialami yaitu sebuah program apabila mengalami kesalahan akan menghasilkan suatu runtime errors seperti gagal membuka file. Ketika runtime error terjadi, maka aplikasi akan membuat suatu exception.

 

Exception juga memiliki berbagai macam operasi yang dapat terbagi menjadi 3 bagian besar yaitu

  1. Claiming an exception: ketika error terjadi di suatu method, maka method akan membuat objek yang kemudian dikirim ke runtime sistem.
  2. Throwing an exception: proses pembuatan exception objek dan melakukan pengiriman ke runtime sistem.
  3. Catching an exception: penyerahan exception dari sistem ke handler

1

Gambar XI.A.1: Bagan Operasi Exception

Terdapar kategori exception seperti berikut ini:

  1. Checked exceptions: disebabkan oleh kesalahan pemakai program atau hal yang dapat diprediksi oleh pemrograman.
  2. Runtime exception: disebabkan oleh kesalahan program atau pada desain program.
  3. Errors: walaupun error bukan merupakan exception, namun hal ini merupakan masalah yang muncul diluar kendali pemakai. Terdapat bebagai jenis error yaitu:
  4. Syntax error: kesalahan dari penulisan syntax sehingga tidak dapat dieksekusi.
  5. Logical error: kesalahan yang disebabkan kesalahan penulisan atau rumus yang diterapkan oleh programmer.
  6. Runtime error: kesalahan akibat kecerobohan dari programmer yang biasanya terjadi miskomunikasi antara program dan file yang dipanggil di dalam program.

2

Gambar XI.A.1: Hierarki Exception

  1. Menangani Exception ( Exception Handling )

Untuk mengatasi kesalahan sewaktu program dieksekusi, Java menyediakan exception handling yang dapat digunakan untuk hal-hal berikut:

  • Menangani kesalahan dengan penulisan kode penangan kesalahan yang terpisah dari kode awal.
  • Menyediakan mekanisme yang memungkinkan untuk menjalankan kesalahan yang terjadi dalam sebuah metode ke metode yang melakukan pemanggilan metode itu.
  • Menangani berbagai jenis kondisi yang abnormal.

 

  1. Keyword Exception Handling
  2. Throw

Saat terjadi exception, maka akan terbentuk exception objek dan runtime pada Java akan berjalan untuk melakukan penanganan. Kita dapat melemparkan exception tersebut secara eksplisit dengan keyword throw.

 

Syntax : throw variableObject;

 

Aliran eksekusi akan segera terhenti setelah pernyataan throw dan pernyataan selanjutnya tidak akan dicapai. Block try terdekat akan diperiksa untuk melihat catch yang cocok dengan tipe instace throwable. Bila benar, blok try akan diperiksa. Bila tidak, blok try selanjutkan akan diperiksa sampai menemukan blok try yang bermasalah.

 

  1. Throws

Digunakan untuk mengenali daftar exception yang mungkin di throw oleh suatu method. Jika tipe exception adalah error atau runtime exception maka aturan ini tidak berlaku karena tidak diharapkan sebagai bagian normal dari kerja program.

 

Syntax: Type method-name(arg-list) throws exception-listy{}

 

  1. Try Catch

Digunakan untuk mengesekusi suatu bagian program, bila muncul kesalahan maka sistem akan melakukan throw suatu exception yang dapat menangkap berdasarkan tipe exception atau yang diberikan finally dengan penagann default.

 

Syntax: try { //Code// } catch ( ExceptionName ) { //Code// }

 

 

  1. Finally

Digunakan untuk membuat blok yang mengikuti blok try. Blok finally akan selalu dieksekusi, tidak peduli exception terjadi atau tidak. Sehingga, menggunakan keyword finally memungkinkan untuk menjalankan langkah akhir yang harus dijalankan tidak peduli apa yang terjadi di bagian protected code.

3

Gambar XI.B.1.1: Kode Exception Handling

4

Gambar XI.B.1.2: Hasil Exception Handling

  1. Checked dan Unchecked Exceptions

Checked exception merupakan exception yang diperiksa oleh Java compiler yang memeriksa keseluruhan program apakah menangkap exception yang terjadi dalam syntax throws. Apabila checked exception tidak ditangkap, maka compiler akan error. Tidak seperti checked exception, unchecked exception tidak berupa compile time checking dalam exception handling dikarenakan pondasi dasar unchecked exception adalah error dan runtime exception.

5

Tabel XI.B.2.1: Checked Exception dan Deskripsi

6

7

Tabel XI.B.2.2: Unchecked Exception dan Deskripsi

 

  1. Metode Throwable Class

Terbagi menjadi 5 macam metode:

  1. Public String getMessage(): megembalikan pesan pada saat exception memasuki constructor.
  2. Public String getLocalizedMessage(): subclass dapat overide untuk mendukung pesan spesifik lokal yang disebut sebagai pemanggilan program.
  3. Public synchronized Throwable getCause(): untuk exception yang null
  4. Public String toString(): mengembalikan informasi dan pesan lokal.
  5. Public void printStackTrace: mencetak stack trace.
  1. Event Handling

Event handling merupakan suatu konsep penanganan terhadap aksi yang terjadi. Sebagai contoh, jika kita klik buttonklik maka akan ditampilkan sebuah pop up. Hal sederhana ini merupakan contoh dari event handling. Masih banyak berbagai contoh mengenai event handling yang tidak hanya buttonklik saja.

Dalam event handling, terdapat empat bagian penting yang harus diketahui:

  1. Event object merupakan objek yang mendeskripsikan sebuah event yang di trigger oleh event source.
  2. Event handler merupakan method yang menerima event object dan melakukan respon yang sesuai dengan event object.
  3. Event listener merupakan interface yang akan melakukan handle terhadap event yang terjadi. Listener harus diimplementasikan oleh class yang akan melakukan handle terhadap event.
  4. Event source merupakan pembangkit sebuah event object.

Untuk dapat melakukan listener, diperlukan sebuah class yang terdapat pada java.awt.event.*;.

Dengan demikian, event terbagi menjadi beberapa kategori seperti:

  1. Action merupakan interface dari ActionListener dengan method actionPerformed.
  2. Item merupakan interface dari ItemListener dengan method itemStateChange.
  3. Mouse merupakan interface dari MouseListener dengan lima method yaitu:
  4. mouseClicked
  5. mousePressed
  6. mouseReleased
  7. mouseEntered
  8. mouseExited
  9. Mouse motion merupakan interface dari MouseMotionListener dengan method mouseDragged.
  10. Focus merupakan interface dari FocusListener dengan dua method yaitu:
  11. focusGained
  12. focusLast
  13. Window merupakan interface WindowsListener dengan empat method yaitu:
  14. windowClosing
  15. windowOpened
  16. windowActivated
  17. windowDeactived

Setiap event object memiliki tipe event yang berbeda sehingga kita harus menentukan tipe event sebelum menentukan jenis interface listener karena tipe event memiliki jenis interface yang bersesuaian.

Berikut merupakan tipe event yang ada di bahasa Java:

  1. ActionEvent
  2. ItemEvent
  3. WindowEvent
  4. ContainerEvent
  5. ComponenEvent
  6. FocusEvent
  7. TextEvent
  8. KeyEvent
  9. MouseEvent
  10. AdjustmentEvent

Berikut juga merupakan interface listener yang terdapat pada bahasa Java:

  1. ActionListener: menerima event action pada suatu komponen.
  2. ItemListener: menerima item event.
  3. WindowListener: menerima aksi atas perubahan windows.
  4. ContainerListener
  5. ComponenListener
  6. FocusListener: menerima keyboard focus events pada sebuah komponen.
  7. TextListener
  8. KeyListener: keyboard event dihasilkan ketika sebuah key ditekan, dilepas, atau diketik.
  9. MouseListener: menerima mouse event pada suatu komponen.
  10. MouseMotionListener: menerima mouse motion event.
  11. AdjustmentListener: bereaksi terhadap perubahan yang terjadi.

 

Berikut merupakan tahapan mengenai cara melakukan event handling dalam Java:

  1. Deklarasikan class yang akan melakukan event handle yang terjadi dan tuliskan kode yang menyatakan class tersebut mengimplementasikan interface listener.
  2. Event source mendaftarkan sebuah listener melalui method add<type>Listener
  3. Kode yang mengimplementasikan method pada interface listener pada class akan melakukan event handle.

8

Gambar XI.C.1.1: Contoh Penerapan Event Handle

Concurrency

 

  1. Pengertian Concurrency

Concurrency merupakan landasan umum perancangan sistem operasi. Proses-proses disebut concurrency jika proses-proses (lebih dari satu proses) berada pada saat yang sama. Proses-proses yang mengalami kongkuren dapat berdiri sendiri (independen) atau dapat saling berinteraksi, sehingga membutuhkan sinkronisasi atau koordinasi proses yang baik. Untuk penanganan kongkuren, bahasa pemograman saat ini telah memiliki mekanisme kongkurensi dimana dalam penerapannya perlu dukungan sistem operasi dimana bahasa berada.

Dalam menjalankan suatu program, ada beberapa hal yang harus diperhatikan yaitu:

  • Program: file yang dieksekusi
  • Proses: dalam menjalankan suatu program, pasti ada proses
  • Thread: proses ringan, semua proses pasti memiliki thread dan semua thread yang berhubungan dengan proses umum pasti memiliki memory umum.
  • Task: mirip dengan thread tapi tidak berhubungan langsung dengan operating system dan tidak membuat thread operating system sendiri.

 

Terdapat berbagai tingkatan level yaitu:

  • Instruction level:eksekusi dua atau lebih mesin instruksi secara bersamaan
  • Statement level: eksekusi dua atau lebih statement secara bersamaan
  • (Subprogram) Unit level: eksekusi dua atau lebih subprogram secara bersamaan
  • Program level: eksekusi dua atau lebih program secara bersamaan

Terdapat dua jenis concurrency dalam unit control, yaitu:

  • Physical concurreny:anggapan bahwa ada lebih dari satu processor sehingga beberapa sub program dijalankan bersamaan.
  • Logical concurrency:anggapan bahwa ada banyak processor yang menyediakan concurrency, yang pada kenyataannya hanya terdapat satu processor yang interleaved saat program dieksekusi

 

Karena concurrency dapat menjalankan lebih dari satu program maka synconisasi dibutuhkan untuk menjalankan proses dengan baik. Sinkronisasi merupakan suatu mekanisme yang bertujuan unutk mengatur urutan-urutan task yang akan dieksekusi.

Task merupakan unit program yang dapat dieksekusi bersamaan dengan unit lain dalam suatu program.terdapat dua jenis umum task dalam suatu program yaitu:

  • Heavyweight tasks yang dapat dieksekusi dalam addressnya masing-masing.
  • Dan lightweight task yang dapat dieksekusi dalam address yang sama.

Task dapat dikatakan disjoint apabila task tersebut tidak dapat berhubungan dengan task yang lain dalam suatu program.

Sinkronisasi dapat dibagi menjadi dua jenis yaitu:

  • Competitive synchronitation dimana dalam suatu program terdapat dua atau lebih task yang harus menggunakan resource yang tidak dapat digunakan berulang-ulang kali.
  • Cooperation synchronitation dimana task A harus menunggu task B untuk menyelesaikan suatu tugas sehingga task A dapat melanjutkan eksekusinya.

Untuk dapat mengatur urutan-urutan task dalam suatu program maka sinkronisasi harus dapat menghentikan sementara task-task tersebut. Biarpun suatu mesin mempunyai satu atau lebih processor, pasti ada kemungkin dimana task melebihi processor dan dalam sebuah runtime tersebut maka pasti ada scheduler untuk mengatur task-task tersebut.

Keadaan task:

  • New: telah dibuat tetapi belum berjalan.
  • Ready: siap untuk dijalankan tetapi belum dijalankan. Baik task belum diberi processor atau sudah berjalan tetapi diblock
  • Running: task sudah berjalan
  • Blocked: task sudah berjalan tetapi tidak dapat melanjutkan. Biasanya menunggu suatu event.
  • Dead: task sudah mengerjakan tugasnya atau dipaksa berhenti oleh program

1

Gambar X.A.1: Flow Chart Keadaan Task

 

Dalam menjalankan suatu program task memiliki karakteristik dimana program tersebut terus berjalan hingga selesai,Karakteristik tersebut disebut liveness.Jika ada kondisi dimana program berjalan,pasti ada kondisi dimana program tersebut berhenti dikarenakan diblock atau dipaksa olah program untuk berhenti.Kondisi tersebut disebut deadlock.

Ada berbagai unutk melakukan sinkronisasi yaitu:

  • Semaphores
  • Monitors
  • Message Passing

 

 

  1. Concurrency dalam Java

Java adalah bahasa pemrograman banyak thread, yang artinya beberapa hal bisa dilakukan bersama-sama. Thread adalah unit terkecil dari eksekusi suatu program. Thread mengeksekusi rangkaian instruksi satu demi satu. Ketika sistem menjalankan program, komputer akan membuat thread baru. (Thread dalam konteks ini disebut proses, akan tetapi perbedaanya tidank penting di sini). Instruksi-instruksi dalam program akan dieksekusi oleh thread ini secara berantai, satu demi satu dari awal hingga akhir. Thread disebut “mati” jika program selesai dieksekusi.

 

Java bisa membuat satu atau lebih thread yang bisa dijalankan secara paralel. Hal ini adalah bagian mendasar, yang dibuat di dalam core bahasa, bukan merupakan tambahan (add-on) seperti bahasa pemrograman lain. Tetap saja pemrogaman dengan banyak thread adalah sesuatu yang tidak mudah.

 

  1. Pembuatan Thread

Ada dua cara yang dapat digunakan untuk membuat sebuah thread baru. Yang pertama adalah dengan membuat sebuah objek thread dengan menyertakan sebuah objek yang mengimplementasikan interface Runnable.

2

Gambar X.B.1.1: Pembuatan Thread dengan Implementasi Interface Runnable

3
Gambar X.B.1.2: Pembuatan Thread dengan Objek yang Diturunkan dari Class
Yang kedua dengan membuat sebuah objek yang diturunkan dari sebuah class yaitu Thread

  1. Pause Thread

Sebuah thread dapat diberhentikan sementara. Salah satu cara yang dapat digunakan adalah dengan menggunakan method sleep() yang dimiliki oleh objek thread. Melalui method ini anda dapat memberhentikan sebuah thread selama selang waktu tertentu.

4

Gambar X.B.2.1: Contoh Pause Thread

  1. Interrupt Thread

Interrupt menunjukkan  bahwa sebuah thread harus berhenti melakukan apa yang sedang dikerjakan dan melakukan pekerjaan lainnya. Anda dapat menentukan apa yang akan dikerjakan sebuah thread jika ia di interrupt.

5

Gambar X.B.3.1: Contoh Interupt Thread

 

  1. Join Thread

Method join() pada objek thread memungkinkan sebuah thread untuk berhenti sementara hingga thread yang ia join telah selesai dieksekusi.

6

Gambar X.B.4.1: Contoh Join Thread

Object Oriented Program

 

  1. Pengertian Object Oriented Program

OOP (Object Oriented Programming) adalah suatu metode pemrograman yang berorientasi kepada objek. Tujuan dari OOP diciptakan adalah untuk mempermudah pengembangan program dengan cara mengikuti model yang telah ada di kehidupan sehari-hari. Jadi setiap bagian dari suatu permasalahan adalah objek, nah objek itu sendiri merupakan gabungan dari beberapa objek yang lebih kecil lagi. Contoh pesawat, pesawat adalah sebuah objek. Pesawat itu sendiri terbentuk dari beberapa objek yang lebih kecil lagi seperti mesin, roda, baling-baling, kursi, dll. Pesawat sebagai objek yang terbentuk dari objek-objek yang lebih kecil saling berhubungan, berinteraksi, berkomunikasi dan saling mengirim pesan kepada objek-objek yang lainnya. Begitu juga dengan program, sebuah objek yang besar dibentuk dari beberapa objek yang lebih kecil, objek-objek itu saling berkomunikasi, dan saling berkirim pesan kepada objek yang lain.

  1. Komponen Object Oriented Program
  2. Object

Setiap objek memiliki dua karakteristik yaitu Attribute (State) dan BehaviorAttribute (State) merupakan identitas atau informasi objek itu sendiri atau disebut juga sebagai variable, sedangkan Behavior adalah tingkah laku atau apa yang dapat dilakukan oleh objek itu atau disebut juga sebagai method.
Sebagai contoh Attribute (State) dari pesawat adalah nama pesawat, tipe, warna, tahun produksi, roda, dll. Sedangkan Behavior dari pesawat adalah cara menghidupkan mesin, cara menerbangkan pesawat (take off)

Contoh :
-Titik
Titik merupakan sebuah objek yang terdiri dari posisi x dan posisi y
Persegipanjang
Persegipanjang merupakan objek yang mempunyai panjang dan lebar

  1. Class

Kelas merupakan cetakan atau blueprint atau prototype, hasil dari cetakan itu disebut objek. Contoh pesawat Boeing 737 dibuat dengan rancangan yang sama, rancangan pesawat ini disebut kelas. Hasil rancangan itu menjadi pesawat Boeing 737 yang disebut objek. Pesawat-pesawat hasil rancangan tadi bisa memiliki warna, nama yang berbeda-beda tergantung perusahaan penerbangannya. Disini jelas bahwa objek memiliki sifat independen. Objek adalah instance dari kelas, satu kelas bisa memiliki beberapa objek.

 

  1. Instance

Kelas yang telah terdefinisi dapat dijalankan (run-time) dalam bentuk instan di memori.

Contoh:

PersegiPanjang.pp = new PersegiPanjang();

Maksud dari perintah di atas adalah sebagai berikut :

  • Instan pp merupakan sebuah objek kelas PersegiPanjang dimana pp dibentuk oleh konstruktor Persegipanjang();
  • Konstruktor (Constructor) merupakan sebuah method dimana nama method tersebut sama dengan nama kelas. Konstruktor tidak mengembalikan nilai tetapi dapat dilewati atau diberikan parameter.Instan pp berjalan pada memory komputer.
  1. Method

Method atau fungsi atau operasi atau behaviour merupakan perintah-perintah prosedural yang ditempatkan pada kelas untuk mendapat hasil dari perintah-perintah tersebut.

  1. Message Passing

Setiap objek dapat menerima atau mengirimkan pesan. Pesan-pesan tersebut bukan hanya berbentuk primitif variable (integer, double, dll), tetapi pesan-pesan tersebut dapat berupa objek lainnya.

Contoh: :
pp.setPanjang(10);
Maksud perintah diatas adalah sebagai berikut :
pp diberikan nilai panjan sebesar 10

  1. Konsep Object Oriented Program
  2. Class Abstraksi
  • Kelas merupakan deskripsi abstrak informasi dan tingkah laku dari sekumpulan data.
  • Kelas dapat diilustrasikan sebagai suatu cetak biru(blueprint) atau prototipe yang digunakan untuk menciptakan objek.
  • Kelas merupakan tipe data bagi objek yang mengenkapsulasi data dan operasi pada data dalam suatu unit tunggal.
  • Kelas mendefinisikan suatu struktur yang terdiri atas data kelas (data field), prosedur atau fungsi (method), dan sifat kelas (property).
  1. Enkapsulasi
  • Istilah enkapsulasi sebenarnya adalah kombinasi data dan fungsionalitas dalam sebuah unit tunggal sebagai bentuk untuk menyembunyikan detail informasi.
  • Proses enkapsulasi memudahkan kita untuk menggunakan sebuah objek dari suatu kelas karena kita tidak perlu mengetahui segala hal secara rinci.
  • Enkapsulasi menekankan pada antarmuka suatu kelas, atau dengan kata lain bagaimana menggunakan objek kelas tertentu.

 

Contoh: kelas mobil menyediakan antarmuka fungsi untuk menjalankan mobil tersebut, tanpa kita perlu tahu komposisi bahan bakar, udara dan kalor yang diperlukan untuk proses tersebut. Contoh penggunaannya antara lain:

-Private
Variabel atau method hanya dapat diakses oleh objek itu saja.

-Public
Variabel atau method dapat diakses oleh objek itu sendiri dan objek lainny

-Protected
Variabel dan method dapat diakses oleh objek itu sendiri dan turunannya.

  1. Inheritance
  • Kita dapat mendefinisikan suatu kelas baru dengan mewarisi sifat dari kelas lain yang sudah ada.
  • Penurunan sifat ini bisa dilakukan secara bertingkattingkat, sehingga semakin ke bawah kelas tersebut menjadi semakin spesifik.
  • Sub kelas memungkinkan kita untuk melakukan spesifikasi detail dan perilaku khusus dari kelas supernya.
  • Dengan konsep pewarisan, seorang programmer dapat menggunakan kode yang telah ditulisnya pada kelas super berulang kali pada kelas-kelas turunannya tanpa harus menulis ulang semua kodekode itu.
  1. Polymorphism
  • Polimorfisme merupakan kemampuan objekobjek yang berbeda kelas namun terkait dalam pewarisan untuk merespon secara berbeda terhadap suatu pesan yang sama.
  • Polimorfisme juga dapat dikatakan kemampuan sebuah objek untuk memutuskan method mana yang akan diterapkan padanya, tergantung letak objek tersebut pada jenjang pewarisan.
  • Method overriding.
  • Method name overloading.

Contoh:

PersegiPanjang pp = new PersegiPanjang
Titik ttk = pp;

Maksud pada 2 baris perintah diatas adalah
– Instan pp merupakan objek kelas PersegiPanjang PersegiPanjang dimana pp dibentuk oleh konstruktor Persegipanjang();
– Instan ttk merupakan objek kelas Titik
– Instan ttk dibentuk dari instan pp yang merupakan turunan dari pp (Polimorphisme)
– Nilai instan ttk sama dengan instan pp
– Nilai instan pp yang dianggap pada instan ttk adalah x,y. Sedangkan panjang dan lebar diabaikan.

  1. Karakteristik Object Oriented Program
  • Semua adalah objek.
  • Komputasi dilakukan dengan komunikasi antar objek. Setiap objek berkomunikasi dengan objek yang lain melalui pengiriman dan penerimaan pesan.
  • Sebuah pesan merupakan permintaan atas sekumpulan aksi dengan semua argumen yang diperlukan untuk menyelesaikan suatu tugas tertentu.
  • Setiap objek memiliki memori sendiri, yang dapat terdiri dari objek-objek lainnya.
  • Setiap objek adalah wakil atau representasi dari suatu kelas. Sebuah kelas dapat mewakili sekelompok objek yang sama.
  • Kelas merupakan kumpulan tingkah laku yang berkaitan dengan suatu objek. Jadi, semua objek yang merupakan wakil dari kelas yang sama dapat melakukan aksi yang sama pula.
  • Kelas-kelas diorganisasikan ke dalam struktur pohon yang berakar tunggal, yang dinamakan dengan jenjang pewarisan (inheritance hierarchy).
  • Setiap objek pada umumnya memiliki tiga sifat, yaitu keadaan, operasi dan identitas objek.
  • Operasi merupakan tindakan yang dapat dilakukan oleh sebuah objek.
  • Keadaan objek merupakan koleksi dari seluruh informasi yang dimiliki oleh objek pada suatu saat.
  • Informasi yang terkandung pada objek tersebut pada akhirnya memberikan identitas khusus yang membedakan suatu objek dengan objek lainnya.

Tipe Data Abstrak

 

  1. Pengertian Tipe Data Abstrak

Tipe data abstrak (TDA) atau lebih dikenal dalam bahasa Inggris sebagai Abstract data type (ADT) merupakan model matematika yang merujuk pada sejumlah bentuk struktur data yang memiliki kegunaan atau perilaku yang serupa; atau suatu tipe data dari suatu bahasa pemrograman yang memiliki sematik yang serupa. Tipe data abstrak umumnya didefinisikan tidak secara langsung, melainkan hanya melalui operasi matematis tertentu sehingga membutuhkan penggunaan tipe data tersebut meski dengan risiko kompleksitas yang lebih tinggi atas operasi tersebut.

  1. Konsep Abstraksi

Sebuah abstraksi adalah sebuah tampilan atau perwakilan dari sebuah keberadaan yang memiliki atribut-atribut penting. Konsep abstraksi itu penting di bidang programming dan ilmu komputer, hampir semua bahasa pemrograman mendukung penggunaan proses abstraksi dengan subprogram. Hampir semua bahasa pemrograman di designed sejak 1980 mendukung abstraksi data.

  1. Abstraksi Data

Seperti yang sudah dijabarkan di pengertian abstraksi tipe data, abstraksi tipe data di tentukan oleh user dan memenuhi  dua kondisi berikut:

– Perwakilan objek dari type tersembunyi dari unit program yang menggunakan objek ini, maka operasi yang dapat dilakukan adalah operasi yang diberikan dalam definisi type tersebut.

– Deklarasi type dan protocol operasi pada objek dari type ditampung dalam sebuah unit syntax. Program unit lainnya dapat membuat  variabel dari type yang sudah di define oleh user.

  1. Kelebihan dari Abstraksi Data

– Realiability dengan menyembunyikan perwakilan data, kode user tidak akan mengakses objek dari type secara langsung atau bergantung kepada perwakilannya, membolehkan perwakilan data untuk dapat diubah tanpa mempengaruhi kode user.

– Mengurangi range kode dan variabel yang harus programmer perhatikan

– Konflik penamaan akan lebih jarang

– Menyediakan metode untuk menata program

– Mempermudah penerapan perubahan

– Compile yang terpisah

  1. Konstruktor dan Destructor
  2. Konstruktor

Konstruktor adalah fungsi khusus anggota kelas yang otomatis dijalankan pada saat penciptaan objek (mendeklarasikan instance). Konstruktor ditandai dengan namanya, yaitu sama dengan nama kelas. Konstruktor tidak mempunyai tipe hasil (return value). Biasanya konstruktor dipakai untuk inisialisasi anggota data dan melakukan operasi lain seperti membuka file dan melakukan alokasi memori secara dinamis. Meskipun konstruktor tidak harus ada dalam kelas, tetapi jika diperlukan konstruktor dapat lebih dari satu.

Konstruktor adalah fungsi anggota yang mempunyai nama yang sama dengan nama kelas.  Kegunaannya :

  • Mengalokasikan ruang bagi sebuah objek
  • Memberikan nilai awal terhadap anggota data suatu objek
  • Membentuk tugas-tugas umum lainnya

Adapaun jenis-jenis kontruktor adalah sebagai berikut:

  1. Konstruktor default : tidak dapat menerima argumen, anggota data diberi nilai awal tertentu
  2. Konstruktor penyalinan dengan parameter : anggota data diberi nilai awal berasal dari parameter
  3. Konstruktor penyalinan objek lain : parameter berupa objek lain, anggota data diberi nilai awal dari objek lain
  1. Destruktor

Destruktor adalah pasangan konstruktor. Pada saat program membuat objek maka secara otomatis kontruktor akan dijalankan, yang biasanya dimaksudkan untuk memberi nilai awal variable private. Sejalan dengan itu, C++ menyediakan fungsi destruktor (penghancur atau pelenyap) yang secara otomatis akan dijalankan pada saat berakhirnya objek. Setiap kelas mempunyai tepat satu destuktor. jika kita tidak mendeklarasikan sebuah destruktor dalam sebuah kelas, maka destruktor akan diciptakan sendiri oeh compiler C++. Fungsi destruktor itu sendiri adalah untuk mendealokasikan memori dinamis yang diciptakan kontruktor. Nama destruktor sama dengan nama kelas ditambah awalan karakter tilde (~).

Walaupun compiler C++ akan secara otomatis mendeklarasikan sebuah destruktor, akan tetapi sangat disarankan untuk mendeklarasikan sendiri sebuah destruktor. Karena dengan mendeklarasikan sendiri destruktor maka kita mempunyai kontrol penuh terhadap apa yang dilakukan destruktor dari kelas yang kita buat.

Destruktor adalah fungsi anggota yang mempunyai nama yang sama dengan nama kelas ditambah symbol tilde (~) didepannya.

  1. Perbedaan Konstruktor dan Destruktor

Konstruktor :

– Nama kontruktor sama dengan nama kelas

– Kontruktor tidak mempunyai nilai balik

– Kontruktor harus diletakkan di bagian public

– Kontruktor dijalankan dengan sendirinya pada saat objek diciptakan, bahkan kontruktor dijalankan sebelum fungsi main() dijalankan.

Destruktor:

– Nama destruktor  sama dengan nama kelas ditambahkan tanda tilde (~) di depannya.

– Destruktor tidak mempunyai nilai balik.

– Destruktor harus diletakkan di bagian public.

– Destruktor dijalankan dengan sendirinya pada saat objek akan sirna.

  1. Abstraksi Data Pada Java

Abstraksi data pada java mirip seperti C++ selain:

– Semua type yang didefine oleh user adalah class

– Semua object diluangkan dari heap dan diakses melalui pointer(Reference Variables)

– Entity individual dalam class mempunyai akses untuk mengontrol modifier(private atau public)

– Java mempunya mekanisme second scoping, package scope.

– Semua entity di semua class dalam sebuah package yang tidak mempunyai akses control modifier dapat dilihat melalu package.

1

Gambar VII.C.1: Contoh Penggunaan Abstrak Data Type

  1. Kontruksi Enkapsulasi

Program yang besar memerlukan dua hal yang penting:

  1. Suatu cara untuk merapikan(organize) selain dari hanya pembagian sederhana menjadi subprogram lebih kecil
  2. Suatu cara untuk compile per part (kompilasi unit yang jauh lebih kecil dari program utuhnya).

Untuk menjawab kebutuhan tersebut, maka dibentuklah enkapsulasi: pengelompokan subprogram-subprogram yang berkaitan secara logis satu sama lain dan juga berkaitan kepada suatu unit yang dapat di compile secara terpisah.

Fungsi lain dari enkapsulasi adalah sebagai pembungkus, pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain. Konsep enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat diakses sewaktu-waktu, sekaligus menjaga program tersebut.

Begitulah konsep kerja dari enkapsulasi, dia akan melindungi sebuah program dari akses ataupun intervensi dari program lain yang mempengaruhinya. Hal ini sangat menjaga keutuhan program yang telah dibuat dengan konsep dan rencana yang sudah ditentukan.

2

Gambar VII.C.1.2: Contoh Penggunaan Enkapsulasi

Tipe public dan private mempunyai fungsi yang berbeda. Fungsi public yang terdapat dalam class Coba pada variable x, memungkinkan nilai dari variable x dapat diakses oleh class Belajar. Sedangkan variable y yang menggunakan fungsi private tidak dapat dipanggil didalam class Belajar.

  1. Penamaan Enkapsulasi

Pada Bahasa Pemrograman Java, metode yang digunakan untuk mengatur pengelompokan disebut ‘package’

Package, menunjuk pada pengelompokkan class dan/atau  subpackages. Strukturnya dapat disamakan dengan directorinya. Package menyediakan mekanisme untuk mengatur class dan interface dalam jumlah banyak dan menghindari konflik penamaan.

Subprogram

 

Subprogram atau biasa disebut Function(fungsi) dan Method (dalam Java) adalah suatu blok bagian dari program yang digunakan untuk suatu pekerjaan tertentu dan letaknya dipisahkan dari bagian program yang menggunakannya. Tujuan deklarasi fungsi pada program adalah agar program menjadi lebih tersruktur, sehingga mudah untuk dipahami, mencari kesalahan code dan dikembangkan lebih lanjut dan juga keuntungan lainnya adalah dapat mengefisiensi penulisan code jika sekumpulan tugas tersebut akan dipakai berulang kali.

Fungsi memerlukan masukan yang dinamakan argumen atau parameter, yang akan diolah oleh fungsi. Hasil akhir dari sebuah fungsi adalah sebuah nilai balikan berupa nilai kelauaran fungsi. Suatu fungsi secara umum terdiri dari 2 buah bagian yaitu definis fungsi dan tubuh fungsi. Definisi fungsi berisi dengan tipe dari fungsi, nama fungsi dan argumen – argumennya jika ada. Tubuh fungsi berisi statement – statement yang akan melakukan tugas yang diberikan kepada fungsi yang bersangkutan yang ditulis di dalam tanda kurung kurawal.

Syntax secara umum dari function/method :

Gambar VII.1: Syntax Function

1

Berikut contoh penggunaan dalam Java :

2

Gambar VII.2: Contoh Penggunaan Function

Dalam contoh tersebut menggunakan tipe void karena tidak mengembalikan nilai (return value) dan juga belum ada parameter karena tidak membutuhkan inputan pada function/method tersebut.

Jika method tersebut membutuhkan inputan, maka harus ada parameter yang dilemparkan ke formal parameter. Ada beberapa model parameter passing diantaranya pass by value dan pass by reference. Pass by value adalah metode melewatkan parameter berdasarkan nilainya. Disini nilai parameter aktual akan dilewatkan pada saat pemanggilan method akan disalin ke parameter formal sehingga perubahan nilai pada method, tidak akan berpengaruh terhadap argument yang digunakan untuk memanggil method tersebut. Dengan kata lain, perubahan nilai tersebut hana akan dikenali pada method yang bersangkutan saja. Sedangkan pass by reference melewatkan parameter berdasarkan referensinya (alamat dalam memory). Pada cara ini, referensi dari argumen (bukan nilai argumen) akan dilewatkan kedalam parameter formal, bukan disalin. Dengan demikian, nilai yang digunakan di dalam method akan sama dengan nilai yang dalam alamat tersebut. Melalui cara ini setiap perubahan nilai yang terjadi pada method juga akan berpengaruh terhadap argumen yang digunakan untuk memanggilnya.

Di dalam bahasa pemrograman Java tidak dapat secara eksplisit melewatkan parameter berdasarkan nilai (value) ataupun referensinya. Hal tersebut terjadi karena setiap internal Java akan melakukan hal tersebut secara implisit/otomatis. Pada dasarnya Java sama sekali tidak menggunakan pass by reference sehingga hanya memakai konsep pass by value. Namun teori dasar Java secara implisit untuk menghemat memori akan mereference alamat yang sama dari satu obyek (instance) yang sama meskipun ditunjuk oleh variabel yang berbeda.  Sehingga bisa dikatakan apabila parameter bertipe sederhana (seperti  int, char, bolean, dsb), maka java akan menggunakan metode pass by value dan apabila parameter berupa objek, maka bisa dikatakan java menggunakan metode pass by reference.

Berikut contoh pass by value :

3

Gambar VII.3: Contoh Pass By Value

Berikut contoh pass by reference :

4

Gambar VII.4: Contoh Pass By Reference

Overloaded Subprograms

Overloaded subprogram adalah subprogram yang mempunyai nama sama dengan subprogram lain dalam ruang lingkup yang sama. Dalam Java memperbolehkan programmer untuk membuat multiple version dari subprogram dengan nama yang sama.

Control Structures Statement

 

  1. Selection Statement

Selection statement digunakan dalam suatu bahasa pemrograman untuk melakukan cek terhadap suatu kondisi logika yang diinginkan. Selection statement memungkingkan kita memilih satu diantara dua atau tiga pilihan yang ada. Dalam bahasa Java, selection statement dapat terbagi menjadi two way selection dan multiple way selection.

  1. Two Way Selection

Two way selection merupakan suatu keadaan dimana kita harus memilih satu diantara dua pilihan yang ada. Terdapat beberapa jenis two way selection seperti: if-else, nested-if, dan if-else if.

 

  1. If-Else

1

Gambar VI.A.1.A.1: Syntax If-Else

2

Gambar VI.A.1.A.2: Contoh Penggunaan If-Else

 

  1. If – Else – If

6

Gambar VI.A.1.B.1: Syntax If Else If

4

Gambar VI.A.1.B.2: Contoh Pengunaan If Else If

 

 

 

  1. Nested If

5

Gambar VI.A.1.C.1: Syntax Nested If

5

Gambar VI.A.1.C.2: Contoh Penggunaan Nested If

 

  1. Multiple Way Selection

Multiple way selection merupakan suatu keadaan di mana kita harus memilih satu diantara sekian banyak kemungkinan. Dalam bahasa Java, multiple way selection dapat kita jumpai pada penggunaan switch case.

Switch case dirancang khusus untuk menangani pengambilan keputusan yang melibatkan banyak alternative penyelesaian. Banyak orang yang mengatakan bahwa penggunaan switch case jauh lebih mudah dibandingkan penggunaan if-else. Namun, switch case memiliki batasan yaitu tipe data berupa integer atau char.

7

Gambar VI.A.2.1: Syntax Switch Case

Dengan keterangan sebagai berikut:

Constanta 1, constanta 2 merupakan hal yang akan dicocokkan dengan isi value.
Statement adalah pernyataan yang akan di kerjakan jika value (bertipe integer atau karakter) cocok dengan salah satu data dari constanta 1 , constanta 2 atau yang lainnya.

Break: perintah untuk mengakhiri statement. Apabila tidak ada break, komputer akan mengeksekusi intruksi yang berada di bawahnya walaupun berada di case yang berbeda.

Default: bersifat optional. dieksekusi jika value tidak cocok dengan salah satu constanta yang tersedia

  1. Iterative Statement

Iterative statement biasa dikenal sebagai loop yang berarti perulangan sejumlah statement sesuai batas tertentu. Loop bisa dibilang sebagai core dari suatu pemrogramman karena dengan menggunakan loop kita dapat menghemat waktu penulisan. Dalam melakukan loop kita harus memperhatikan dua hal penting yaitu variabel control ( mengendalikan perulangan ) dan variabel dapat dimodifikasi.

Iterative statement pada java dibagi menjadi tiga bagian penting yaitu:

  1. While

8

Gambar VI.B.1.1: Syntax While

 

Pada while dia akan melakukan cek terhadap boolean expression, bila benar akan dijalankan. Bila tidak maka tidak akan berjalan.

Char While

10

Gambar VI.B.1.2: Contoh Penggunaan While

9

Gambar VI.B.1.3: Flow

 

 

  1. Do While

11

Gambar VI.B.2.1: Syntax Do While

 

Pada do while, statement akan dijalankan satu kali baru dilakukan proses cek terhadap boolean expression. Bila benar maka akan terjadi loop, bila tidak maka loop akan berhenti.

s

Gambar VI.B.2.2: Contoh Penggunaan Do While

 

  1. For

For dalam bahasa pemrogramman Java mempunyai dua tipe di mana tipe tersebut memiliki syntax yang berbeda. Tipe For pada Java terbagi menjadi:

  1. For

12

Gambar VI.B.3.A.1: Syntax For

13

Gambar VI.B.3.A.2: Contoh Penggunaan For

14

Gambar VI.B.3.A.3: Flow Chart For

 

  1. For Enhanced

15

Gambar VI.B.3.B.1: Syntax For Enchanced

For enhanced biasa digunakan dalam array untuk memudahkan dalam loop.

  1. Branching Statements

Dalam bahasa Java mendukung tiga macam branching statement yaitu break, continue, dan return. Branching statement digunakan untuk menghentikan atau melewati suatu kondisi pada loop.

  1. Break

Break statement berfungsi menghentikan suatu looping bila kondisi terpenuhi.

16

Gambar VI.C.1.1: Contoh Penggunaan Break

 

  1. Continue

Continue statement berfungsi untuk melewati loop bila kondisi terpenuhi tetapi loop tetap berjalan sampai batas awal yang ditetapkan. Jadi, hanya melewati kondisi yang terpenuhi tetapi loop tidak berhenti seperti break.

17

Gambar VI.C.2.1: Contoh Penggunaan Continue

  1. Return

Return statement merupakan statement yang digunakan untuk menghentikan eksekusi dan mengembalikan nilainya.

18

Gambar VI.C.3.1: Syntax Return

Expression dan Assignment Statements

 

  1. Expression

Expression adalah hal – hal mendasar dalam proses perhitungan di dalam bahasa pemrograman. Expression adalah susunan yang terdiri dari operand dan operator. Sedangkan Assignment statement adalah statement yang terdiri dari asiignment operator (=) yang berfungsi untuk menetapkan/menstore nilai dari hasil sebuah expression pada sebuah variabel. Penulisan code sederhananya dapat ditulis :

 

variabel = expression;

contohnya :

int a = b * 2 + 1;

 

Untuk dapat lebih memahami expression evaluation maka kita harus lebih dahulu mengenal dan memahami urutan dari operator dan operand evaluation.

 

  1. Arithmetic Expression

Arithmetic Expression terdiri dari operator, operand, parentheses, dan function call.

Operator adalah simbol untuk memproses nilai/beberapa nilai yang akan menghasilkan suatu nilai yang baru. Arithmetic operator sendiri dibagi menjadi tiga, yaitu :

  • Unary operator, operator yang hanya mempunyai 1 operand
  • Binary operator, operator yang memiliki 2 operand
  • Ternary operator, operator yang memiliki 3 operand

Unary Arithmetic Operators dalam Java

Unary Plus ( +A ) : mengindikasikan sebuah variabel/nilai adalah positif (tidak digunakan juga berarti sama)

Contoh : +num, +num / 5, num1 * +num2

Unary Minus ( – A ) : menindikasikan bahwa sebuah variabel/nilai bernilai negatif

Contoh : -num,  -num / 5, num1 * -num2

Pre-increment Operator: menambah nilai operator secara langsung tanpa harus menunggu eksekusi berikutnya. Contoh syntax  ++<variable-name>

 

Post-increment Operator: menambah Nilai operand yang tersimpan pada memori yang akan berubah pada eksekusi berikutnya. Contoh syntax  <variable-name>++

 

Pre-decrement Operator: mengurangi nilai operand secara langsung tanpa harus menunggu eksekusi berikutnya. Contoh syntax – -<variable-name>

 

Post-decrement Operator: mengurangi Nilai operand yang tersimpan pada memori yang akan berubah pada eksekusi berikutnya. Contoh syntax  <variable-name> – –

Binary Arithmetic Operators dalam Java

Arithmetic Operation digunakan untuk melakukan operasi matematika, seperti penambahan, pengurangan, pembagian, dan modulus (sisa pembagian), namun bisa juga digunakan untuk menggabungkan string

Simbol Nama Operator Contoh
+ Penjumlahan a = b + c
Pengurangan a = b – c
* Perkalian a = b * c
/ Pembagian a = b / c
% Modulus a = b % c
+ Penggabungan String a = “Hello “ + “World”

Tabel V.A.1.1: Operator dalam Java

 

Ternary Operators dalam Java

Dipakai dalam conditional statements dengan sintaks (Condition) ? (kondisi jika true) : (kondisi jika false)

Contoh :          int score; char status;

status = (score >= 70)? ‘P’ : ‘F’ ;      // P =>pass, F =>failed

 

  1. Aturan Presedence dan Associativity dalam Operator

Presedence adalah aturan urutan eksekusi operator berdasarkan tingkat prioritasnya, dimana operator yang memiliki tingkat presedence paling tinggi akan dieksekusi lebih dulu. Sedangkan Assosiative adalah aturan urutan eksekusi operator berdasarkan lokasinya pada suatu expression (dari kiri/kanan), dimana Assosiative ini dipakai dalam operator dengan tingkat presedence yang sama. Berikut adalah tabel urutan presedence dan assosiative:

20

Tabel V.A.2.1: Presedence dan Assosiative

 

 

 

  1. Operand Evaluation Order

Operand Evaluation Order adalah aturan urutan pengambilan nilai suatu operand dari memory. Dalam Java, operand evaluation ordernya dari kiri ke kanan dalam suatu expression.

 

  1. Overloaded Operator

Overloaded Operator adalah operator yang digunakan untuk lebih dari satu tujuan. Dalam Java tidak diperbolehkan menggunakan user-defined overloaded.

 

  1. Type Convertion

Type Convertion adalah cara merubah suatu tipe data ke tipe data lain, dapat terbagi menjadi 2 jenis yaitu narrowing convertion (merubah tipe data sehingga nilai yang terambil tidak mencakup seluruh nilai tipe data awal contohnya dari double ke float) dan widening convertion (konversi yang dapat mencakup setidaknya sama dengan nilai tipe data awal contohnya int ke float). Sedangkan jika berdasarkan cara konversinya juga terbagi 2 yaitu secara implisit (terkonversi secara otomatis, biasa terjadi dalam mix mode yaitu ketika ada 2 tipe data berlainan dalam suatu expression) dan eksplisit (dikonversi oleh programmer dengan coding atau biasa disebut casting).

 

Dalam Java, konversi secara implisit hanya terjadi ketika mix mode assignmentnya berjenis widening. Berikut adalah contohnya.

21

Gambar V.A.5.1: Contoh Widening Convertion

Sedangkan untuk narrowing conversion dalam Java harus menggunakan konversi secara eksplisit, berikut contoh cara konversi secara eksplisit dalam Java:

22

Gambar V.A.5.2: Contoh Narrowing Convertion

 

  1. Boolean Expressions

Bahasa pemrograman Java memiliki tipe data boolean, yaitu tipe data yang memiliki nilai true atau false.

 

  1. Relational Expressions

Expression yang membandingkan dua nilai operand dimana hasilnya adalah tipe data boolean (true atau false). Berikut adalah relational (equality) operator dan contoh programnya dalam Java :

==      Equal to!=      Not equal to>       Greater than>=      Greater than or equal to<       Less than<=      Less than or equal to

23

Gambar V.A.7.1: Contoh Relational Expressions

 

  1. Conditional Expressions

Expression yang membandingkan dua boolean expression dimana hasilnya nanti adalah sebuah boolean juga. Berikut contoh conditional operator dan contoh code dalam Java

24

Gambar V.A.8.1: Contoh Conditional Operator

 

 

  1. Comparison Operator Instanceof

Java memiliki instanceof operator membandingkan suatu objek dengan suatu tipe yang spesifik. Ini dapat dipakai untuk menegtahui/mengetes apakah suatu objek adalah instance dari class, instance dari subclass, atau instance dari class yang mengimplementasikan bagian dari interface. Berikut contoh program menggunakan comparison operator.

25

Gambar V.A.9.1: Contoh Comparison Instanceof

 

  1. Assignment Statements

Assigment statements dalam Java menggunakan symbol sama dengan (=) untuk memasukan nilai hasil expression pada suatu variabel.

Syntax secara umum : <target variabel><assignment operator><expression>

 

 

  1. Compound Assignment Operator

Operator yang melakukan proses perhitungan dan memasukan nilai hasilnya sekaligus secara bersamaan. Semua binary arithmetic operator dalam Java memiliki fungsi yang sama dengan compound assignment operator, berikut adalah tabelnya.

Expression Compound Assignment Operator
a = a + b; a += b;
a = a – b; a -= b;
a = a * b; a *= b;
a = a / b; a /= b;
a = a % b; a %= b;

 

Tabel V.B.1.1: Compound Assignment Operator

Tipe Data

 

  1. Pengertian Tipe Data

Tipe data adalah jenis data yang mempunyai suatu batasan baik tempat maupun karakteristik yang sesuai dengan interpretasi data dan dapat diolah oleh komputer untuk memenuhi kebutuhan dalam pemrograman komputer. Di dalam bahasa pemrograman Java, tipe data dapat terbagi menjadi dua bagian besar yaitu tipe data primitif dan tipe data referensi.

  1. Tipe Data Primitif

Tipe data primitive merupakan tipe data standar yang tidak diturunkan dari tipe data lain atau dari objek manapun. Tipe data ini merupakan tipe data yang paling sering digunakan dalam program Java. Tipe data primitif dapat terbagi menjadi delapan bagian yaitu:

  1. Integer

Integer atau biasa disingkat dengan int merupakan tipe data yang menampung data bilangan bulat yang memiliki bilai dari 2147483648 sampai dengan – 2147483647 dan menempati 4 byte dalam memori. Tipe data ini sangat cocok untuk menyimpan data yang hasilnya diharapkan memiliki nilai bulat. Walaupun pembagian yang menghasilkan nilai desimal, hasil yang ditampilkan akan bernilai bulat.

12

Gambar IV.B.1.1: Contoh Mendeklarasikan Integer

 

  1. Byte

Byte memiliki definisi yang sama dengan integer. Namun, terdapat suatu perbedaan antara byte dan integer. Hal tersebut yaitu range nilai byte lebih kecil dibandingkan integer. Byte memiliki range nilai dari -128 sampai +127 dan menempati 1 byte di memori.

13

Gambar IV.B.2.1: Contoh Mendeklarasikan Byte

 

  1. Short

Tipe data ini menempati 2 byte dalam memori dan dapat menyimpan bilangan bulat dan memiliki nilai minimum -32.768 dan nilai maksimum +32.768. Walaupun hampir sama dengan byte, tipe data ini biasanya digunakan untuk angka-angka yang kecil dan bisa dipakai menyatakan nilai array yang lebih besar dibandingkan byte.

14

Gambar IV.B.3.1: Contoh Mendeklarasikan Short

  1. Long

Long merupakan tipe data yang dapat menampung bilangan bulat tetapi yang membedakan tipe data long dengan short serta byte adalah range nilai. Long memiliki nilai dari -9223372036854775808 sampai 9223372036854775807 dan 8 byte pada memori.

 

  1. Double

Double adalah tipe data yang dapat menampung tipe data desimal dan memiliki yang nilai dari -1.7 x 10308 sampai +1.7 x 10308. Tipe data double menempati 8 byte pada memori.

15

Gambar IV.B.5.1: Contoh Mendeklarasikan Double

 

  1. Float

Floar hampir sama dengan double yaitu menyimpan tipe data desimal. Namun, range nilai yang dimiliki double lebih besar dibandingkan float yang hanya-3.4 x 108 hingga + 3.4 x 108 dan menempati 4 byte di memori.

 

  1. Char

Char merupakan tipe data yang menyimpang karakter, namun hanya mampu menyimpan satu karakter saja. Karakter yang disimpan adalah huruf, angka, tanda baca, dan simbol.

Escape Sequence Keterangan
\ddd Karakter octal (ddd)
\uxxxx Karakter Unicode heksadecimal (xxxx)
\’ Petik tunggal
\’’ Petik ganda
\\ Backslash
\r Carriage return
\n Baris baru (line feed)
\f Form feed
\t Tab
\b Backspace

Tabel IV.B.7.1 : Macam-Macam Escape Sequence
16

Gambar IV.B.7.1: Contoh Mendeklarasikan Char

 

  1. Boolean

Boolean merupakan tipe data yang hanya menyimpan dua nilai yaitu true atau false, Boolean biasanya digunakan untuk membuat program dengan kondisi tertentu.

17

Gambar IV.B.8.1: Contoh Mendeklarasikan Boolean

 

  1. Tipe Data Referensi

Tipe data referensi merupakan tipe data yang digunakan untuk memegang referensi dari sebuah objek atau instance dari class. Untuk pendeklarasian tipe data referensi hampir sama dengan tipe data primitif. Bedanya, saat pendeklarasian tipe data referensi, kita harus membuat instance dari class tersebut ke objek. Tipe data referensi terbagi menjadi tiga hal utama, yaitu:

  1. Class

Class dapat diartikan sebagai kerangka yang mendefinisikan variabel dan method umum dari suatu objek. Hal ini dapat diartikan class merupakan kesatuan yang terintegrasi antara method dan variabel yang mengacu pada suatu objek. Dalam dunia pemrogramman, class tidak jauh beda dengan tipe data sederhana. Perbedaannya adalah tipe data sederhana digunakan untuk mendeklarasikan variabel normal sedangkan class digunakan untuk mendeklarasikan variabel berupa objek ( objek reference ).

45

Gambar IV.C.1.1: Contoh Mendeklarasikan Class

 

Setelah kita membuat sebuah class, untuk menggunakannya kita harus membuat sebuah instance dari class tersebut. Berikut cara membuat objek dari class:

19

Gambar IV.C.1.2: Contoh Membuat Objek Class

2.      ArrayTipe data ini memiliki kemampuan untuk menggunakan satu variabel yang menyimpan sebuah data list kemudian memanipulasinya dengan lebih efektif. Sebuah array akan menyimpan beberapa item data yang memiliki tipe data yang sama dalam sebuah blok memori yang berdekatan kemudian dibagi menjadi beberapa slot. 3.      InterfaceInterface merupakan sekumpulan method yang hanya memuat deklarasi dan struktur method tanpa detail implementasinya. Sedangkan detail dari method berada pada class yang mengimplementasikan interface itu. Interface digunakan bila kita ingin mengaplikasikan suatu method yang spesifik, tidak diperoleh dari proses inheritance yang lebih terbatas. Tipe data yang boleh pada interface hanya tipe data konstan.