Saturday, January 4, 2014

Pengurutan (Sorting)





Pengurutan adalah Proses untuk menyusun atau merubah urutan kumpulan data. Sewaktu seseorang memasukkan data ke komputer, tumpukan berkas yang ada sangat jarang disortir terlebih dulu, mungkin karena alasan akan memakan waktu yang lama atau sulit melakukan secara manual atau bahkan tidak mungkin dilakukan. Seperti bagaimana mungkin kita dapat memasukkan data secara berurut (misalkan urut nama) pada saat proses pendaftaran mahasiswa baru masih berlangsung. Karenanya, untuk mempermudah dan mempercepat proses sorting (pengurutan), programmer akan melakukannya secara programming saja.


Keuntungan yang bisa diperoleh dari data yang sudah urut antara lain adalah data mudah dicari (misalkan daftar hadir), mudah untuk dibetulkan, dihapus, disisipi atau digabungkan dan dapat dengan mudah mencek jika ada data yang hilang.



Metode pengurutan (sorting) data diklasifikasikan menjadi dua kategori, yaitu :


  1. Pengurutan Larik (array) disebut juga pengurutan internal (Internal Sorting)

Pengurutan larik disebut sebagai internal sorting karena larik tersimpan dalam memori utama komputer.


  1. Pengurutan berkas masuk urut (Sequential Access File) disebut juga pengurutan eksternal (External Sorting).

Pengurutan berkas disebut external sorting karena berkas tersimpan memori eksternal (tambahan) misalnya di disk.



Pertimbangan ketika akan melakukan sorting

  1. Perlu tidaknya data disortir.
  2. Besarnya atau banyaknya data yang akan disortir
  3. Kemampuan dan kapasitas komputer atau media penyimpanan data
  4. Metode sorting



Pertimbangkan data berikut ini :

                  33

                  -2

                   6

                  62

                  12

Dimungkinkan untuk mengurutkan data ke dalam dua urutan yang berbeda, pertama secara Ascending (dari data paling kecil ke paling besar) dan Descending (dari data paling besar ke paling kecil). Hasil dari dua urutan data yang berbeda tersebut adalah berikut ini :





Urutan Ascending


Urutan Descending





-2

 6

12

33

62


62

33

12

6

-2


Kebanyakan sorting yang diperlukan adalah sorting secara ascending, untuk alasan ini maka akan difokuskan bahasa sorting urut secara ascending. Jika diinginkan urut descending maka dapat dimodifikasi menjadi urut secara descending.


Dalam suatu pengurutan salah satu dari array didesain sebagai kunci urut (sort key). Kunci urut yang merupakan data item dapat digunakan dalam pengurutan kembali data tersebut. Sebagai contoh, data yang mengandung Nomor, Nama dan Jenis Kelamin merupakan kelompok orang :


22                    Budi                      L

31                    Dini                       P

10                    Ani                        P

16                    Iwan                      L

12                    Aisyi                      L


Kita mungkin ingin mengurutkan data berdasarkan kunci urut Nomor untuk tujuan tertentu dan mengurutkan Nama untuk tujuan lain. Urutan data menjadi berikut ini :


Urut berdasarkan Nomor (Ascending)


10                    Ani                        P

12                    Aisyi                      L

16                    Iwan                      L

22                    Budi                      L

31                    Dini                       P



Urut berdasarkan Nama (Ascending)


12                    Aisyi                      L

10                    Ani                        P

22                    Budi                      L

31                    Dini                       P

16                    Iwan                      L


Dengan cara yang sama kita juga bias mengurutkan jenis kelamin secara ascending.


Bentuk Umum Array

            
Type
      Tipe_Array      = array [range_index] of tipe data;
Var
      Nama_Array  :  Tipe_Array;
Keterangan :
Nama_Array  adalah nama variabel array yang dipakai untuk mengidentifikasi array.
Range_index  adalah batasan indek yang digunakan untuk menidentifikasi elemen array, yang jumlahnya tidak berubah (statis) mulai saat awal disediakan (program dijalankan) hingga program selesai dijalankan. Misalnya range 0..9 atau 1..10 atau -1 ..8 atau ‘A’..’J’ akan menentukan jumlah elemen array sebanyak 10 buah.
Tipe_data adalah tipe data untuk elemen array.

Contoh :
Untuk menyimpan 10 nama dapat membuat array dengan 10 elemen yang dapat digambarkan sebagai berikut :
Nama[1]
Dani
Nama[2]
Budi
Nama[3]
Ani
:

Nama[10]
Tuti


Contoh lain dari penggunaan Array :
Seorang pedagang menggunakan array untuk menyimpan data penjualan dari tahun 1994 sampai dengan 2005. Berapa panjang (jumlah elemen) array yang harus disediakan ?

Untuk mengetahui panjang atau jumlah elemen array dapat dihitung dengan rumus sebagai berikut :  Panjang = UB – LB + 1

dengan :
UB   =  Upper Bound (indek terbesar)
LB   =  Lower Bound (indek terkecil)

sehingga ;
LB  = 1994
UB =  2005
Jadi Panjang = UB – LB + 1
                     = 2005 – 1994 + 1
                     = 12
Artinya jumlah elemen array yang diperlukan adalah sebanyak 12 buah.
Untuk mendefinisikan array tersebut dapat ditulis sebagai berikut :
Var
JUAL  : array [1994 . . 2005] of Integer;

Tipe data yang dapat digunakan meliputi char, integer, boolean, byte, terbilang dan subjangkauan.
Berikut contoh array yang menggunakan tipe char :

Type
      Huruf = ‘A’ . . ‘Z’;
      Kode = String[10];
      KodeArray = array [Huruf]  of  Kode;
Var
      KodeHuruf  :  KodeArray;

Dari contoh di atas merupakan subscript dengan tipe char dan array mengandung 26 elemen, satu elemen untuk tiap huruf di dalam jangkauan ‘A’ . . ‘Z’. Array  tersebut dapat digambarkan sebagai berikut :

KodeHuruf[’A’]

KodeHuruf[’B’]

KodeHuruf[’C’]

:

KodeHuruf [’Z’]


Tugas :
Gambarkan struktur yang dibuat oleh setiap segmen program berikut ini :
  1. Type
SubskripJangkauan = -3 . . 3;
ArrayTipeA             = array [SubskripJangkauan] of Real;
            Var
                        ArrayA  :  ArrayTipeA;
  1. Type
ArrayTipeB             = array [‘a’ . . ‘e’] of Integer;
            Var
                        ArrayB  :  ArrayTipeB;
  1. Var
                  ArrayC  :  array [10 . . 20] of  Integer;
  1. Type
Hari = (’Minggu’,’Senin’,’Selasa’,’Rabu’,’Kamis’,’Jumat’,’Sabtu’);
            Var
                        ArrayD  :  array [Hari] of  String[10];

Friday, January 3, 2014

Pengertian Tipe Data Abstrak (TDA)


Tipe data sebuah variabel merupakan kumpulan nilai yang dapat dimuat oleh variabel tersebut. Misalnya sebuah tipe Boolean hanya bernilai TRUE atau FALSE, tidak boleh nilai yang lain.

Tipe Data Abstrak adalah suatu model matematika, disertai sekumpulan operasi terhadap model tersebut. Untuk mempresentasikan suatu model matematis dari suatu TDA, digunakan struktur data yang berisi sekumpulan variabel, yang bisa terdiri atas beberapa tipe data dan mempunyai bermacam-macam jenis dan cara relasi antara setiap variabel.
Ada 3 jenis dasar dari tipe data pada Turbo Pascal, yaitu :
1.      Tipe Data Sederhana
2.      Tipe Data Terstruktur
3.      Tipe Data Pointer

1. Tipe Data Sederhana
Tipe data sederhana bisa diartikan bahwa dalam sebuah variabel / perubah hanya menyimpan sebuah nilai data.
a.    Tipe Ordinal
Karakteristik tipe data ordinal adalah nilai dari suatu tipe ordinal merupakan himpunan berurutan (ordered set).
-          Tipe Integer
Tipe data integer adalah bilangan bulat atau tipe data yang nilainya tidak mempunyai titik desimal. Pada Pascal tipe data numerik ada dua yaitu Integer dan Real. Tanda Plus (+) dan Minus(-) dapat mendahului bilangan integer.
Contoh konstanta integer yang sah :
                          -234
                       +1098
                         1234
                               0
                      -67890

Contoh konstanta integer yang tidak sah :
                       33000            (terlalu besar, maksimum 32767)
                      12,345            (memakai koma)
                      -33000            (terlalu kecil, minimum -32767)
                          24.0            (memakai titik desimal)


              Ada  5 (lima) tipe yang termasuk dalam kelompok ini, yaitu :
Tipe                                        Batas Nilai                    Ukuran dalm Byte
Byte                                          0 .. 255                                     1
Shortint                                -127 .. 127                                    1
Word                                            0 .. 65535                              2   
Integer                                -32767 .. 32767                              2
Longint                    -2147483648 .. 2147483647                    4

Tipe data juga menentukan macam operasi yang bisa dilaksanakan. Operator–operator yang bisa dikerjakan dengan integer adalah : +, -, *, DIV dan MOD.

Contoh :
Ø  3 DIV 4 akan menghasilkan 0
Karena bagian pecahan yaitu 0.75 dihilangkan.
Ø  5 MOD 3 akan menghasilkan 1
Karena sisa pembagian 5 dan 3 adalah 2.

-          Tipe Boolean
Tipe data boolean mempunyai dua nilai, yaitu  True (nilai biner 1) dan False (nilai biner 0).

Contoh mendeklarasikan variabel x dan y sebagai tipe data boolean.
Var
      x, y   : Boolean;

Variabel x dan y dapat diberikan nilai dengan menggunakan pernyataan penugasan (assignment).
Contoh :
          x := True;
          y := False;

Variabel dengan tipe boolean tidak dapat memasukkan nilai dengan menggunakan Readln. Tetapi bisa dideklarasikan dengan konstanta boolean.

Contoh :
          Const
                      Jawab = True;
sehingga
          Writeln(x);                               (hasil  :  True)
          Writeln(y,Jawab);                    (hasil  :  FalseTrue)

Pascal mendukung operasi logika yang dapat dilaksanakan pada nilai boolean. Operasi logika tersebut adalah NOT, AND, OR dan XOR.
Contoh :
     X dan Z mempunyai nilai True dan Y mempunyai nilai False.

Pengertian Struktur Data

 Struktur Data

     Struktur dapat diartikan sebagai suatu susunan, bentuk pola atau bangunan. Rangkaian kata yang mengandung kata struktur yang sering kita dengar seperti struktur organisasi, struktur jaringan, struktur kimia, cara kerja yang terstruktur dan sebagainya. Kata data diambil dari bahasa Inggris yang berasal dari bahasa Yunani yaitu datum yang berarti fakta. Makna kata data bagi manusia adalah segala sesuatu yang dapat diterima oleh indera manusia. Bagi komputer, data adalah segala sesuatu yang bisa dikodekan atau disimbolkan atau dilambangkan dengan kode-kode, simbol-simbol atau lambang-lambang yang telah disediakan di setiap komputer. Struktur data merupakan suatu cara menyimpan atau merepresentasikan data di dalam komputer agar bisa dipakai secara efisien. Sedangkan data adalah representasi dari fakta dunia nyata. Fakta atau keterangan tentang kenyataan yang disimpan, direkam atau direpresentasikan dalam bentuk tulisan, suara, gambar, sinyal atau simbol.

Jika kata struktur dan data  disatukan akan bermakna suatu susunan simbol-simbol yang diorganisasikan dan dioperasikan sesuai dengan definisi yang diberikan terhadapnya di komputer. Jika dikaitkan dengan mata kuliah struktur data, pada dasarnya struktur data merupakan metode yang digunakan untuk mempelajari bagaimana data disusun di memori utama komputer agar penggunaan space di memori dapat dilakukan secara optimal, cepat dalam pencarian dan pengambilannya kembali (retrieving) dan dapat diolah sesuai tujuan kita. Sehingga mempelajari struktur data erat kaitannya dengan membuat suatu algoritma (rangkaian pemikiran logis untuk menyelesaikan masalah).Dalam teknik pemrograman, struktur data berarti pengaturan dan penyusunan dari tata letak kolom-kolom data, baik kolom data yang tampak oleh pengguna program maupun tata letak kolom pada memori yang tidak tampak oleh pengguna, yang tidak tampak ini hanya digunakan untuk kepentingan proses dalam program saja. 

Struktur data digunakan untuk meningkatkan efisiensi penggunaan memori pada saat program komputer sedang bekerja. Penggunaan struktur data yang tepat pada pemograman dapat membuat algoritma menjadi lebih mudah, kemudahan ini membuat program lebih efisien dan sederhana. Meningkatkan efisiensi merupakan tujuan utama pengaplikasian struktur data. Dengan struktur data, proses reservasi memori yang tidak perlu akan diminimalisasi. Selain itu struktur data juga menjamin kemudahan pemahaman algoritma, sehingga untuk menyelesaikan permasalahan seperti perkalian matriks, visualisasi matriks dan tabel, akan menjadi lebih mudah dipahami.

Dan sejumlah operasi dasar yang bekerja pada data tersebut menurut suatu algoritma tertentu.
Struktur data, meliputi :
  • Struktur data sederhana, misalnya array dan record.
  • Struktur data majemuk, yang terdiri dari:
Linier         : Stack, Queue, sertaList dan Multilist
Non Linier : Pohon Biner dan Graph

Pemakaian struktur data yang tepat didalam proses pemrograman akan menghasilkan algoritma yang lebih jelas dan tepat, sehingga menjadikan program secara keseluruhan lebih efisien dan sederhana.

Struktur data yang standar yang biasanya digunakan di bidang informatika adalah:
* List linier (Linked List) dan variasinya
* Multilist
* Stack (Tumpukan)
* Queue (Antrian)
* Tree ( Pohon)
* Graph ( Graf )