Rabu, 10 Mei 2017

Struktur Data Menggunakan Queue

Queue pada Struktur Data atau antrian adalah sekumpulan data yang mana penambahan elemen hanya bisa dilakukan pada suatu ujung disebut dengan sisibelakang(rear), dan penghapusan(pengambilan elemen) dilakukan lewat ujung lain (disebut dengan sisi depan atau front). 
Pada Stack atau tumpukan menggunakan prinsip“Masuk terakhir keluar pertama”atau LIFO (Last In First Out), Maka pada Queue atau antrian prinsip yang digunakan adalah “Masuk Pertama Keluar Pertama” atau FIFO (First In First Out).
Queue atau antrian banyak kita jumpai dalam kehidupan sehari-hari, ex: antrian Mobil diloket Tol, Antrian mahasiswa Mendaftar, dll.
Contoh lain dalam bidang komputer adalah pemakaian sistem komputer berbagi waktu(time-sharing computer system) dimana ada sejumlah pemakai yang akan menggunakan sistem tersebut secara serempak.
Pada Queue atau antrian Terdapat satu buah pintu masuk di suatu ujung dan satu buah pintu keluar di ujung satunya dimana membutuhkan variabel Head dan Tail ( depan/front, belakang/rear).

Karakteristik Queue atau antrian :
1. elemen antrian
2. front (elemen terdepan antrian)
3. tail (elemen terakhir)
4. jumlah elemen pada antrian
5. status antrian

Operasi pada Queue atau antrian
1. tambah(menambah item pada belakang antrian)
2. hapus (menghapus elemen depan dari antrian)
3. kosong( mendeteksi apakah pada antrian mengandung elemen atau tidak)

Operasi-operasi Queue :
1. Create()
Untuk menciptakan dan menginisialisasi Queue
Dengan cara membuat Head dan Tail  = -1

Queue pada Struktur Data
Queue pada Struktur Data
2. IsEmpty()
Untuk memeriksa apakah Antrian sudah penuh atau belum
Dengan cara memeriksa nilai Tail, jika Tail = -1 maka empty
Kita tidak memeriksa Head, karena Head adalah tanda untuk kepala antrian (elemen pertama dalam antrian) yang tidak akan berubah-ubah
Pergerakan pada Antrian terjadi dengan penambahan elemen Antrian kebelakang, yaitu menggunakan nilai Tail.
Queue pada Struktur Data
3. IsFull
Untuk mengecek apakah Antrian sudah penuh atau belum
Dengan cara mengecek nilai Tail, jika Tail >= MAX-1 (karena MAX-1 adalah batas elemen array pada C) berarti sudah penuh
Queue pada Struktur Data
4. Enqueue
Untuk menambahkan elemen ke dalam Antrian, penambahan elemen selalu ditambahkan di elemen paling belakang
Penambahan elemen selalu menggerakan variabel Tail dengan cara increment counter Tail terlebih dahulu
Queue pada Struktur Data
5. Dequeue()
Digunakan untuk menghapus elemen terdepan/pertama (head) dari Antrian
Dengan cara menggeser semua elemen antrian kedepan dan mengurangi Tail dgn 1
Penggeseran dilakukan dengan menggunakan looping.

Queue pada Struktur Data
6. Clear()
Untuk menghapus elemen-elemen Antrian dengan cara membuat Tail dan Head = -1
Penghapusan elemen-elemen Antrian sebenarnya tidak menghapus arraynya, namun hanya mengeset indeks pengaksesan-nya ke nilai -1 sehingga elemen-elemen Antrian tidak lagi terbaca
Queue pada Struktur Data
7. Tampil()
Untuk menampilkan nilai-nilai elemen Antrian
Menggunakan looping dari head s/d tail

Queue pada Struktur Data

Referensi :
http://blog-arul.blogspot.co.id/2012/01/queue-pada-struktur-data.html

Jumat, 11 November 2016

Tugas uas pemrograman

1. Menghitung luas lingkaran dengan GUI


2. Source code 

float luas;
float pi = Float.parseFloat(jTextField1.getText());
float jarijari=
Float.parseFloat(jTextField2.getText());

luas=pi*(jarijari*jarijari)/2;
jTextField3.setText(""+luas);


4.hasil run 

Rabu, 26 Oktober 2016

Tugas UTS Mata kuliah Algoritma

1. Penjelasan Kasus Program

Sebuah super market mengadakan diskon besar besaran untuk semua item barang ,
Chitato  = 10500
Kacang garuda  = 15000
Pure life = 3000
Qtela = 4500
biskuit  = 10000

Jika seluruh   barang mencapai harga total 30000 konsumen mendapatkan diskon  5%   jika tidak konsumen  tidak mendapatkan 0%

2. Flowchart


3. Source Coding
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package pkgif;

/**
 *
 * @author Pemakai
 */
public class If {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
   int hargatotal,chitato,kacanggaruda,purelife,qtela,biskuit,diskon;
   chitato = 10500;
   kacanggaruda = 15000;
   purelife = 3000;
   qtela = 4000;
   biskuit = 10000;
   
   hargatotal= chitato+kacanggaruda+purelife+qtela+biskuit;
    System.out.println(" harga total = " + hargatotal);
    
   if (hargatotal>=30000) {

diskon=hargatotal*5/100;

hargatotal= hargatotal - diskon;

System.out.println("diskon = 5%\n"+hargatotal); }

}

}


Jumat, 14 Oktober 2016

Studi Kasus

Sebuah toko swalayan  mengadakan diskon besar-besaran.

Ditentukan :

Biscuit khongguan = 90000
Teh pucuk               = 5000
Jika total belanja > 75000 Mendapat diskon 25%.

Selain itu diskon 0%.

Flowchart


source code

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Dian Parirani
 */
public class ifdiskon {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
    int totalbelanja,khonguan,tehpucuk,diskon;
    khonguan=90000;
    tehpucuk=5000;
    totalbelanja=khonguan+tehpucuk;
    System.out.println(""+totalbelanja);
   
    if(totalbelanja>=75000){
            diskon=totalbelanja*20/100;
            totalbelanja=totalbelanja-diskon;
            System.out.println("diskon=20%\n"+totalbelanja);
           
        }
   
   
   
   
   
    }
   
}