Minggu, 10 Juli 2022

JAVA DASAR

 1. Sejarah Java

        Java adalah salah satu bahasa pemrograman yang digunakan untuk pemrograman desktop dan berorientasi pada objek yang di kembangkan oleh Sun Microystem, perusahaan yang terkenal dengan Workstation UNIX high-end. Java ini di buat oleh James Gosling dan Patrick Naughton pada tahun 1995.

    Asal usul logo serta nama java sendiri di ambil dari hobi James dan Patrick yang suka meminum kopi. Pada saat itu James dan Patrick berkeliling dunia untuk mencari kopi terenak menurut mereka bedua. Dan pada akhirnya mereka menemukan kopi terenak berada di Indonesia, tepatnya di Pulau Jawa. Dari situlah awal mula tercetusnya nama serta logo java.

2. Jenis-Jenis Java

    a. J2SE (Java 2 Standar Edition), yang di gunakan untuk membuat sebuah program yang bersifat umum atau tidak membutuhkan server di dalamnya.

    b. J2EE (Java 2 Enterprise Edition), yang di gunakan untuk membuat program yang sangat besar dan membutuhkan server dalam programnya.

    c. J2ME (Java 2 Mobile Edition), yang digunakan untuk membuat program berbasis android atau mobile.

3. Java Virtual Machine (JVM)

    Java sendiri hanyalah bahasa pemrograman, otak dibalik tenologi java sebenarnya sebuah teknologi yang disebut Java Virtual Machine. Java Virtual Machine merupakan program yang digunakan untuk mengeksekusi binary file java karena JVM hanya mengerti binary file, sehingga akhirnya banyak bahasa pemrograman yang mengadopsi teknologi JVM, seperti kotlin, Scala, Groovy, dan lain-lain. Dengan begitu, banyak bahasa pemrograman yang lebih canggih dari java, namun mereka tetap jalan di JVM yang sudah terbukti stabil dan bagus.


4. Integrated Development Environment (IDE)

    IDE adalah smart editor yang digunakan untuk mengedit kode program. IDE juga digunakan untuk melakukan otomatisasi proses kompilasi kode program dan otomatisasi proses menjalankan program.

5. Tipe Data dalam Java
  • Integer (int) adalah tipe data yang biasa digunakan apabila bertemu dengan bilangan bulat.
  • Floating Point adalah tipe data yang biasa digunakan untuk bilangan desimal.
  • Char adalah tipe data yang biasa digunakan untuk karakter tunggal yang biasa didefinisikan dengan tanda petik (" ") di awal dan di akhir karakternya.
  • Boolean adalah tipe data yang memiliki dua nilai, yaitu benar (true) dan salah(false).
  • String adalah tipe data yang berisikan data kumpulan karakter atau teks.
6. Variabel dalam Java

        Variabel adalah tempat untuk menyimpan data. Untuk membuat variabel di java kita bisa menggunakan nama tipe data lalu di ikuti nama variabelnya. Nama variabel tidak boleh mengandung whitespace (spasi, enter, tab) dan tidak boleh seluruhnya number.

7. Operator dalam Java
  •  Operator matematika adalah operator yang digunakan untuk pengoperasian matematika, seperti penjumlahan, pengurangan, perkalian dan pembagian.
  • Operator perbandingan adalah operator yang digunakan untuk membandingkan dua buah data. Operator perbandingan ini menghasilkan nilai boolean. Apabila hasil operasi bernilai benar, maka akan bernilai true. Apabila hasil operasi bernilai salah, maka akan bernilai false. Operator yang digunakan, yaitu : > (lebih dari), < (kurang dari), >= (lebih dari sama dengan), <=  (kurang dari sama dengan), == (sama dengan), != (tidak sama dengan).
  • Operator penugasan adalah operator yang fungsinya untuk memberi tugas pada variabel tertentu. Operator yang digunakan yaitu : = (pengisian nilai), += (pengisian dan penambahan), -= (pengisian dan pengurangan), *=  (pengisian dan perkalian), /= (pengisian dan pembagian), %= (pengisian dan sisa bagi).
  • Operator logika adalah operator yang digunakan untuk membuat operasi logika, seperti : logika AND (&&), logika OR ( || ), negasi atau kebalikan (!).
  • Operator bitwise adalah operator yang di gunakan untuk operasi bit (biner). 
  • Operator ternary adalah operator yang digunakan untuk membuat pertanyaan. Operator ini menggunakan simbol tanda tanya (?) dan tanda titik dua (:) untuk memisahkan jawabannya.
    

HANDLING EXCEPTION

 Pengertian Handling Exception

    Merupakan mekanisme yang paling diperlukan dalam menangani error yang terjadi pada saat runtime (program berjalan) atau yang lebih dikenal dengan sebutan runtime error. Secara umum, adanya kesalahan / error yang terjadi pada program pada saat runtime dapat menyebabkan program berhenti atau hang. Untuk itulah diperlukan mekanisme untuk memastikan bahwa program tetap dapat berjalan meskipun terdapat kesalahan yang terjadi.


Penerapan Handling Exception 

    Secara umum, handling exception dapat dilakukan dengan menggunakan keyword Try-Catch. Try digunakan untuk menentukan bagian statement program dimana akan terjadi pengecualian. block dari try ini harus di ikuti dengan catch atau finally. Catch digunakan untuk menangani kesalahan/pengecualian yang terjadi, blok catch ini tidak dapat berdiri sendiri tanpa try. blok catch ini dapat diikuti oleh blok finally.

Jenis Exception 

Beberapa exception yang sering terjadi pada bahasa pemrograman java, yaitu :

  • Arithmetic Exception : untuk perhitungan aritmatika, misalnya sebuah angka di bagi 0.
  • Null pointer exception : bila objek yang ingin di akses masil Null, maka tidak bisa melalui method dari object tersebut.
  • Number format exception : bila ingin melakukan casting tipe data string ke int maka akan terjadi kesalahan ini.
  • IO exception : bila yang diminta adalah angka, tapi yang diinputkan berupa string
Contoh :

int arr[ ] = new int[10];

arr[10] = 25;

Penjelasan:

kode di atas dapat menyebabkan terjadinya exception pada saat runtime, karena index yang di akses melebihi dari size yang telah di definisikan sebelumnya. 

untuk menangani hal tersebut, handling exception dapat di lakukan dengan cara :

int arr[ ] = new int[10];

try{

            arr[10] = 25;

}catch (ArrayOutOfBoundsException) {

            system.out.println(e);

}finally{}

STRUKTUR DATA DALAM JAVA

    Struktur data yang disediakan oleh paket Java Utility dan mampu menjalankan berbagai fungsi. Struktur data ini terdiri dari antarmuka dan kelas berikut: 

  • Enumeration. 
  • BitSet. 
  • Vector. 
  • Stack. 
  • Dictionary. 
  • Hashtable. 
  • Properties.
Berikut penjelasannya 


Enumeration 

    Enum adalah “kelas” khusus yang mewakili sekelompok konstanta (variabel yang tidak dapat diubah, seperti variabel akhir). Untuk membuat enum, gunakan kata kunci enum (bukan class atau interface), dan pisahkan konstanta dengan koma. Perhatikan bahwa mereka harus menggunakan huruf besar.  Enumeration interface mendefinisikan metode yang dengannya Anda dapat menghitung (memperoleh satu per satu) elemen dalam kumpulan objek

 Interface Enumeration itu sendiri bukanlah struktur data, tetapi sangat penting dalam konteks struktur data lainnya. Antarmuka Pencacahan mendefinisikan cara untuk mengambil elemen berturut-turut dari struktur data. Misalnya, Enumerasi mendefinisikan metode yang disebut nextElement yang digunakan untuk mendapatkan elemen berikutnya dalam struktur data yang berisi banyak elemen.

Metode yang di deklarasikan dengan enumeration :

  • Boolean hasMoreElements( ), yaitu saat diimplementasikan, itu harus mengembalikan nilai true saat masih ada lebih banyak elemen untuk di ekstrak, dan false ketika semua elemen telah di sebutkan.
  • Object nextElemen( ), yaitu fungsi yang mengembalikan objek berikutnya dalam pencacah sebagai referensi obejek generik.
BitSet 

    Kelas BitSet mengimplementasikan sekelompok bit atau flag yang dapat diatur dan dihapus secara individual. Kelas ini sangat berguna dalam kasus di mana Anda perlu mengikuti sekumpulan nilai Boolean; Anda cukup menetapkan sedikit untuk setiap nilai dan mengatur atau menghapusnya sebagaimana mestinya. Kelas BitSet membuat tipe array khusus yang menyimpan nilai bit. Array BitSet dapat bertambah besar sesuai kebutuhan. Ini membuatnya mirip dengan vektor bit. BitSet mendefinisikan dua konstruktor, yaitu :

  • BistSet( ), yaitu konstruktor ini membuat objek default.
  • BitSet(int size), yaitu konstruktor ini memungkinkan untuk menentukan ukuran awalnya, yaitu jumlah bit yang dapat di tampung. semua bit diinisialisasi ke nol.
Vector 

    Kelas Vector mirip dengan larik Java tradisional, kecuali bahwa kelas itu dapat berkembang seperlunya untuk mengakomodasi elemen baru. Seperti sebuah array, elemen dari sebuah objek Vektor dapat diakses melalui indeks ke dalam vektor. Hal yang menyenangkan tentang menggunakan kelas Vector adalah Anda tidak perlu khawatir tentang menyetelnya ke ukuran tertentu saat pembuatan; itu menyusut dan tumbuh secara otomatis bila perlu.

Vektor terbukti sangat berguna jika Anda tidak mengetahui ukuran larik terlebih dahulu atau Anda hanya memerlukan satu yang dapat mengubah ukuran selama masa program. Berikut adalah daftar konstruktor yang disediakan oleh kelas vektor :

  • Vector( ) yaitu Konstruktor ini membuat vektor default, yang memiliki ukuran awal 10.
  • Vector(int size) yaitu Konstruktor ini menerima argumen yang sama dengan ukuran yang diperlukan, dan membuat vektor yang kapasitas awalnya ditentukan berdasarkan ukuran.
  • Vector(int size, int incr) yaitu Konstruktor ini membuat vektor yang kapasitas awalnya ditentukan oleh ukuran dan yang kenaikannya ditentukan dengan incr. Kenaikan menentukan jumlah elemen yang akan dialokasikan setiap kali vektor diubah ukurannya ke atas.
  • Vector(Collection c) yaitu Konstruktor ini membuat vektor yang berisi elemen Collection c.
Stack 

    Stack adalah subclass dari Vector yang mengimplementasikan tumpukan standar terakhir masuk, keluar pertama. Stack hanya mendefinisikan konstruktor default, yang membuat tumpukan kosong. Stack menyertakan semua metode yang ditentukan oleh Vector, dan menambahkan beberapa metode miliknya sendiri. dapat dibuat dengan menulis Stack().    

Kelas Stack mengimplementasikan tumpukan elemen terakhir masuk pertama keluar (LIFO). Anda dapat menganggap tumpukan secara harfiah sebagai tumpukan objek vertikal; ketika Anda menambahkan elemen baru, itu akan ditumpuk di atas yang lain. Saat Anda menarik elemen dari tumpukan, elemen tersebut akan terlepas dari atas. Dengan kata lain, elemen terakhir yang Anda tambahkan ke tumpukan adalah yang pertama keluar.

Metode yang di definisikan stack :

  • boolean empty() yaitu Menguji apakah tumpukan ini kosong. Mengembalikan nilai benar jika tumpukan kosong, dan mengembalikan nilai salah jika tumpukan berisi elemen.
  •  Object peek( ) yaitu Mengembalikan elemen di atas tumpukan, tetapi tidak menghapusnya.
  • Object pop( ) yaitu Mengembalikan elemen di atas tumpukan, menghapusnya dalam proses.
  • Object push(Object element) yaitu Mendorong elemen ke tumpukan. Elemen juga dikembalikan.
  • int search(Object element) yaitu Mencari elemen dalam tumpukan. Jika ditemukan, offsetnya dari atas tumpukan akan dikembalikan. Jika tidak, -1 dikembalikan.
Dictionary 

    Dictionary adalah kelas abstrak yang mewakili repositori penyimpanan kunci / nilai dan beroperasi seperti Map. Diberikan kunci dan nilai, Anda bisa menyimpan nilai dalam objek Dictionary. Setelah nilai disimpan, Anda dapat mengambilnya kembali dengan menggunakan kuncinya. Jadi, seperti peta, kamus dapat dianggap sebagai daftar pasangan kunci / nilai.

Hashtable 

Hashtable adalah bagian dari java.util asli dan merupakan implementasi konkret dari Kamus. Namun, Java 2 merekayasa ulang Hashtable sehingga ia juga mengimplementasikan antarmuka Peta. Dengan demikian, Hashtable sekarang diintegrasikan ke dalam kerangka koleksi. Ini mirip dengan HashMap, tetapi disinkronkan. Kelas Hashtable menyediakan sarana untuk mengatur data berdasarkan beberapa struktur kunci yang ditentukan pengguna. Misalnya, dalam tabel hash daftar alamat Anda bisa menyimpan dan mengurutkan data berdasarkan kunci seperti kode pos daripada nama orang. Arti khusus dari kunci yang berkaitan dengan tabel hash sepenuhnya bergantung pada penggunaan tabel hash dan data yang dikandungnya.

Konstruktor yang disediakan kelas hashtable :

  • Hashtable( ) yaitu Ini adalah konstruktor default dari tabel hash yang dibuatnya untuk kelas Hashtable.
  • Hashtable(int size) yaitu Konstruktor ini menerima parameter integer dan membuat tabel hash yang memiliki ukuran awal yang ditentukan oleh ukuran nilai integer.
  • Hashtable(int size, float fillRatio) yaitu Ini membuat tabel hash yang memiliki ukuran awal yang ditentukan oleh ukuran dan rasio isian yang ditentukan oleh fillRatio. Rasio ini harus antara 0,0 dan 1,0, dan ini menentukan seberapa penuh tabel hash sebelum diubah ukurannya ke atas.
  • Hashtable(Map < ? extends K, ? extends V > t) yaitu Ini membangun Hashtable dengan pemetaan yang diberikan.
Properties 

    Properti adalah subclass dari Hashtable. Ini digunakan untuk memelihara daftar nilai di mana kuncinya adalah String dan nilainya juga String. Kelas Properties digunakan oleh banyak kelas Java lainnya. Misalnya, ini adalah tipe objek yang dikembalikan oleh System.getProperties () saat mendapatkan nilai lingkungan.  Properti menentukan variabel contoh berikut. Variabel ini menyimpan daftar properti default yang terkait dengan objek Properti. Kode membuat Properties adalah Properties defaults.

Konstruktor yang di sediakan Kelas properties :

  • Properties( ) yaitu Konstruktor ini membuat objek Properti yang tidak memiliki nilai default.
  • Properties(Properties propDefault) yaitu Membuat objek yang menggunakan propDefault sebagai nilai defaultnya. Dalam kedua kasus tersebut, daftar properti kosong.
Linked List

    LinkList dapat diilustrasikan seperti kereta api, dimana kereta api terdiri dari gerbong-gerbong yang saling terhubung yang dapat mengangkut penumpang (Data). Gerbong (Node/Simpul) disini berfungsi untuk menyimpan data. 

Setiap Node pada LinkedList mempunyai field yang berisi Pointer yang menghubungkan ke node berikutnya dan juga memiliki field yang berisi Data. Akhir dari LinkedList ditandai dengan Node terakhir akan menunjuk ke Null yang akan digunakan sebagai kondisi berhenti pada LingkedList. 

REKURSIF DALAM JAVA

 Pengertian Rekursif 

    Rekursif berarti suatu proses yang memanggil dirinya sendiri. Pemanggilan prosedur atau fungsi ke dirinya sendiri bisa berarti proses yang berulang yang tidak bisa diketahui kapan akan berakhir. Dalam rekursif sebenarnya terkandung pengertian prosedur atau fungsi. Perbedaannya adalah bahwa rekursif bisa memanggil ke dirinya sendiri, tetapi prosedur atau fungsi harus dipanggil lewat pemanggil prosedur atau fungsi. supaya tidak terjadi Infinitely Looping atau Perulangan terus menerus, kita perlu menambahkan sebuah statement kondisi dimana program akan berakhir jika pembatasnya sudah terpenuhi.

Bentuk Rekursif 

    Suatu fungsi/prosedur yang memanggil dirinya sendiri, bentuk rekursif maksudnya bentuk dimana pemanggilan fungsi terdapat dalam body fungsi.  Dengan rekursif, program akan lebih mudah di lihat.

Tujuan dari bentuk rekursif :

  • menyederhanakan penulisan program 
  • Menggantikan bentuk iterasi 
Syarat bentuk rekursif :

  • ada kondisi terminal (basis)
  • ada subroutine call yang melibatkan parameter yang nilainya menuju kondisi terminal (recurrence)
Kekurangan Perulangan Rekursif

  • Tidak bisa melakukan nested loop atau looping bersarang.
  • biasanya membuat fungsi yang sulit di pahami, hanya cocok untuk persoalan tertentu saja.
  • memerlukan stack yang lebih besar
  • proses lumayan berbelit karena terdapat pemanggilan fungsi yang berulang-ulang dan pemanggilan data yang di tumpuk
Kelebihan Perulangan Rekursif

  • Sangat mudah untuk melakukan perulangan dengan batasan yang luas dalam artian melakukan perulangan dalam skala yang besar.
  • dapat melakukan perulangan dengan batasan fungsi



METHOD DALAM JAVA

 Java Method 

    Method (function di dalam bahasa pemrograman yang lain) adalah sekumpulan blok kode yang melakukan tugas tertentu. Method berguna untuk membagi masalah yang kompleks menjadi beberapa bagian yang lebih kecil, sehingga program yang dibuat mudah dipahami dan dapat digunakan kembali.

    Pada Java terdapat dua tipe method: 

  • User-defined Methods: method yang dibuat oleh programmer sesuai kebutuhannya. 
  • Standard Library Methods: method yang telah tersedia di Java dan tinggal menggunakan saja. 
Mendeklarasikan Method dalam Java 
    modifier static returnType nameOfMethod (parameter1, parameter2,..) { // method body } 

Keterangan :
  • modifier - pendefinisian jenis akses apakah method tersebut public, private, dan sebagainya. Lebih lanjut, kunjungi Java Access Specifier.
  • static - jika kita menggunakan kata kunci static, pengaksesan method dapat dilakukan tanpa membuat objek. 
  • returnType - jenis nilai apa yang dikembalikan oleh method. Misalnya jika method memiliki tipe kembalian int maka ia mengembalikan nilai integer.
  • nameOfMethod - identifier yang digunakan untuk merujuk ke method tertentu dalam suatu program.
  • parameter1/parameter2 - nilai yang dimasukkan ke suatu method. Kita bisa memberikan sejumlah argumen ke suatu method.
  • method body - berisi statements kode program untuk melakukan beberapa tugas. Isi method diapit oleh kurung kurawal {}.
Fungsi Method pada Java 
a. Fungsi menggembalikan/menghasilkan nilai (non void function)
b. Fungsi tidak mengembalikan/menghasilkan nilai (void function)

Parameter Method dalam Java 
    Parameter method adalah nilai yang diterima oleh method. Jika sebuah method dibuat dengan parameter, kita perlu memasukkan nilai yang sesuai saat memanggil metode tersebut.

Method Overloading
    Dalam Java, ada dua atau lebih method yang mungkin memiliki nama yang sama, jika berbeda biasanya dalam hal parameter (jumlah parameter berbeda, tipe data pada parameter berbeda, atau keduanya). Method seperti ini disebut method overloading. Method overloading dibedakan oleh jumlah dan jenis tipe data parameternya. 

TIPE DATA ARRAY PADA JAVA

 Pengertian Array 

   Array adalah sebuah variabel yang bisa menyimpan banyak data dengan tipe yang sama dalam satu variabel. Jumlah data di array tidak bisa berubah setelah pertama kali di buat. Tiap data di bedakan dengan index dalam array, index dalam array di mulai dari [0].

Operasi pada Array dalam Java

array[index] : Mengambil data di array

array[index]=value : Mengubah data di array

array length : Mengambil Panjang array


Kita bisa mengakses data array menggunakan perulangan for each. for each digunakan untuk mengakses seluruh data array secara otomatis. 

Ada 2 jenis array, yaitu :

1. Array 1 Dimensi, yaitu sekelompok data yang memiliki nama variabel dan tipe data yang sama . Array 1 dimensi hanya bisa di akses dengan satu index. Sintak array 1 dimensi :

var nama_variable: array[range_index] of tipe_data

2. Array 2 dimensi adalah sekelompok data yang memiliki nama variabel dan tipe data yang sama yang mana elemen-nya bisa diakses dengan 2 buah indeks (baris dan kolom).  Sintak array 2 dimensi :

var nama_variable:array[index_baris][index_kolom] of tipe_data


perbedaan antara array 1D dan 2D yaitu array 1D mewakili beberapa item data sebagai daftar sementara array 2D mewakili beberapa item data sebagai tabel yang terdiri dari baris dan kolom.



STRUKTUR PERULANGAN DALAM JAVA

 1. Perulangan FOR (For Loop)

        For adalah salah satu kata kunci yang bisa digunakan untuk melakukan perulangan dalam java. Blok kode yang terdapat dalam java akan selalu di ulangi selama kondisi for terpenuhi. Perulangan ini digunakan untuk mengiterasi bagian dari program beberapa kali. Jika angka dari iterasi sudah pasti, maka direkomendasikan untuk menggunaan perulangan for.

Syntak Perulangan For :

for(init statement;condition;post statement){

// Blok perulangan

}

Keterangan :

  • init statement akan dieksekusi hanya sekali di awal sebelum perulangan.
  • condition akan di lakukan pengecekan dalam setiap perulangan, jika true perulangan akan di lakukan. jika false perulangan akan berhenti.
  • post statement akan di eksekusi setiap kali di akhir perulangan.
2. Perulangan While ( While Loop)
      Perulangan while adalah perulangan yang mengeksekusi bagian dari program berulang kali berdasarkan kondisi boolean (true/false) yang diberikan.Pada While loop hanya terdapat kondisi perulangan tanpa ada init statement dan post statement. perulangan while direkomendasikan untuk Anda gunakan ketika angka dari iterasi belum pasti. 

2. Perulangan Do-While (Do-While Loop)
        Perulangan do-while adalah perulangan yang mengeksekusi bagian dari program setidaknya satu kali dan eksekusi selanjutnya bergantung pada kondisi boolean yang diberikan. Perbedaan While loop dengan Do-While loop terletak pada pengecekan kondisinya. pada While pengecekan kondisi di lakukan di awal sebelum perulangan di lakukan, sedangkan pada Do-While loop di lakukan setelah perulangan di lakukan.

3. Break & Continue
        Kata kunci break di gunakan untuk menghentikan seluruh perulangan. Sedangkan continue di gunakan untuk menghentikan perulangan saat ini, lalu melanjutkan ke perulangan selanjutnya.

4. Perulangan For Each 
        Perulangan for each digunakan untuk menampilkan isi dari arrayarray itu variabel yang menyimpan lebih dari satu nilai dan memiliki indeks.


STRUKTUR PEMILIHAN

 1. Input dan Output 

   Input => Proses => Output 

Input adalah nilai yang kita masukkan ke dalam program. Proses adalah langkah yang dilakukan untuk mengelola input menjadi sesuatu yang berguna. Output adalah hasil dari pengolahan data.  

Class Input dalam Java 

Berbasis teks :

  • Class scanner
  • Class BufferReader
  • Class Console
Berbasis GUI :

  • JOptionPane
  • Inputbox pada form

2. IF   Else Statement

    Dalam java, if adalah salah satu kunci yang digunakan untuk percabangan. Percabangan artinya kita bisa mengeksekui kode program tertentu ketika satu kondisi terpenuhi. Blok if akan di eksekusi ketika kondisi if bernilai true. Jika ingin mengeksekusi kode program bernilai false maka menggunakan else expresion.


3. Switch Statement 

    Switch adalah statement percabangan yang sama dengan if, namun lebih sederhana cara pembuatannya. Kondisi switch statement hanya untuk program perbandingan.



4. Ternary Operator 

    Ternary operator adalah operator sederhana dari if statement. ternary operator terdiri dari kondisi yang di evaluasi, jika menghasilkan true maka nilai pertama di ambil, jika false maka nilai kedua yang di ambil.


Lingkungan Kerja DBMS Microsoft SQL Server Management Studio

Pengertian DBMS Pengertian DBMS adalah manajemen yang efektif untuk mengorganisasikan sumber daya data. Dengan kata lain, Sistem Basis Data ...