Jumat, 07 April 2017

ARRAY

                                   Download

MATERI KEDUA : STRUKTUR DATA (REFRESH)
ARRAY
Fakultas Teknologi Informasi  www.unisbank.ac.id

Dalam menyelesaikan persoalan pemrograman yang menggunakan jajaran data, penggunaan dimension sangat diperlukan. Hal ini dilakukan agar semua data yang dimasukkan akan tetap tampil , tidak hilang atau tertumpuk dengan data baru / terakhir yang dimasukkan.

Dengan penggunaan array, berarti kita memesan tempat dalam memory untuk menyimpan data yang kita buat.


Adalah sebuah variabel yang menyimpan sekumpulan data yang memiliki tipe sama. Setiap data tersebut menempati lokasi atau alamat memori yang berbeda-beda dan selanjutnya disebut dengan elemen array. Elemen array itu kemudian dapat kita akses melalui indeks yang terdapat di dalamnya. Namun penting sekali untuk diperhatikan bahwa dalam Java (seperti pada C++), indeks array selalu dimulai dari 0 bukan 1.




Untuk mendeklarasikan sebuah array dalm Java, kita harus menggunakan tanda [] (bracket). Adapun bentuk umum dari pendeklarasiannya adalah sebagai berikut :
Tipe_data  nama_array[];
Atau
Tipe_data [] nama_array;
Dari bentuk deklarasi tersebut  , jumlah elemen dan nilai-nilai dari setiap elemennya masih diset dengan nilai null.
VariabelArray = new tipe[JumlahElemen];
Bentuk umum penentuan jumlah elemeh elemen array adalah sebagai berikut :

Contoh deklarasi dan Penentuan Jumlah Elemen
Array :
Int [] jumlahhari;
Jumlahhari  = new int[12];
Lewat contoh Penentuan  Jumlah Elemen tersebut, artinya adalah Dideklarasikan variabel jumlah hari bertipe array integer, dengan jumlah elemen 12 dan default nilai yang di-set adalah nilai 0. Sedangkan untuk mengisikan nilai dari masing-masing elemen array, terlihat seperti berikut  :
Jumlahhari[0] = 31;
Keterangan : [0] adalah indeks, dimulai dari 0 – 11, utk jumlah elemen 12.

Contoh bentuk penggabungan deklarasi array dengan penentuan jumlah elemen array :
      int [] jumlahhari = new int[12];    atau
         int jumlahhari [] = new int[12];
Contoh bentuk penggabungan  deklarasi array dengan inisialisasi :
int [] jumlahhari = {31 , 28 , 31 , 30 , 31 , 30,  31,  31 , 30, 31 , 30, 31} ;
Untuk inisialisasi array tersebut,  nilai-nilai untuk setiap elemennya berada pada blok diantara tanda ‘{‘ dan ‘}’. Sedangkan setiap elemennya dibatasi dengan tanda koma ‘,’ dan inisialisasi diakhiri dengan tanda titik koma
‘;’.

CONTOH 1:
 
class InisialisasiArray1D
{
      public static void main(String[] args)
       {   
   
            // mendeklarasikan variabel bertipe array dengan tipe int             // sekaligus menginisialisasi nilai untuk setiap elemennya             int [] jumlahHari = {31,28,31,30,31,30,31,31,30,31,30,31}; 
   
            System.out.println("Bulan Maret memiliki " + jumlahHari[2] + " hari.");
      }
}

CONTOH 2:
 
public class Array2
{
      public static void main (String[]args)
       {
            int bilangan[] = new int [10];
   
            System.out.println("Jumlah elemen array = "+bilangan.length);
      }
}

CONTOH 3:

public class Array3

  public static void main( String[] args )
  {
    int[] isi = new int[10];
    int i;
   
    for( i=1; i<10; i++ )
    {
      isi[i] = i;
   System.out.println( isi[i] );
    }
  }
}

CONTOH 4:

public class Array4
{
   public static void main( String[] args )
  {
    int[] x = new int[10];
    int i;
   
    for( i=1; i<x.length; i++ )
    {
      x[i] = i;
   System.out.println( x[i] );
    }
  }
}


CONTOH 5:

public class Array5
{
   public static void main(String args[])
  {
    int nilai[]=new int[3];      nilai[0]=70;
    nilai[1]=80;
    nilai[2]=90;
   
    int i;
    double jumlah=0.0;
    double ratarata=0.0;
   
    for(i=0; i<nilai.length; i++)
   jumlah=jumlah+nilai[i];            //ratarata+=nilai[i];
     
    System.out.println("Jumlah = " + jumlah);
    System.out.println("i      = " + i);
     
    ratarata=jumlah/nilai.length;      //ratarata/=nilai.length;
   
    System.out.println("Nilai rata-rata = " + ratarata);
  }
}

CONTOH 6:

public class CopyArray6
{
   public static void main (String[]args)
  {
    int i;     int tampung[]={10,9,8,7,6,5,4,3,2,1};
    int elemen[]={1,2,3,4,5};
   
  System.arraycopy(elemen,0,tampung,0,elemen.length);
   
    for (i=0; i<tampung.length; i++)   
      System.out.print (tampung[i]+" ");
   
    System.out.println();
  }
}





Adalah Array yang terdiri dari beberapa subskrip array.

Terdiri dari :
Array 2 dimensi adalah array yang mempunyai 2 subskrip array
Array 3 dimensi adalah array yang mempunyai 3 subskrip array …..
dst


Cara mendeklarasikan Array 2 dimensi seperti berikut ini :
  Tipe_data  nama_array[][];
Atau
Tipe_data [][] nama_array;
Cara  mendeklarasikan    Array  3 dimensi seperti berikut ini :
Tipe_data  nama_array[][][];
Atau
Tipe_data [][][] nama_array;


Contoh deklarasi Array 2 dimensi, dengan 2 baris
3 kolom
  Int [][] duaD = new int[2][3]
Penggambaran  contoh  deklarasi  Array  dua dimensi tersebut adalah seperti berikut :

Contoh inisialisasi Array 2 dimensi, dengan 2 baris 3 kolom
Int [][] duaD = {(10,20,30),(40,50,6)}

CONTOH 1:

public class InisialisasiArray2D
{
 public static void main(String[] args)
 {       
     int[][] duaD = {{10,20,30},{40,50,60}};   for(int i=0; i<2; i++)
   {
              for (int j=0; j<3; j++)
         {
           System.out.print(duaD[i][j]);
          if (j < 2) System.out.print(" ");
              }
              System.out.println();
       
   } }

CONTOH 2:

import java.text.NumberFormat;

public class Array2Dimensi
{
  public static void main(String args[])
  {
    NumberFormat nf=NumberFormat.getInstance();      nf.setMaximumFractionDigits(3);

    int nilai[][]=new int[2][3];     nilai[0][0]=85;     nilai[0][1]=81;      nilai[0][2]=78;      nilai[1][0]=65;      nilai[1][1]=73;
    nilai[1][2]=71;

    String MK[]={"RPL", "PBO"};     double ratarataMK[]=new double[nilai.length];     double jumlah[]=new double[nilai.length];
   
   
    for (int i=0; i<nilai.length; i++)
    {
          for (int j=0; j<nilai[0].length; j++)
          {
      jumlah[i] = jumlah[i] + nilai[i][j];
          }
     
          ratarataMK[i] = jumlah[i] / nilai[0].length;
    }

    System.out.println("Nilai Mata Kuliah\n");
  System.out.println("MK\tMinggu1\tMinggu2\tMinggu3\tRata-Rata");
   
    for (int i=0; i<nilai.length; i++)
    {
          System.out.print(MK[i] + "\t");
          for (int j=0; j<nilai[0].length; j++)
          {
      System.out.print(nilai[i][j] + "\t");
          }    
               
        System.out.print(nf.format(ratarataMK[i])+"\n");
    }
  }
}


a. Banyak elemennya tertentu/terhingga
b. Tipe elemennya  sama
c. Membutuhkan lokasi memori yang Contigueus/menyatu sehingga letak elemen berdekatan satu sama lain (dengan tujuan agar mudah melacak/membaca kembali)  

a. Model pandang data Array dalam Pemetaan Array ke dalam Memori
b. Dapat menghitung Jumlah Elemen Array
c. Dapat Menghitung Kebutuhan Memori dan Mencari Lokasi (Address) suatu elemen Array dari Pemetaan
Array ke dalam Memori
d. Melakukan Operasi-operasi Dasar dalam Array

a. Model Logika
Cara penulisan di media kertas/papan sedemikian rupa sehingga dapat dengan mudah untuk menulis atau membaca kembali.

b. Model Fisik
Menyusun sedemikian rupa elemen-elemen data yang akan diinputkan dan kemudian disimpan dalam memori komputer. Untuk lebih memperjelas pemahaman tentang model fisik ini dapat diambil contoh sebagai berikut:



 

 

CONTOH DALAM ARRAY SATU DIMENSI
 





CONTOH DALAM ARRAY 1 DIMENSI

Bila diketahui Bentuk umum Pendeklarasian tipe data array 1 demensi adalah sebagai berikut :

type_elemen namaarray[jumlah_elemen];

* Jumlah Elemen = n value index

Maka Contoh :
int A[10];  Jumlah Elemen Array : 10
float B[20];  Jumlah Elemen Array : 20



 

CONTOH DALAM ARRAY 1 DIMENSI
 Rumus Menghitung Panjang Dimensi (DIM(A)) sebagai berikut:

DIM(A) = Banyak Elemen (A) * W (Word Length)

dimana W adalah Ukuran atau besar memori suatu tipe data.

Contoh :
 Diketahui suatu deklarasi : int A[100]

 Hitung DIM(A) !

JAWAB :
      DIM(A) =  100 * 2 Byte
      DIM(A) =   200 Byte

Catatan : W diketahui 2 byte, dikarenakan Variabel A direncanakan
diisi oleh data-data yang tiap elemennya maksimal 2 byte.                 {contoh data A : 25, 30, 13, 40 dll}

CONTOH DALAM ARRAY 1 DIMENSI
mencari   lokasi atau address suatu elemen array dapat digunakan rumus:

LOC(A[i]) = Base(A) + i  * W

Keterangan:  i :  Nomor elemen yang dicari
Base(A) :  Alamat elemen pertama (biasanya diketahui)

Contoh :
 Diketahui suatu deklarasi : int A[100]

 Cari Posisi / Alamat dari elemen array A[3], Jika diketahui Base(A)=2500.

JAWAB :
      LOC(A[3]) =  2500 + 3 * 2
      LOC(A[3]) =  2506

Catatan : W diketahui 2 byte, dikarenakan Variabel A direncanakan diisi oleh data-data yang tiap elemennya maksimal 2 byte.                 {contoh data A : 25, 30, 13, 40 dll}

CONTOH DALAM ARRAY 2 DIMENSI
Terbagi   dua cara pandang (representasi) yang berbeda :

Secara   kolom per kolom (coloumn major order / CMO)

@M[i][j] = M[0][0] + {(j – 1) * K + (i – 1)} * L

Secara baris per baris (row major order / RMO)

@M[i][j] = M[0][0] + {(i – 1) * N + (j – 1)} * L

Keterangan  :

@M[i][j]  =  Posisi array yang di cari,  M[0][0]   = Posisi alamat awal index array,
i =  Baris,
j =  Kolom,
L   =  Ukuran memory type data,
K   =  Banyaknya elemen per kolom,  N   = Banyaknya elemen per baris.

Terdapat dua tipe operasi, yaitu :
1. Operasi terhadap satu elemen / posisi dari array
2. Operasi terhadap array sebagai keseluruhan

Dua operasi paling dasar terhadap satu elemen / posisi adalah
1. Penyimpanan nilai elemen ke posisi tertentu di array
2. Pengambilan nilai elemen dari posisi tertentu di array

Operasi-operasi dasar terhadap array secara keseluruhan adalah :
1. Operasi penciptaan atau bisa inserting
2. Operasi penghancuran atau bisa deleting
3. Oparasi pemrosesan traversal
4. Operasi pencarian atau searching (table look-up)
5. Operasi sorting

*) Operasi pada point 4 dan 5 akan dibahas dalam materi tersendiri

Contoh :

A[10] = 78, berarti penyimpanan nilai 78 ke posisi ke-10 dari array A

C = A[10], berarti pengambilan nilai elemen posisi ke-10 dari array A
  

Contoh Penciptaan / inisialisasi :

int nilai[]=new int[3]; berarti menciptakan variabel array nilai dengan jumlah elemen maximal 3.


int elemen[]={1,2,3,4,5}; berarti menciptakan variabel array elemen dengan value nilai elemen 1,2,3,4,5. Berarti jumlah elemen maximal  5 buah dan isi sudah ditentukan.

Inserting
Operasi menambahkan elemen data baru ke struktur. Operasi ini hanya dapat dilakukan jika ada kelebihan alokasi memori/masih ada tempat yang kosong.
Untuk melakukan operasi inserting, dimisalkan:
Nama arraynya = A
Kapasitas maximum dari array = Max
Jumlah elemen yang sudah terisi = Jml,
Posisi penyisipan/Index = P, dan
Elemen yang disisipkan = X, maka

Inserting
Operasi menambahkan elemen data baru ke struktur. Operasi ini hanya dapat dilakukan jika ada kelebihan alokasi memori/masih ada tempat yang kosong.
Untuk melakukan operasi inserting, dimisalkan:
Nama arraynya = A
Kapasitas maximum dari array = Max
Jumlah elemen yang sudah terisi = Jml,
Posisi penyisipan/Index = P, dan
Elemen yang disisipkan = X, maka


DELETING
Operasi menghapus elemen data dari  struktur Array. Operasi ini hanya dapat  dilakukan jika ada data dalam struktur tersebut (tidak kosong).

Operasi penghancuran menyatakan ketidak berlakuan struktur data atau membebaskan memory, menyerahkan memory ke manajemen memory agar dapat di pergunakan keperluan lain.

Operasi penghancuran penting terutama bila struktur data di implementasikan secara dinamis menggunakan pointer.

Untuk melakukan operasi Deleting, dimisalkan:
Nama arraynya = A
Jumlah elemen yang terisi = Jml,
Posisi penghapusan/Index = p,

Jika ingin mendapatkan file asli
Klik Download

Kamis, 06 April 2017

PENGENALAN STRUKTUR DATA

PERTEMUAN PERTAMA
PENGENALAN KONSEP
STRUKTUR DATA
Teknik Informatika - 2016
Fakultas Teknologi Informasi www.unisbank.ac.id
KONSEP STRUKTUR DATA-1
Struktur adalah :
Struktur dapat diartikan sebagai suatu susunan, bentuk, pola atau bangunan.
Data dapat diartikan sebagai :
Suatu fakta, segala sesuatu yang dapat dikodekan atau disimbolkan dengan kode-kode atau lambang-lambang yang telah disediakan di setiap komputer.
KONSEP STRUKTUR DATA-2
Definisi Struktur Data adalah :

Suatu koleksi atau kelompok data (susunan simbol-simbol) yang dapat dikarakterisasikan  oleh organisasi serta  dapat dioperasikan sesuai dengan definisi yang diberikan terhadapnya di komputer.

KONSEP STRUKTUR DATA-3
Sehingga Struktur Data merupakan :

Cara penyimpanan dan pengorganisasian data-data secara efektif pada memori komputer maupun file pada media penyimpanan, sehingga dapat digunakan secara efisien, termasuk operasi-operasi di dalamnya.
KONSEP STRUKTUR DATA-4
DATA
Data yang disediakan oleh komputer sendiri terdiri dari berbagai jenis atau TYPE.
Pada garis besarnya, data dapat dikategorikan menjadi :
- Data Tunggal   :   Integer, Real, Boolean dan Karakter.
- Data Majemuk :   String
KONSEP STRUKTUR DATA-5 STRUKTUR DATA
Struktur Data, meliputi:
- Struktur data sederhana : Array dan Record - Struktur data majemuk :
 · Linier       : Stack, Queue, Linier Link List
 · Nonlinier   : Tree, Binari Tree, Binary Search Tree, Graph.
Di dalam struktur data
kita berhubungan dengan 2 aktivitas:

Mendeskripsikan kumpulan obyek data yang sah sesuai dengan tipe data yang ada
Menunjukkan mekanisme kerja operasioperasinya
Contoh: integer (-32768 s/d 32767) dan jenis operasi yang diperbolehkan adalah +, -, *, /, mod, ceil, floor, <, >, != dsb.
Struktur data = obyek data + [operasi manipulasi]

HARAPAN  MEMPELAJARI DAN LATIHAN STRUKTUR DATA :
Dapat mengatasi masalah implementasi data dengan  komputer.

Dengan cara-cara yaitu :
oPemahaman masalah secara menyeluruh dan persiapan data
oKeputusan operasi-operasi yang dilakukan terhadap data
oPenyimpanan data-data pada memori sehingga tersimpan dan terstruktur secara logis, operasinya efisien
oPengambilan keputusan terhadap bahasa pemrograman mana yang paling cocok untuk jenis data yang ada
Hubungan
Struktur Data dengan Algoritma dan Program
PROGRAM = STRUKTUR DATA + ALGORITMA
Bila terdapat problem yang kompleks dan hasil akhir penyelesaiannya berupa program maka :

Dengan pemilihan struktur data yang tepat dan baik
Penggunaan Algoritma yang terbaik

Maka program yang dibuat akan menjadi efektif dan efisien karena operasi-operasi penting (sebagai implementasi pembentukan algoritma dan penggunaan struktur data) dapat dieksekusi dengan sumber daya yang lebih kecil, memori lebih kecil, dan waktu eksekusi yang lebih cepat.
Perbedaannya dengan
Tipe Data dan Obyek Data
Tipe data adalah jenis data yang ditangani oleh suatu bahasa pemrograman pada komputer.
Tiap-tiap bahasa pemrograman memiliki tipe data yang memungkinkan:
o Deklarasi terhadap variabel tipe data tersebut
oMenyediakan kumpulan operasi yang mungkin terhadap variabel bertipe data tersebut
Contoh tipe data di C? Java? Pascal? .NET?
Obyek Data adalah kumpulan elemen yang mungkin untuk suatu tipe data tertentu.  
o Mis: integer mengacu pada obyek data -32768 s/d 32767, byte 0 s/d 255, string adalah kumpulan karakter maks 255 huruf
Tipe Data yang dimiliki dalam suatu Bahasa pemrograman dapat berupa :
o Built-in : sudah tersedia oleh bahasa pemrograman tersebut . Tidak berorientasi pada persoalan yang dihadapi.
o UDT : User Defined Type, dibuat oleh pemrogram.    Mendekati penyelesaian persoalan yang dihadapi
 Contoh: record pada Pascal, struct pada C, class pada
Java  o  ADT : Abstract Data Type
 memperluas konsep UDT dengan menambahkan pengkapsulan atau enkapsulasi, berisi sifat-sifat dan operasi-operasi yang bisa dilakukan terhadap kelas tersebut.
  Contoh: class pada Java
Bahasa Java memiliki tipe data numerik dan karakter (seperti int, float, char dan   lain-lain  Built-in).
Disamping itu juga memiliki tipe data enumerasi dan structure  ADT  
KESIMPULAN MEMPELAJARI STRUKTUR DATA
Mempelajari struktur data berarti mempelajari bagaimana data disusun / terstruktur di memori utama komputer secara logis  agar penggunaan space di memori dapat dilakukan secara optimal, cepat dalam pencarian dan pengambil-annya kembali, dan dapat diolah / dioperasikan sesuai dengan tujuannya.

Selain itu hal yang terpenting dalam mempelajari struktur data adalah eratkaitannya dengan pemilihan struktur data yang tepat membuat suatu algoritma yang digunakan untuk memecahkan suatu masalahmenjadi efisien, yang akan membantu logika kita dalam membuat program yang rumit, sehingga operasi-operasi penting dapat dieksekusi dengan sumber daya yang lebih kecil, memori lebih kecil, dan waktu eksekusi yang lebih cepat dan outputnya sesuai dengan yang diharapkan.


LATIHAN  (refresh materi algoritma – pemrograman):
Buatlah suatu program (topik bebas) dengan menggunakan bahasa pemrograman Java dan gunakan tipe data yang paling sesuai.

Format :
-Deskripsi masalah + Analisa Kebutuhan
- algoritma
-Harapan I/O
-Listing program
-Output


DALAM
STRUKTUR DATA (1)
1. JENIS Struktur Data

2. Operasi Dasar Yang Mempengaruhi
Struktur Data
DALAM
STRUKTUR DATA (2)
JENIS Struktur Data :
- Struktur data sederhana : Array dan Record - Struktur data majemuk :
 · Linier       : Stack, Queue, Linier Link List
 · Nonlinier   : Tree, Binari Tree, Binary Search Tree, Graph.

DALAM  STRUKTUR DATA (3)
Operasi Dasar Yang Mempengaruhi Struktur Data :
a. Traversing : proses mengunjungi setiap elemen data pada suatu struktur data, tepat satu kali
b. Searching : proses pencarian data dengan kriteria tertentu
c. Inserting : proses menambah elemen data baru ke suatu struktur data
d. Deleting : proses menghapus elemen data  dari struktur
e. Sorting : proses menyusun elemen-elemen data dalam urutan/aturan  tertentu
f. Update : proses mengganti nilai suatu elemen data dengan nilai baru
g. Mergening : proses menggabung dua buah struktur data menjadi satu


JENIS PENGGAMBARAN
MODEL DATA  STRUKTUR DATA (3)
A. Model data logika adalah model data yang ditinjau dari sudut pandang pemakai
(Manusia), yaitu segala sesuatu yang dapat diterima oleh indera manusia yang berasal dari rangsangan-rangsangan di sekitarnya, baik secara tersurat maupun tersirat.

B. Model data fisik adalah model data yang ditinjau dari sudut pandang komputer yaitu
Segala sesuatu yang dapat dikodekan atau disimbolkan dengan kode-kode atau simbol-simbol yang telah disediakan di setiap komputer. (Ingat kembali data di Komputer / sistem bilangan dan konversi bilangan)

Klik Download untuk mendapatkan filenya...😉