Senin, 29 Mei 2017

Studi Kasus Tentang Struktur Data Queue

 

Nama : Sinta Rosjulianty

Nik     : 161011700416

 

STRUKTUR DATA QUEUE(ANTRIAN)

 

 BAB I

PENDAHULUAN

1.1. Latar Belakang Masalah


Queue/antrian adalah ordered list dengan penyisipan di satu ujung, sedang penghapusan di ujung lain. Ujung penyisipan biasa disebut rear/tail, sedang ujung penghapusan disebut front/head. Fenomena yang muncul adalah elemen yang lebih dulu disisipkan akan juga lebih dulu diambil. Queue berdisiplin FIFO (First In, First Out). Queue merupakan kasus khusus ordered list. Dengan karakteristik terbatas itu maka kita dapat melakukan optimasi representasi ADT Queue untuk memperoleh kerja paling optimal.

Karakteristik Queue memang terbatas, tetapi Queue merupakan kakas dasar penyelesaian masalah-masalah besar, seperti simulasi fenomena antrian di dunia nyata, serta fenomena antrian di pengolahan data. Beberapa fenomena dunia nyata berupa antrian diantaranya : antrian pembelian tiket di depan loket untuk bis, kereta api, bioskop; antrian mobil di depan gerbang jalan tol; antrian kendaraan di jalanan umum; dll.


 Representasi Queue dapat dilakukan dengan empat cara, yaitu:
  1. Representasi Sekuen
  2. Representasi Sekuen linear
  3. Representasi Sekuen Melingkar
  4. Representasi Dinamis
 Pembahasan Representasi sekuen menggunakan array pada setiap pengoprasiannya, sedangkan Representasi dinamis  biasanya menempati memori berupa Record keduanya dideklarasikan menggunakan bahasa pemograman pascal.

1.2.Judul Makalah
Laporan makalah ini berjudul “Queue (Antrian)”, laporan ini diharapkan dapat menjadi literatur bagi proses belajar mengajar dalam perkuliahan, terutama mata kuliah Struktur Data khususnya bagi mahasiswa/i secara cepat dan mudah dalam memahami konsep antrian yang sesungguhnya.




BAB II
PEMBAHASAN


2.1. DESKRIPSI QUEUE

Queue/antrian adalah ordered list dengan penyisipan di satu ujung, sedang penghapusan di ujung lain. Ujung penyisipan biasa disebutrear/tail, sedang ujung penghapusa disebut front/head. Fenomena yang muncul adalah elemen yang lebih dulu disisipkan akan juga lebih dulu diambil. Queue berdisiplin FIFO (First In, First Out). Queue merupakan kasus khusus ordered list. Dengan karakteristik terbatas itu maka kita dapat melakukan optimasi representasi ADT Queue untuk memperoleh kerja paling optimal.

Misalnya Queue Q= (a1,a2,a3…,an), maka
1.Elemen a1 adalah elemen paling depan
2.Elemen ai adalah diatas elemen ai-1, di mana 1<i<n.
3.Elemen an adalah elemen paling belakang

Head (atau front) menunjuk ke awal antrian Q (atau elemen terdepan), sedangkan tail ( rear) menunjuk akhir antrian Q (atau elemen paling belakang).Disiplin FIFO pada Queue berimplikasi jika elemen A, B, C, D, E dimasukkan ke Queue, maka penghapusan/pengambilan elemen akan terjadi dengan urutan A, B, C, D, E.



2.2 Karakteristik Queue

Karakteristik penting antrian sebagai berikut :
1.Elemen antrian yaitu item-item data yang terdapat di elemen antrian.
2.Head/front (elemen terdepan dari antrian ).
3.Tail/rear (elemen terakhir dari antrian ). 4.Jumlah elemen pada antrian (count).
5.Status/kondisi antrian.
Kondisi antrian yang menjadi perhatian adalah :
  • Penuh
Bila elemen di antrian  mencapai  kapasitas  maksimum  antrian. Pada kondisi ini, tidak mungkin dilakukan penambahan ke antrian. Penambahan elemen menyebabkan kondisi kesalahan Overflow.
  • Kosong
Bila tidak ada elemen di antrian. Pada kondisi ini, tidak mungkin dilakukan pengambilan elemen dari antrian. Pengambilan elemen menyebabkan kondisi kesalahan Underflow.


2.3 Operasi-Operasi Pokok di Queue
  • Operasi-operasi pokok antrian sebagai berikut :
1.createQueue (Q), atau constructor menciptakan antrian kosong Q.
2.addQueue (Q, X) memasukkan elemen X sebagai elemen akhir di Q.
3.removeQueue (Q, X)atau mengambil elemen depan di antrian Q ke elemenX.
  • Operasi-operasi pengaksesan tambahan yang dapat dilakukan adalah :

 1.headQueue (Q), atau Front (Q, X) mengirim elemen terdepan tanpa menghapus.
2.tailQueue (Q), mengirim elemen tanpa menghapusnya.

  • Operasi-0perasi Query tambahan yang dapat dilakukan adalah :
1.isEmptyQueue (Q), mengirim apakah antrian Q adalah kosong. 2.isFullQueue (Q), mengirim apakah antrian Q adalah penuh bila kapasitas antrian Q didefinisikan.
3.isOverflowQueue (Q), mengirim apakah antrian Q telah mengalamioverflow.
4.isUnderflowQueue (Q), mengirim apakah antrian Q mengalamiunderflow.
                 
  • Operasi-operasi terhadap seluruh antrian Q antara lain adalah :
1.sizeQueue (Q), mengetahui jumlah elemen di antrian Q.
2.isEqualQueue (Q1, Q2), mengirim apakah antrian Q1 dan Q2 sama isinya.
Jumlah operasi pokok Queue tidak banyak. Dengan demikian, sangat sederhana untuk menyatakan apa pun mengenai implementasinya.


2.4. Pengunaan Queue

Meski Queue sangat sederhana, namun Queue merupakan kakas dasar penyelesaian masalah-masalah besar. penggunaan Queue yang utama adalah untuk simulasi fenomena antrian di dunia nyata, serta fenomena antrian di pengolahan data.
Penggunaan Queue dapat dicontohkan seperti dibawah ini :

1.Simulasi antrian di dunia nyata, antara lain :
  • Antrian pembelian tiket di depan loket untuk bis, kereta api, bioskop.
  • Antrian mobil di depan gerbang jalan tol.
  • Antrian kendaraan di jalanan umum.
2. System produksi
  • Barisan bahan atau komponen yang akan diproses suatu mesin
  • Barisan bahan atau komponen yang akan diproses suatu manusia



Untuk lebih jelasnya,dbawah ini ada contoh dalam bentuk coding C++

#include <iostream.h>
#include <stdio.h>
#include <conio.h> void main()
{

int cek=0, data[8], x, hapus;
  char pil;
  do {
      clrscr();
      cout<<”    Ujian Praktikum Struktur Data Queue”<<endl;       cout<<”       ISI NAMA ANDA”<<endl;
      cout<<”      ISI NAMA KAMPUS ANDA”<<endl;
      cout<<endl;

      printf(“d. Masukan Data Antrian\n”);
      printf(“e. Hapus Data Antrian\n”);
      printf(“n. Lihat Data Antrian\n”);
      printf(“y. Exit Program\n”);
      cout<<endl;       printf(“Ketikan Huruf Dari Salah Satu Pilihan Diatas…  “);
      pil=getche();
      cout<<endl;

  if(pil!=’d’ && pil !=’e’ && pil !=’n’ && pil!=’y’ )
      printf(“\n\nSalah Ketik, Ulangi Lagi…\n”);       else
      {
    if(pil==’d’)   //PUSH
    {

     if(cek==8)
        printf(“\nAntrian Penuh\n”);
        else
        {

        printf(“\nMasukkan angka–>”);scanf(“%i”,&x);
        data[cek]=x;
        cek++;
        }}
        else
         {
          if(pil==’e’)        //POP
           {
        if(cek==0)
           printf(“\nMaaf Tidak Antrian Untuk Dihapus \n\n”);
           else
          {

           hapus=data[0];
           for(int v=0;v<cek;v++)
           data[v]=data[v+1];
           data[cek-1]=NULL;
           cek–;

           cout<<endl;
           printf(“Yakin Anda Ingin Data Ini DiHapus ???  “);
           cout<<endl;
           printf(“\nData dgn nilai=%i akan terhapus. [Tekan Enter]”,hapus);
           }
           getch();
           }
           else
           {
            if(pil==’n’)   //Mengecek Data
           {
            if(cek==0)
            printf(“\nMaaf Tidak Ada Antrian Untuk Ditampilkan.\n\n”);
            else
            {
            printf(“\n”);
            for(int z=0;z<cek;z++)
            {
            printf(” { “);
            printf(“%i”,data[z]);
            printf(” } “);
            }
           }
            getch();
            }
          }

       }
          }

    }while(pil!=’y’);
    cout<<endl;
    cout<<endl;
        printf(“Yakin anda ingin keluar…??? {{{Tekan Enter Cak}}} “);
      pil=getche();
}m


















Selasa, 08 November 2016

Volume kubus menggunakan rumus Frame Neetbanst

                      Nama : Sinta Rosjulianty
                      Nim    : 161011700416
                     Ruang : 502 SIFE002

1. Penjelasan Kasus Perogram

    Rumus Volume Kubus = sisi x sisi x sis
Penjelasan Volume kubus adalah mengenali tentang bangun ruang yang bernama kubus ini. Kubus merupakan salah satu jenis bangun ruang yang memiliki enam sisi dan ke enam sisinya tersebut berbentuk persegi. Kubus memiliki rusuk sebanyak dua belas buah dengan delapan titik sudut

2. * Screen Shoot Run

     
 *Screen Shoot coding



3. Source Coding

   private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        int Sisi1,Sisi2,Sisi3,volumekubus;
        Sisi1=Integer.parseInt(text1.getText());
        Sisi2=Integer.parseInt(text2.getText());
        Sisi3=Integer.parseInt(text3.getText());
        volumekubus=Sisi1*Sisi2*Sisi3;
        Text4.setText(""+volumekubus);
        
        
        
        
    }                                        

    private void HapusActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
        text1.setText("");
        text2.setText("");
        text3.setText("");
        Text4.setText("");

          
   

Senin, 24 Oktober 2016

Soal Study Kasus Netbeans

Nama  : Sinta Rosjulianty
Nim     : 161011700416



1. Study Kasus

    Di sebuah perusahaan di daerah jakarta selatan yang bergerak di bidang saham
mempunyai nasabah yang ingin investasi dalam sebulan pendapatan perbulan nya
25.000.000 jika per 3 bulan perushaan mendapatkan kerugian 5.000.000 per 3 bln
maka keuntungan perbulan nya hanya 70.000.000

2. 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.
 */

/**
 *
 * @author April
 */
import java.util.Scanner;
public class scanner {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Scanner masukan=new Scanner(System.in);
        int PP,Kerugian,Keuntungan,Totalkeuntunganper3bulan;
        System.out.println("masukan PP=");
        PP=masukan.nextInt();
        System.out.println("masukan Kerugian=");
        Kerugian=masukan.nextInt();
        System.out.println("masukan Keuntungan=");
        Keuntungan=masukan.nextInt();
        Totalkeuntunganper3bulan=(PP+Keuntungan+Kerugian)/3;
        System.out.println("PP,Kerugian,Keuntungan=");
     
        if (Totalkeuntunganper3bulan>=3){
        System.out.println("Totalkeuntungankeseluruhan="+Kerugian);
        }
    }
 
}

Hasil Run

run:
masukan PP=
25000000
masukan Kerugian=
5000000
masukan Keuntungan=
75000000
PP,Kerugian,Keuntungan=
Totalkeuntungankeseluruhan=70000000

3.Screen Shoot



Senin, 10 Oktober 2016

nyoba-nyoba tutorial program java netbeans

1. Penjelasan Studi Kasus


Sebuah perusahaan membuka lowongan baru
Dengan ketentuan sebagai berikut
Total karyawan = lamaran-interview
Jika yang lolos < 300
Tl = 80%
Selain itu = tl 20%




2. Flowchart
 



  3. Source Code

int TK,lamaran,interview,lolos,tl;
    lamaran =120;
    interview =60;
    TK=lamaran-interview;
    System.out.println(""+TK);
   
    if(TK<=100){
    tl=TK*80/100;
    System.out.println("diterima"+tl);
      
    }