1. Pengenalan Object Oriented Programming
class Kotak {
double panjang ;
double lebar ;
double tinggi ;
void cetakVolume () {
System.out.println("Volume Kotak = " +(panjang*lebar*tinggi));
}
}
class DemoMethod1 {
public static void main (String [] args) {
Kotak k1, k2, k3 ;
k1 = new Kotak () ;
k2 = new Kotak () ;
k3 = new Kotak () ;
k1.panjang = 4; k1.lebar = 3; k1.tinggi = 2;
k2.panjang = 6; k2.lebar = 5; k2.tinggi = 4;
k3.panjang = 8; k3.lebar = 7; k3.tinggi = 6;
k1.cetakVolume () ;
k2.cetakVolume () ;
k3.cetakVolume () ;
}
}
Method ini merupakan method yang tidak mengembalikan nilai. Maka dari itu, kita harus
mengganti tipe kembalian dengan kata kunci void
2. class Kotak1 {
double panjang ;
double lebar ;
double tinggi ;
double hitungVolume () {
double vol = panjang*lebar*tinggi ;
return vol ;
}
}
class DemoMethod {
public static void main (String [] args) {
Kotak1 k1, k2, k3 ;
k1 = new Kotak1 () ;
k2 = new Kotak1 () ;
k3 = new Kotak1 () ;
k1.panjang = 4; k1.lebar = 3; k1.tinggi = 2 ;
k2.panjang = 6; k2.lebar = 5; k2.tinggi = 4 ;
k3.panjang = 8; k3.lebar = 7; k3.tinggi = 6 ;
System.out.println("Volume k1 = "+k1.hitungVolume ()) ;
System.out.println("Volume k2 = "+k2.hitungVolume ()) ;
System.out.println("Volume k3 = "+k3.hitungVolume ()) ;
}
}
Method ini merupakan method yang tidak mengembalikan nilai. Maka dari itu, kita harus
mengganti tipe kembalian dengan kata kunci void
3. class Kotak2 {
double panjang ;
double lebar ;
double tinggi ;
void isiData (double p, double l, double t){
panjang = p; lebar = l; tinggi = t;
}
double hitungVolume (){
return (panjang*lebar*tinggi);
}
}
class DemoMethod2 {
public static void main (String [] args){
Kotak2 k ;
k = new Kotak2 () ;
k.isiData(4,3,2);
System.out.println("Volume kotak = " + k.hitungVolume ());
}
}
4. Array 1 Dimensi
public class Larik {
// data (struktur data)
private int size ;
int [] itemDt ;
//method
private void buatLarik (int n) {
this.size = n ;
this.itemDt = new int[this.size] ;
}
public Larik (int n){
buatLarik (n) ;
}
public int getSize() {
return this.size ;
}
public Larik (int [] dt) {
buatLarik(dt.length) ;
for (int i = 0 ; i < dt.length ; i++) isiItem(i,dt[i]) ;
}
void isiItem (int id, int dt) {
this.itemDt[id] = dt ;
}
public void cetak(String komentar) {
System.out.println(komentar) ;
5. for(int i = 0 ; i<this.size ; i++) {
System.out.print(this.itemDt[i]+" ") ;
}
System.out.println() ;
}
public int findBesar() {
int besar = this.itemDt[0] ;
for (int i = 1 ; i <this.size ; i++){
if (besar < this.itemDt[i]){
besar = this.itemDt[i] ;
}
}
return besar ;
}
/**
* program ini mencari posisi suatu data tertentu di larik
* @param dtCari
* @return
*/
public int getPosisi (int dtCari){
int pos = -99 ;
boolean ketemu = false ;
int i = 0 ;
while (ketemu && i<this.size){
if (dtCari == this.itemDt[i]){
ketemu = true ;
pos = i ;
}i++;
}
return pos ;
}
int getPosMax (int id) {
int max = this.itemDt[id] ;
int posMax = id ;
for (int i = id+1; i<size ; i++){
if (max <= this.itemDt[i]){
max = this.itemDt[i] ;
posMax = i ;
}
}
return posMax ;
}
int getPosMin(int id){
int min = this.itemDt[id] ;
int posMin = id ;
for (int i = id+1;i<size; i++){
if (min >= this.itemDt[i]){
min = this.itemDt[i] ;
posMin = i ;
}
}
return posMin ;
}
public int PencarianBiner(int dtCari, int awal, int akhir){
int pos = -99 ; int tengah = (awal+akhir)/2;
if (dtCari<this.itemDt[tengah]) return PencarianBiner(dtCari, awal, tengah) ;
else if (dtCari > this.itemDt[tengah]) return PencarianBiner (dtCari,
tengah+1,akhir);
6. else if (dtCari == this.itemDt[tengah]) return tengah;
else return pos;
}
/**
* program untuk mencopy isi suatu Larik
* mulai dari posisi k sebanyak n item hasilnya
* dikeluarkan sebagai array baru
*/
public Larik copyLarik(int k, int n){
Larik lHasil = null;
if (n <= this.size-k){
lHasil = new Larik(n);
int j = 0;
for (int i=k; i<k+n; i++){
lHasil.isiItem(j++, this.itemDt[i]);
}
}
return lHasil;
}
/**
* pilihan 0 : urutan dari kecil ke besar
* lainya : urutan dri besar ke kecil
* algoritma pengurutan ini menggunakan selection sort
*/
public Larik Sort (int pilihan) {
Larik lsort = copyLarik (0,size) ;
for (int i=0; i<lsort.getSize();i++){
int posData;
if (pilihan == 0) posData = lsort.getPosMin(i);
else posData = lsort.getPosMax(i);
int dt1 = lsort.itemDt[i];
int dt2 = lsort.itemDt[posData];
lsort.itemDt[i] = dt2;
lsort.itemDt[posData] = dt1;
}
return lsort;
}
public static void main (String[] args) {
int []A = {2,34,5,7,10};
Larik lA = new Larik(A);
lA.cetak("Sebelum");
lA.Sort(0).cetak("Sesudah di sort");
//int k = lA.PencarianBiner(34,0,5);
//System.out.println(k);
Larik lB = lA.Sort(0);
int p = lB.PencarianBiner(10,0,5);
System.out.println(p);
}
}
7. Array 2 Dimensi
public class Matrik {
//Data
private int nBaris, nKolom;
private int [][]itemDt;
public Matrik (int nBrs, int nKlm){
nBaris = nBrs;
nKolom = nKlm;
itemDt = new int [nBaris][nKolom];
}
public Matrik (int [][] dt){
nBaris = dt.length;
nKolom=dt.length;
this.itemDt = new int [nBaris][nKolom];
for(int i = 0; i < nBaris; i++){
for(int j= 0; j < nKolom; j++){
this.setItem(i,j,dt[i][j]);
}
}
}
/**
* Fungsi untuk mendapatkan jumlah baris
* @return jumlah baris
*/
public int getNBaris(){
return nBaris;
}
8. public int getNKolom(){
return nKolom;
}
public int getItem(int idB,int idK){
return this.itemDt [idB][idK];
}
public void setItem(int idB, int idK, int dt){
this.itemDt[idB][idK] = dt;
}
public Matrik tambah(Matrik x){
Matrik y = null;
if ((this.nBaris == x.getNBaris())&&(this.nKolom == x.getNKolom())){
y = new Matrik(x.getNBaris(),x.getNKolom());
for (int i=0; i<this.nBaris; i++){
for (int j=0; j<this.nKolom; j++){
y.setItem(i,j, this.itemDt[i][j]+x.getItem(i,j));
}
}
}
return y;
}
public Larik getBaris(int a) {
Larik gb = new Larik(this.getNKolom());
for (int i = 0; i < this.nKolom; i++) {
gb.isiItem(i,this.getItem(a - 1, i));
}
return gb;
}
public Larik getKolom(int a) {
Larik gk = new Larik(this.getNKolom());
for (int i = 0; i < this.nBaris; i++) {
gk.isiItem(i,this.getItem(i,a - 1 ));
}
return gk;
}
public void cetak(String kom){
System.out.println(kom);
for(int i = 0; i < this.nBaris; i++){
for (int j = 0; j < this.nKolom;j++){
System.out.print(itemDt[i][j]+ " ");
}
System.out.println();
}
}
public static void main (String[] args){
//implementasi untuk ADT_Matrik
Matrik A,B,C;
Larik D;
int [][] X ={{1,2,3},{2,14,5},{16,8,13}};
int [][] Y ={{10,12,0},{5,1,5},{3,1,10}};
A = new Matrik (X);
B = new Matrik (Y);
9. A.cetak("Matrik A");
B.cetak("Matrik B");
C = A.tambah(B);
C.cetak("Matrik C = A + B");
D = C.getBaris(1);
D.cetak("Larik baris ke-1 " );
D = C.getKolom(1);
D.cetak("Larik kolom ke-1 " );
}
}
Stack
public class stack {
//Struktur Data
private int size ;
private int top ;
private int []data ;
//method
public stack (int n) {
top = -1 ;
size = n ;
data = new int[size] ;
}
public boolean isPalindrome(){
10. return true ;
}
public boolean isFull(){
return top == (size -1)
? true : false ;
//if (top == size -1) return true ;
//else return false ;
}
public boolean isEmpty(){
return top == -1 ? true : false ;
//if (top == -1) return true;
//else return false ;
}
public void push (int dt){
if(!isFull()){
data[++top] = dt ;
}
}
public int pop() {
int hasil = -999 ;
if (!isEmpty()){
hasil = data[top--] ;
}
return hasil ;
}
public static void main (String[] args) {
stack st = new stack(3) ;
st.push(0) ;
st.push(6) ;
st.push(7) ;
while (!st.isEmpty()) {
System.out.println(st.pop()) ;
}
//app stack
int nilai = 1234 ;
stack s = new stack (100) ;
while (nilai != 0){
int sisa = nilai % 2 ;
s.push(sisa) ;
nilai = nilai/2 ;
}
while (!s.isEmpty()) {
System.out.print(s.pop()) ;
}
}
}
11. Antrian
public class Queue {
private List listAntrian;
public Queue() {
listAntrian = new List( "queue" );
}
public void enqueue( Object object ){
listAntrian.sisipDiAkhir( object );
}
public Object dequeue(){
return listAntrian.hapusDrDepan();
}
public boolean kosong(){
return listAntrian.kosong();
}
public void cetak(){listAntrian.cetak();
}
public static void main( String args[]){
Queue q = new Queue();
q.enqueue( 10 );
q.cetak();
q.enqueue( 40 );
q.cetak();
q.enqueue( 25 );
q.cetak();
q.enqueue( 30 );
q.cetak();
Object dtHapus = null;
while(!q.kosong()){
dtHapus = q.dequeue();
System.out.printf("%s dihapus n",dtHapus );
q.cetak();