Showing posts with label Java. Show all posts

13:17:00

بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيم


Di postingan sebelumnya kita telah belajar mengenai CONSTRUCTOR. kali ini kita akan belajar tentang Access Modifier dan Keyword STATIC by practice tentunya. oke langsung buat 2 buah package baru untuk memudahkan pemahaman kita tentang materi postingan ini. beri nama masing-masing package "AccessModifier_dan_KeywordSTATIC" dan "AccessModifier_dan_keywordSTATIC2" atau terserah anda. kemudian buat 2 class baru di package pertama dengan nama "Akses" sebagai main classnya dan satu class lagi dengan nama misal saja 'BelajarKeywordStatic'. juga buat 2 class baru di package kedua dengan nama "Akses" sebagai main classnya dan satu class lagi dengan nama misal saja 'Student' atau terserah anda. kemudian masukkan kode program berikut di masing-masing class tersebut:

Code di Class BelajarKeywordStatic (Package pertama):
package AccessModifier_dan_KeywordSTATIC;

public class BelajarKeywordStatic {

    static String ibu = "Siti Imro'atul K";  //variable diberi static
    static int umur=50;
    String pekerjaan;

    public static void tanyaNama(){     //karena method diberi Static,
        System.out.println("nama ibu = " +ibu); //maka utk dpt mengakses data "ibu" perlu di kasi static jg
    }

    //
    public static int tanyaUmur(){
        int hasilUmur = --umur;
        System.out.println("Umur ibu = " +umur);
        return umur;
    }

}

Code di Class Akses (Package pertama):

package AccessModifier_dan_KeywordSTATIC;

import AccessModifier_dan_keywordSTATIC2.Student; //import class2 di package lain

public class Akses {

    public static void main(String[] args){
        String batas="========================================mulai belajar keyword STATIC=============================================";

        Student newObject = new Student();

        System.out.println("warna kulit = " +newObject.warnaKulit);       //warna kulit bisa diakses dr package ini karena public

        newObject.ultah(100);
        newObject.keTuaan();

        System.out.println(batas);

        //keyword Static
        BelajarKeywordStatic.tanyaNama();   //naahh,... pemanggilannya tak perlu lg bikin objek baru lg
        BelajarKeywordStatic.tanyaUmur();   //tinggal panggil Class nya lalu data/method yg mau ditampilkan

    }
}

Code di Class Student (Package kedua):
package AccessModifier_dan_keywordSTATIC2;

public class Student {


    protected String nama = "dzaki faizal m";    //bisa diakses di 1 package, class ini, dan class turunan
    private int umur = 99;                           //bisa diakses di class ini aja
    int tinggi = 170;                           //tanpa hak akses (default). cuma bisa diakses di 1 package yg sama dan class ini aja.
    public final String warnaKulit = "merah jambu";   //bisa diakses di semua
    private String batas="==============================================================================================";

    public int ultah(int umur){     //agar private umur bisa diakses keluar maka saya bikin method public
        this.umur = umur;      //private hanya bisa diakses di class ini aja
        System.out.println("ini ultah yg ke-" +umur);
        return umur;
    }

    //lagi
    public void keTuaan(){
        System.out.println(batas);
        System.out.println("umur dzaki " +umur +" tahun");
        System.out.println("bikin method biar bisa akses private dr luar class");
    }
}

Code di Class Akses (Package kedua):

package AccessModifier_dan_keywordSTATIC2;

public class Akses {

    public static void main(String[] args){
        Student newObjek = new Student();

        System.out.println(newObjek.nama +" tinggi = " + newObjek.tinggi);    //nama dan tinggi masi bisa diakses dr class lain dlm satu package krn (protected & default)
    }
}

/** * macam access modifier:
 * 1. tanpa hak akses = hanya dpt diakses di 1 package dan class itu sendiri (tiap kita bikin method atau variable tanpa 2,3,4 scr default dah pake ini)
 * 2. private = hanya di class sendiri aja
 * 3. public = bisa diakses disemua
 * 4. protected = di 1 package, class itu, dan di sub2 kelas(class2 turunannya)
 * * ==> yg bisa dikasi hak akses = variable, method, class */

/** * Kegunaan dan aturan2 static = *
1. Atribut/variable, method, dan inner class(nested Class) yg udah dikasi Static * maka utk memanggilnya di Class lain ga perlu bikin2 object baru lg(langsung bisa diakses) *
2. agar suatu data dlm (variable, method, dan inner class) yg dikasi Static dpt diakses, maka data tersebut jg harus diberi keyword Static */

ٱلْـحَـمْـدُ للهِ

14:17:00

بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيم


Di postingan sebelumnya kita telah belajar mengenai Overloading Method. kali ini kita akan belajar tentang Contructor by practice tentunya. oke langsung buat sebuah package dengan nama "Constructor" kemudian buat sebuah class dengan nama Aplikasi sebagai main class nya dan satu class lagi dengan nama misal saja 'Pelanggan'. kemudian masukkan kode program berikut di masing-masing class tersebut:

Code di class Pelanggan:

package Constructor;

public class Pelanggan {

    String nama;
    int umur;

    Pelanggan(){
        System.out.println("Ini Constructor 1");
    }

    Pelanggan(String nama){
        System.out.println("Ini Constructor 2");
    }

    Pelanggan(String nama, int umur){
        System.out.println("Ini Constructor 3");
    }

    void Alamat(){  //method biasa

    }
}


Code di Main class:

package Constructor;

public class Aplikasi {
    public static void main(String[] args){
        Pelanggan Pelangganku = new Pelanggan();
        Pelanggan Pelanggan2 = new Pelanggan("Dzaki Faizal Mubarok");
        Pelanggan pelanggan3 = new Pelanggan("Mubarok", 21);

        Pelangganku.Alamat();
    }
}


NB:
/**

  • constructor = method khusus yg dijalankan otomatis saat sebuah object dibuat. 
  • contructor mirip method cuman bedanya dia dapat langsung diakses dengan hanya mendeklarasikan object nya. 
  • juga memiliki parameter dan dpt juga dioverloading juga diberi access modifier. 
  • pembuatan nama constructor sesuai dengan nama classnya (*tidak ada nilai VOID & RETURN).


cara manggilnya sbb =>
NamaClass Object = new NamaConstructor();
NamaClass Object = new NamaConstructor("parameter");

kapan penggunaan kontruktor?
misal= user mau melakukan input ke suatu form diwajibkan mencantumkan nama + umur maka pd case ini baiknya pake konstruktor sehingga constructor akan dijalankan dulu sebelum method2 lain dijalankan utk manggil isian form. */


ٱلْـحَـمْـدُ للهِ

11:20:00

بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيم


Melanjutkan postingan sebelumnya(Part II) tentang Parameter dan Keyword 'this' . kali ini kita akan belajar mengenai konsep OOP yaitu Overloading. untuk memulai, seperti biasa buatlah sebuah package baru di project OOP yg udah dibuat sebelumnya... disini saya beri nama packagenya "Overloading". dari package yang telah dibuat, kemudian buat sebuah class dengan nama aplikasi sebagai main class nya dan satu class lagi dengan nama misal saja 'Menghitung'. kemudian masukkan kode program berikut di masing-masing class:

Read this code and do write your own code!

code di class Menghitung:
package Overloading;

public class Menghitung {
    int penjumlahan(int angka1, int angka2){
        int hasil = angka1 + angka2;
        return hasil;
    }

    int penjumlahan(int angka1, int angka2, int angka3){ 
        int hasil = angka1 + angka2 + angka3;
        return hasil;
    }

    double penjumlahan(double angka1, double angka2){ //meski sama2 2 parameter namun beda type data
        double hasil = angka1 + angka2;
        return hasil;
    }

    //contoh lagi pake method procedure/void
    void statement(String nama){

    }
    void statement(String nama, String umur){   //ada 2 parameter

    }
    void statement(int nama){       //beda type data

    }
}


code di class Aplikasi:

package Overloading;

public class Aplikasi {

    public static void main(String[] args){
        Menghitung Hitung = new Menghitung(); //bikin instansiasi class Menghitung
        int penjumlahan1 = Hitung.penjumlahan(21, 29);
        int penjumlahan2 = Hitung.penjumlahan(100, 10, 10);
        double penjumlahan3 = Hitung.penjumlahan(2.5, 7.5);

        System.out.println("penjumlahan 2 parameter = " +penjumlahan1);
        System.out.println("penjumlahan 3 parameter = " +penjumlahan2);
        System.out.println("penjumlahan 2 parameter beda tipe data = " +penjumlahan3);
    }
}

/**
         Perhatikan cara penulisan Overloading method diatas. kemudian coba Run programnya.
         dengan overloading kita bisa bikin method dengan nama yg sama dlm 1 class
         dg ketentuan ==> jumlah parameter harus beda/boleh sama asal beda tipe datanya.

         dengan fitur overloading ini kita bisa lebih flexible dlm menentukan
         jumlah parameternya. (SERING KITA PAKE NIH...)
       
         */
ini baru basic sekali tentang pengenalan Overloading pada dasarnya konsepnya seperti ini. namun jika dah berkecimpung dengan aplikasi yang kompleks maka pengunaan overloading ini akan sangat berguna.

 ٱلْـحَـمْـدُ للهِ

09:59:00

بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيم


Kalo di postingan sebelumnya kita sudah membahas tentang apa class, attribut, method (procedure dan function), serta membuat object baru dari suatu class dan cara memanggilnya.. sekarang kita akan belajar mengenai "Parameter dan Keyword this". oke langsung saja kita ke kodingnya (*nb: baca juga setiap Comment yg ada di block code nya). Pertama, buat sebuah sebuah package baru beri nama misal parameter_dan_keyword_THIS. kemudian klik kanan packagenya buat sebuah main class dengan nama Aplikasi. Setelah itu Buat sebuah class baru untuk kita belajar parameter misal perhitungan luas segitiga. dan masukkan kode program berikut pada class LuasSegitiga:


package Parameter_dan_keyword_THIS;

public class LuasSegitiga {



    double HitungLuasSegitiga(double alas, double tinggi){ //cth parameter di method function
        double Luas = 0.5 * alas *tinggi;

        return Luas;
    }

    void NamaSegitiga(String namaSegitiga, String Pengukur, String tglUkur){ //cth parameter di method procedure
        System.out.println("Segitiga yang diukur adalah = " +namaSegitiga);
        System.out.println("Diukur Oleh = " +Pengukur);
        System.out.println(tglUkur);
    }
}


Buat sebuah class baru lagi dengan nama KeywordThis karena kelas ini akan kita buat untuk belajar penggunaan keyword this. berikut kode programnya:

package Parameter_dan_keyword_THIS;

public class keywordThis {
    String nama;

    void namaSegitiga(String nama){
        this.nama = nama;   //kalo gak pake THIS (lgsung dipanggil method parameternya), maka hasilnya akan NULL
        this.namaOrang();   //juga bisa digunakan untuk manggil/ngumpulin suatu metod ke dlm 1 method kek gini.
        this.warna();
    }

    void namaOrang(){
        System.out.println("dzaki");
    }
    void warna(){
        System.out.println("hijau tua");
    }
}

/**
 * keyword "this" digunakan untuk mengakses apa2 yg ada di class itu sendiri.
 * misal = atribut dan paramater punya nama yg sama maka bisa diakses salahsatunya dg this, jg utk mengakses nama suatu method di class itu sendiri)
 */

Oke setelah kita membuat 2 class diatas selanjutnya kita panggil keduanya di main class nya yaitu class Aplikasi yg sudah kita buat tadi. masukkan kode program seperti beriukut:

package Parameter_dan_keyword_THIS;

public class Aplikasi {
    public static void main(String[] args){

        LuasSegitiga hitungLuas = new LuasSegitiga();

        double hasil = hitungLuas.HitungLuasSegitiga(125,155.5);    //local variable "hasil"  + 2 nilai parameter

        System.out.println(hasil  +" cm");      //cetak hasil
        hitungLuas.NamaSegitiga("segitiga sama sisi","Dzaki", "08/02/2018"); //masukan 3 nilai parameter

        // pemanggilan harus disesuaikan dg jml parameter yg di deklarasikan

        // ============================== keyword THIS =============================
        keywordThis objek = new keywordThis();

        objek.namaSegitiga("segitiga sama kaki");
        System.out.println(objek.nama);
    }
}

Run program dengan Ctrl+Shift+F10 .

                                                                        ٱلْـحَـمْـدُ للهِ

10:42:00


بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيم


Secara konsep, Object Oriented Programming(OOP) baik di Java, Python, C semua sama. hanya yang membedakan syntax penulisannya saja. Oleh karena itu ketika seorang programmer sudah tau konsep OOP maka akan mudah penerapannya di semua programming language. baik, catatan saya kali ini saya akan belajar OOP di Java secara singkat dan by practice menggunakan IDE yg powerfull like IntelIJ. Untuk membuat sebuah program baru di IntelIJ IDEA, klik file - new - Project - akan muncul Pop-up new project seperti berikut:

 Ilmu Mubarok Java OOP IntellIJ new project

klik next, maka akan ada pilihan apakah ingin generate Main Class. klik checkbox jika iya. kemudian klik next. karena project mau saya bikin multi package(artinya satu project ini untuk semua pembahasan khusus OOP), maka saya buat manual aja main classnya(alias uncheck). Tiap poin pembahasan akan saya bikin sebuah package baru di dalam project yg sama. tapi terserah versi teman2 aja sih sebenernya hehe..

Ilmu Mubarok Java OOP with IntellIJ

Ilmu Mubarok Java OOP with IntellIJ


Setelah project tergenerate, selanjutnya bikin sebuah package baru di folder src dengan nama Class_dan_Attribut karena pembahasan pertama berkenaan dengan ini. kemudian bikin class baru di dalam package tersebut. klik kanan - new - java class (misal namanya Aplikasi).

/** ===================================================
 * aturan membuat kelas : nama class harus sama dg nama file
 * Atribut = semua data2 pendukung yg dimiliki Class (di dlm class itu).
 * dalam 1 class dapat memiliki beberapa variable :
 * 1. local variable = dideklarasikan di sebuah method, konstruktor, dan jg di dlm blok {}
 * 2. instance variable = variable di dlm class tp diluar method , konstruktor dll
 * 3. class variable = variable di dlm class diluar method tp dengan menggunakan keyword static.
 */

Buat sebuah Class baru dengan cara yang sama. kasi nama misal Student. kemudian tulis kode program berikut.


package Class_dan_Attribut;

public class Student {
    String nama="dzaki fm", kelas="14S1TI01";      //baris ini = atribut. naahhh... "nama" merupakan variablenya
    int id = 14117652;
    final double sppVariable = 1250000;     //final menandakan bahwa nilai tdk bisa diubah2 lg oleh class manapun
    double sppTetap = 1800000;


    void Nama(){         //method procedure = bisa banyak statement/perintah tp gak punya nilai
        System.out.println("saya "+nama +" lagi belajar OOP ");
        System.out.println("Nim saya = " +id);
        System.out.println(kelas);
    }

    double bayarSemester(){         // method function  nahh,.. krn punya nilai maka method function hrs dikasi typeData
        double biayaSemester = sppTetap + sppVariable;      //local variable biayaSemester
        System.out.println("jumlah tagihan semester = " +biayaSemester +" Rupiah");

        return biayaSemester;       // 1 method function hanya menyimpan/mencetak 1 nilai/value/hasil
    }

}


Kemudian masukkan kode program berikut di main class Aplikasi yang kita buat pertama tadi, untuk membuat objek baru dari class Student juga memanggil atribut2 nya:

package Class_dan_Attribut;

public class Aplikasi {     //ini class dg nama Aplikasi, nama filenya Aplikasi.java

    public static void main(String[] args) {

        Student panggilNama = new Student();        //membuat object baru dr class Student

        System.out.println(panggilNama.nama);       //panggil langsung variable nama di class Student

        panggilNama.Nama();     //panggil method Nama() di class Student
        panggilNama.bayarSemester();
    }
}

Jadi sekarang kita punya 2 class dalam 1 package yg sama. Kita bisa memanggil class student di main classnya sehingga kita dapat pakai semua atribut2 dalam class student di main class. jika program diatas di run maka hasilnya akan seperti ini:

Ilmu Mubarok OOP in Java with IntelliJ



ٱلْـحَـمْـدُ للهِ

Dzaki Faizal Mubarok (Dzaki_Mubarok)

{picture#https://lh3.googleusercontent.com/-XMtGV06UzCo/WAF2PUZYDwI/AAAAAAAAAfo/7AIatGpPLu0LZY7Nps_8TquCKkJXCqQkgCL0B/w424-d-h440-p-rw/Mubarok%2B%25282%2529.jpg} Website berbagi ilmu dan kebermanfaatan. Aminn Semoga berkah :) {facebook#https://www.facebook.com/mubarok.network} {twitter#https://twitter.com/Dzaki_Mubarrok} {google#https://plus.google.com/u/0/+DzakiMubarok26} {youtube#https://www.youtube.com/channel/UCVsIsEntb5Y3D2YVZIroBMA} {instagram#https://www.instagram.com/dzaki_mubarok/}
Powered by Blogger.