Tuesday, December 17, 2013

Insertion sort


Insertion sort adalah sebuah metode pengurutan data dengan menempatkan setiap elemen data pada pisisinya dengan cara melakukan perbandingan dengan data – data yang ada. Inde algoritma dari metode insertion sort ini dapat dianalogikan sama seperti mengurutkan kartu, dimana jika suatu kartu dipindah tempatkan menurut posisinya, maka kartu yang lain akan bergeser mundur atau maju sesuai kondisi pemindahanan kartu tersebut. Dalam pengurutan data, metode ini dipakai bertujuan untuk menjadikan bagian sisi kiri array terurutkan sampai dengan seluruh array diurutkan.

public class Prbaruan_Blog {//menentukan suatu kelas
    public static void main(String[] args) {//main method
       int A [] = {98,75,88,45,99,33};
       //angka yang akan diurutkan
       int j;
       //tipe data j
       int key;
       //tipe data j
        System.out.println("tampilan pengurutan :");
       //keterangan yang akan ditampilkan
        for (int i = 0; i < A.length; i++) {
            //melakukan suatu perulangan dimana i-0
            //< A
            key = A[i];
            //menyatakan suatu tipe data key
            j = i-1;
            while ((j>= 0)&&((A[j]) < 0)){
            A[j+1]=A[j];
            j= j-1;
           //selama perulangan masih dalam j
            }
       A[j+1]= key;
        }
        for (int k = 0; k < A.length; k++) {
            //perulangan
            System.out.print("  " + A[k]);
            
        }
    }
}

Output :
run:
tampilan pengurutan :
  98  75  88  45  99  33BUILD SUCCESSFUL (total time: 0 seconds)
Awalia Wahyu Juwita
1200631030

Monday, December 16, 2013

Tugas Sorting

Insertion sort


Insertion sort adalah sebuah metode pengurutan data dengan menempatkan setiap elemen data pada pisisinya dengan cara melakukan perbandingan dengan data – data yang ada. Inde algoritma dari metode insertion sort ini dapat dianalogikan sama seperti mengurutkan kartu, dimana jika suatu kartu dipindah tempatkan menurut posisinya, maka kartu yang lain akan bergeser mundur atau maju sesuai kondisi pemindahanan kartu tersebut. Dalam pengurutan data, metode ini dipakai bertujuan untuk menjadikan bagian sisi kiri array terurutkan sampai dengan seluruh array diurutkan.

Contoh program Insertion Sort :

public class Prbaruan_Blog {//menentukan suatu kelas
    public static void main(String[] args) {//main method
       int A [] = {98,75,88,45,99,33};
       //angka yang akan diurutkan
       int j;
       //tipe data j
       int key;
       //tipe data j
        System.out.println("tampilan pengurutan :");
       //keterangan yang akan ditampilkan
        for (int i = 0; i < A.length; i++) {
            //melakukan suatu perulangan dimana i-0
            //< A
            key = A[i];
            //menyatakan suatu tipe data key
            j = i-1;
            while ((j>= 0)&&(key < (A[j]) )){
            A[j+1]=A[j];
            j= j-1;
           //selama perulangan masih dalam j
            }
       A[j+1]= key;
        }
        for (int k = 0; k < A.length; k++) {
            //perulangan
            System.out.print("  " + A[k]);
            
        }
    }

Output :
run:
tampilan pengurutan :
 33 45 75 88 98 99 BUILD SUCCESSFUL (total time: 0 seconds)

Awalia Wahyu Juwita
1200631030

Monday, December 2, 2013

Tugas Stack

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package awaliawahyujuwita_1200631030;

/**
 *
 * @author toshiba
 */
import java.util.Stack;

public class Tugas_Stack {//menentukan sebuah class
    public static void main(String[] args) {//main method
       Stack tumpukan = new Stack ();//merupakan inisialisasi dari
       //variable tumpukan yaitu stack
       tumpukan.push ("A ");//tumpukan yang dimasukkan
       tumpukan.push ("W");//tumpukan yang dimasukkan
       tumpukan.push ("A");//tumpukan yang dimasukkan
       tumpukan.push ("L");//tumpukan yang dimasukkan
       tumpukan.push ("I");//tumpukan yang dimasukkan
       tumpukan.push ("A");//tumpukan yang dimasukkan
        System.out.println("Tumpukan setelah di PUSH: " + tumpukan);

        //koding untuk mencetak kalimat
        tumpukan.pop();//tumpukan yang diambil
        tumpukan.pop();//tumpukan yang diambil
        tumpukan.pop();//tumpukan yang diambil
        tumpukan.pop();//tumpukan yang diambil
        System.out.println("Tumpukan setelah di POP: " +tumpukan);
        //koding untuk mencetak kalimat.
    }
}

Pengertian Stack

Stack atau tumpukan adalah kumpulan elemen-elemen yang disimpan dalam satu lajur linier. Struktur stack menggunakan LIFO (Last In First Out), yaitu sesuatu yang dimasukkan terakhir, akan keluar pertama kali.
Stack menggunakan istilah:
1. PUSH  masuk, simpan, tulis
2. POP  keluar, ambil, hapus

Friday, October 4, 2013

PANGKAT REKURSIF



A.PENGERTIAN REKURSIF

Rekursif adalah fungsi yang memanggil dirinya sendiri. Fungsi ini akan terusberjalan sampai kondisi berhenti terpenuhi, oleh karena itu dalam sebuah fungsi rekursif perlu terdapat 2 blok penting, yaitu blok yang menjadi titik berhenti dari sebuah prosesrekursi dan blok yang memanggil dirinya sendiri.

B.CONTOH FUNGSI REKURSIF

Dalam fungsi pangkat xy , kita tahu bahwa semua bilangan selain 0, jika dipangkatkan dengan 0 nilainya sama dengan 1. Jika x dipangkatkan dengan y, dengan y lebih dari 0, maka hasilnya sama dengan x dikalikan dengan x dipangkatkan y 1.dan jika di tulis dalm notaasi matematika adalah sebagai berikut :
                                    xy = 1, jika y = 0

                                    xy = x * x(y-1) , jika y > 0

Dapat kita lihat pada definisi diatas yaitu y > 0 , bahwa bentuk pemangkatannya muncul kembali disisi kanan. Dan disitulah yang disebutkan rekursif yaitu fungsi yang mendefinisikan fungsi itu sendiri. Dan definisi rekursif selalu dimulai dari kasus penyetop, penghenti, yang terjadi ketika y = 0, dan dalam hal ini yang tadinya x dipangkatkan
dengan y, kini bentuk pemangkatannya menjadi lebih sederhana yaitu y – 1. Hal ini dimaksudkan untuk “menggiring” masalah kompleks ke kasus dasar atau penyetop rekursinya. Untuk x = 10 dan y = 0, hasil dari x
y adalah 1. Untuk x = 10 dan y = 3.
Untuk mencari hasil perpangkatan dengan langkah seperti dibawah ini:


  •  103 = 10 * 102 ( untuk mencari definisi tersebut menggunakan rumus Xy = X*X(Y-1) ) 
  •   Lalu hasil dari X(Y-1) menjadi pangkat untuk penghitungan yang berikutnya yaitu 102 = 10 * 101
  • Dan hasil dari X(Y-1) menjadi pangkat untuk penghitungan berikutnya yaitu 101 = 10 * 1
  • Kemudian hasil dari X(Y-1) menjadi 100 hasil dari 100=1
  •  Dari hasil  100=1 menjadi nilai untuk hasil rumus X(Y-1) menjadi 101 = 10 * 1=10 
  •  Dan hasil dari 101 = 10 * 1=10 dan kemudian menjadi nilai untuk rumus X(Y-1) menjadi 102 = 10 * 10=100
  •  Dan hasil dari 102 = 10 * 10=100 kemudian menjadi nilai untuk rumus X(Y-1) menjadi  103= 10 * 10=1000

    Fungsi pangkat akan memanggil dirinya sendiri dan menghasilkan n x  n x n x n x n sampai m bernilai 0. Begitulah rekursif bekerja.
      Memecahkan suatu masalah dengan rekursif adalah sebagai berikut:
  • Menentukan kasus batas di mana pemanggilan rekursif tidak lagi diperlukan.
  •  Menerapkan suatu langkah untuk meneruskan kasus kompleks ke kasus pembatasnya dengan metode yang mencerminkan fungsinya.
Setelah mempelajari materi diatas mari kita coba soal dengan membuat program penghitung pangkat dari penjumlahan dua bilangan yang diselesaikan secara rekursif.


TUGAS

  Buatlah program penghitungan pangkat dari penjumlahan dua bilangan yang diselesaikan secara rekursif.
  (a+b)y
  (2+3)3 = 125
  Buatlah tutorial mengenai langkah-langkah pembuatan program tersebut beserta penjelasannya, kemudian postinglah di blog anda
  Pada bagian akhir artikel anda di blog, tulislah dengan nama lengkap anda
  Kemudian submit URL lengkap postingan anda di elearning


JAWAB.

  •   Sorce Code


     
  • Output :


     
  •   Sorce Code.
    package materitugas;
    public class MateriTugas {
     public static int hitungPangkat (int a, int b){
            if (b == 0){
                return 1;
            } else {
                return a * hitungPangkat (a, b - 1);
            }
        }
        public static void main(String[] args) {
            System.out.println("hasil (2 + 3) pangkat 3=" + hitungPangkat (5, 3));
        }
    }

  • Output
    run:
    hasil (2 + 3) pangkat 3=125
    BUILD SUCCESSFUL (total time: 0 seconds

  • Keterangan:

    • Public class Pangkat Rekursif,langkah pertama yaitu membuat class terlebih dahulu dengan nama Pangkat Rekursif.
    •  Public static int Hitung Pangkat (int a, int b, int y),Method main yang merupakan parameter penghitung pangkat yaitu (int a, int b, int y).
    •  If (y==1),merupakan syarat pangkat jika y sama dengan 1.
    • Return a+b,maka nilai pertambahannya adalah pertambahan variable a dengan variable b.
    •  Else,lalu kemudian kita lihat syaratnya jika pangkat selain dengan pangkat y sama dengan 0.
    • Return (a+b)*Hitung Pangkat (a, b, y-1),maka nilainya adalah a ditambah b dikali isi dari parameter penghitung pangkat (a, b, variable untuk pangkat y-1).
    • Public Static Void Main (String [] args),kita implementasikan method dibawah ini System.Out.Println (“hasil (2+3) pangkat 3 =”+hitungpangkat (2, 3, 3));
    • Maka untuk mencetak output hasil perhitungan pangkat dari nilai (2, 3, 3).
    • Hasil Outputnya.
    Hasil (2+3) pangkat 3 = 125
    Dari hasil diatas maka dapat kita tarik kesimpulan dengan menggunakan metode rekursif pada java, proses perhitungan akan jauh lebih mudah dan pemahaman kita jauh lebih meningkat tentang intruksi baru pada java tentang rekursif.Dan kita tidak akan kesulitan lagi mempelajarinya.
    Run;
    hasil (2 + 3) pangkat 3=125
    BUILD SUCCESSFUL (total time: 0 seconds






                                     Nama : Awalia Wahyu Juwita
                        Nim  :1200631030