Paradigma: | OOP |
---|---|
Muncul Tahun: | 1990-an |
Perancang: | Sun Microsystems |
Sistem pengetikan: | kuat, statis |
Implementasi: | banyak |
Terpengaruh oleh: | Objective-C, C++, Smalltalk, Eiffel |
Mempengaruhi: | C#, D, J#, 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 :
Download Soal Praktikum Abstract Class
Pertemuan 5 Generic Class pada JAVA (Materi daro Oracle)
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();
}
}
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
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
Pertemuan 5 Generic Class pada JAVA (Materi daro Oracle)
Tugas Generic
Percobaan 1 (Membuat class NonGeneric, membuatobjekdanmengambilnilaidari class NonGeneric)
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