Senin, 02 Oktober 2017

JAVA PROGRAMMING (ORACLE)

Java Logo.svg 
Paradigma:OOP
Muncul Tahun:1990-an
Perancang:Sun Microsystems
Sistem pengetikan:kuat, statis
Implementasi:banyak
Terpengaruh oleh:Objective-CC++SmalltalkEiffel
Mempengaruhi:C#DJ#PHP

Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk telepon genggam. Bahasa ini awalnya dibuat oleh James Gosling saat masih bergabung di Sun Microsystems saat ini merupakan bagian dari Oracle dan dirilis tahun 1995. Bahasa ini banyak mengadopsi sintaksis yang terdapat pada C dan C++ namun dengan sintaksis model objek yang lebih sederhana serta dukungan rutin-rutin aras bawah yang minimal. Aplikasi-aplikasi berbasis java umumnya dikompilasi ke dalam p-code(bytecode) dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM). Java merupakan bahasa pemrograman yang bersifat umum/non-spesifik (general purpose), dan secara khusus didisain untuk memanfaatkan dependensi implementasi seminimal mungkin. Karena fungsionalitasnya yang memungkinkan aplikasi java mampu berjalan di beberapa platform sistem operasi yang berbeda, java dikenal pula dengan slogannya, "Tulis sekali, jalankan di mana pun". Saat ini java merupakan bahasa pemrograman yang paling populer digunakan, dan secara luas dimanfaatkan dalam pengembangan berbagai jenis perangkat lunak aplikasi ataupun aplikasi

Sumber : www.wikipedia.org

MATERI PERKULIAHAN

HAND OUT
• Review of Java Primitives
• Review of Strings
• Review of Logical and Relational Operators
• Review of Conditional Statements
• Review of Program Control
• Review of Object Classes
• Review of Constructor and Method Overloading
• Review of Inheritance
Pertemuan 2
 •Read and understand a pre-written Java program consisting of classes and interacting objects
 • Apply the concept of inheritance in the solutions of problems
 • Test classes in isolation
 • Describe when it is more appropriate to use an ArrayList than an Array 3
Project Inherentance
Pertemuan 3 Penerapan Inherentence didalam Class Diagram
Contoh Studi Kasus :
Soal1
-------Hitung Gaji di Sebuah Universitas------
Terdapat dua golongan pegawai di universitas, yaitu Dosen dan Staf biasa. Semua pegawai                   mendapatkan gaji awal yang sama, yaitu 1.500.000
Gaji tambahan dosen dihitung dari jumlah sks yang diampu
Gaji tambahan staf dihitung dari jumlah kehadiran per bulan
1. Buatlah program untuk mencetak semua gaji pegawai
2. Buatlah Class Digram dari program tersebut


//CLASS Ke-1 
package penggajian;
/**
 *
 * @author AryaDharmaadi
 */
public class Pegawai {

    private String nip;
    private String nama;
    private String alamat;
 
    public Pegawai(){
     
    }

    public Pegawai(String nip, String nama, String alamat) {
        this.nip = nip;
        this.nama = nama;
        this.alamat = alamat;
    }
 
    public void setNama(String nama){
        this.nama = nama;
    }
 
    public String getNama(){
        return this.nama;
    }
 
    public int getGaji(){     
        return 1500000;
    }
}


//CLASS Ke-2
package penggajian;

/**
 *
 * @author AryaDharmaadi
 */
public class Staf extends Pegawai{
 
    private int jumlah_kehadiran;
    private final int TARIF_HARIAN = 50000;
 
    public Staf(){
     
    }
  public Staf(String nip, String nama, String alamat) {
        super(nip, nama, alamat);
    } 
 
    public void setKehadiran(int jumlah_kehadiran){
        this.jumlah_kehadiran = jumlah_kehadiran;
    }
 
    @Override
    public int getGaji(){
        int total_gaji = jumlah_kehadiran*TARIF_HARIAN;     
        return total_gaji+super.getGaji();
    }
}

//CLASS Ke-3
package penggajian;

/**
 *
public class Dosen extends Pegawai{

    private int jumlahSKS;
    private final int TARIF_SKS = 120000;
 
    public Dosen(){
     
    }

    public Dosen(String nip, String nama, String alamat) {
        super(nip, nama, alamat);
    }
 
    public void setSKS(int SKS){
        this.jumlahSKS = SKS;
    }
 
    @Override
    public int getGaji(){
        int total_gaji = jumlahSKS*TARIF_SKS;
        return total_gaji+super.getGaji();
    }
}


//CLASS Ke-4
package penggajian;

/**
 *
 * @author AryaDharmaadi
 */
public class DaftarGaji {
 
    private Pegawai[] listPegawai;
    private int jumlahPegawaiSekarang = 0;
 
    public DaftarGaji(int jumlah_pegawai){
        listPegawai = new Pegawai[jumlah_pegawai];
    }
 
    public void addPegawai(Pegawai p){
        listPegawai[jumlahPegawaiSekarang] = p;
        jumlahPegawaiSekarang++;
    }
 
    public void printSemuaGaji(){
        for (int i=0;i<jumlahPegawaiSekarang;i++){
            System.out.print(listPegawai[i].getNama()+" mendapatkan gaji ");
            System.out.println(listPegawai[i].getGaji());
        }
    }
}


//CLASS Ke-5
package penggajian;

/**
 *
 * @author AryaDharmaadi
 */
public class ProgramUtama {

    public static void main(String[] args) {
     
        Staf s1 = new Staf();
        s1.setNama("Putu");
        s1.setKehadiran(20);
     
        Dosen d1 = new Dosen();
        d1.setNama("Dharmadi");
        d1.setSKS(12);
     
        Pegawai p1 = new Pegawai();
        p1.setNama("Kadek");
     
        DaftarGaji daftar_gaji = new DaftarGaji(3);
        daftar_gaji.addPegawai(s1);
        daftar_gaji.addPegawai(d1);
        daftar_gaji.addPegawai(p1);
        daftar_gaji.printSemuaGaji();
    } 
}

// Sumber https://aryadharmaadi.com/blog/2016/03/30/latihan-soal-penggunaan-pewarisan/

CLASS DIAGRAM

......

Soal 2.
Buatlah Class Diagram dari Program Data Hasil penjuakan Mobil Sport.
Diketahui:
1. Disebuah showroom menjual mobil berjenis sport
2. Untuk mengetahui Data hasil penjualan pada showroom tersebut, semua identitas customer
    dan spesifikasi mobil yang dibeli oleh customer

 Jawaban :







Overview 
This lesson covers the following topics:
• Use Abstract Classes
• Use the instanceof operator to compare object types 
• Use virtual method invocation 
• Use upward and downward casts 
Download Soal Praktikum Abstract Class

Pertemuan 5 Generic Class pada JAVA (Materi daro Oracle)

Tugas Generic

Percobaan 1 (Membuat class NonGeneric, membuatobjekdanmengambilnilaidari class NonGeneric)

a.       Source Code
NonGen.java

package generic;
public class NonGen {
    Object ob;

NonGen(Object o) {
this.ob = o;
    }

    Object getOb() {
        return ob;
    }

   void showType(){
System.out.println("Type of ob is = "+ob.getClass().getName());
   }

}
NonGenDemo.java

package generic;

public class NonGenDemo {

    public static void main(String[] args) {
NonGenintegerObject;
integerObject = new NonGen(88);
integerObject.showType();

int v = (Integer) integerObject.getOb();
System.out.println("value : "+v);

NonGenstrOb = new NonGen("Non-Generics Test");
strOb.showType();

        String str = (String) strOb.getOb();
System.out.println("value : "+str);

integerObject = strOb;
        v = (Integer) integerObject.getOb();
    }


}


b.      Hasil Output

c.       Analisa Program


Percobaan 2 (Membuat class NonGeneric, membuatobjekdanmengambilnilaidari class NonGeneric)
a.       Source Code
Gen.java

package generic;
public class Gen<T> {
    T ob;

Gen(T o){
ob = o;
    }

    T getOb() {
        return ob;
    }

    void showType(){
System.out.println("Type of T is = "+ob.getClass().getName());
   }
}



GenDemo.java

package generic;
public class GenDemo {

    public static void main(String[] args) {
        Gen<Integer>iOb;
iOb = new Gen<Integer>(88);

iOb.showType();

int v = iOb.getOb();
System.out.println("value : "+v);

System.out.println();

        Gen<String>strOb = new Gen<String>("Generic Test");

strOb.showType();

        String str = strOb.getOb();
System.out.println("value : "+str);
    }

}
b.      Hasil Output

c.       Analisa Program

Percobaan 3 (Class Generic denganDua Type Parameter)
a.       Source Code
TwoGen.java

package generic;
public class TwoGen<T, V>{
    T ob1;

    V ob2;

TwoGen(T ob1, V ob2) {
        this.ob1 = ob1;
        this.ob2 = ob2;
    }

    void showType(){
System.out.println("Type of T is "+ob1.getClass().getName());
System.out.println("Type of V is "+ob2.getClass().getName());
    }

    T getOb1() {
        return ob1;
    }

    V getOb2() {
        return ob2;
    }

}

TwoGenDemo.java

package generic;
public class TwoGenDemo {
    public static void main(String[] args) {
TwoGen<Integer, String>tgObj = new TwoGen<Integer, String>(88,
"Generic");
tgObj.showType();
int v = tgObj.getOb1();
System.out.println("value : "+v);
        String str = tgObj.getOb2();
System.out.println("value : "+str);
    }
}



b.      Hasil Output

c.       Analisa Program

Percobaan 4 (Generic pada Method)
a.       Source Code
GenericMethodTest.java

package generic;
public class GenericMethodTest {
    public static <E> void printArray(E[] inputArray){
for(E element : inputArray){
System.out.printf("%s",element);
        }
System.out.println("");
    }

    public static void main(String[] args) {
Integer[] intArray = {1,2,3,4,5};
Double[] doubleArray = {1.1, 2.2, 3.3, 4.4, 5.5};
Character[] charArray = {'J', 'A', 'v', 'A'};

printArray(intArray);
printArray(doubleArray);
printArray(charArray);
    }
}
b.      Hasil Output

c.       Analisa Program

Percobaan 5 (Generic Pada List)
a.       Source Code
ArrayListGenericDemo.java

package generic;
import java.util.*;
public class ArrayListGenericDemo {
    public static void main(String[] args) {
ArrayList<String> data = new ArrayList<String>();
data.add("hello");
data.add("Goodbye");

        Iterator<String> it = data.iterator();
        while(it.hasNext()){
            String s = it.next();
System.out.println(s);
        }
    }

}
b.      Hasil Output

c.       Analisa Program
 Percobaan 6(Generic pada Map)
a.       Source Code
GenericMap.java

package generic;
import java.util.*;
public class GenericMap {
    public static void main(String[] args) {
HashMap<String, Integer>hm = new HashMap<String, Integer>();

hm.put("aple", 20);
hm.put("anggur", 13);
hm.put("jeruk", 5);

System.out.println(hm);
    }

}
b.      Hasil Output

c.       Analisa Program


Percobaan7(Generic pada Map)
a.       Source Code
GenericMap.java

package generic;
public class GenSubtypingDemo {
    public static void main(String[] args) {
        Gen<String> gen1 = new Gen("abc");
        Gen<Object> gen2 = new Gen("abc");

        gen2 = (Gen<Object>)(Object)gen1;
    }
}
b.      Hasil Output


c.       Analisa Program

Pertemuan 7
SOAL UTS -> Langsung Dikerjakan

STRUKTUR DATA


STRUKTUR DATA


Dalam istilah ilmu komputer, sebuah struktur data adalah cara penyimpanan, penyusunan dan pengaturan data di dalam media penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien.
Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi kolom-kolom data, baik itu kolom yang tampak oleh pengguna (user) ataupun kolom yang hanya digunakan untuk keperluan pemrograman yang tidak tampak oleh pengguna. Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan (record). Lebar kolom untuk data dapat berubah dan bervariasi. Ada kolom yang lebarnya berubah secara dinamis sesuai masukan dari pengguna, dan juga ada kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah struktur data dapat diterapkan untuk pengolahan database (misalnya untuk keperluan data keuangan) atau untuk pengolah kata (word processor) yang kolomnya berubah secara dinamis. Contoh struktur data dapat dilihat pada berkas-berkas lembar-sebar (spreadsheet), pangkal-data (database), pengolahan kata, citra yang dipampat (dikompres), juga pemampatan berkas dengan teknik tertentu yang memanfaatkan struktur data.

Sumber : www.wikipedia.org

Materi Perkuliahan :
Hand Out
Pertemuan 1 Pengantar Struktur Data
Pertemuan 2 ,3 Array & Record
Pertemuan 4 Kuliah Tamu di Taman Kridaya Budaya Malang
dengan tema "Bincang Bloger & Media Online(Media Masa Kini) bersama Lingkar malang, tera kota.id &malang citizen" .




Pertemuan 7 Sosialisasi PKM




TIPS n TRIK LOLOS PIMNAS

1. Update Jenis Penelitian Terbaru
2. Membentuk Team dengan Lintas Disiplin Ilmu
3. Udate dan peka terhadap Permasalahan- Permasalahan disekitar, untuk mencari solusi yang akan diangkat dalam penelitian, sehingga menjadi lebih bermanfaat 
4. Judul PKM yang menarik
5. Rancangan harus Realistis

UTS Take Home Dikumpulkan Senin, 27 November 2017
Pertemuan 8 Download Materi Sorting
Pertemuan 9 Download Materi Tree&Graph
Pertemuan 10 Download Soal Quiz

Profile