Sabtu, 11 Juni 2011

ALGORITMA DAN STRUKTUR DATA JILID 2

         
            Pada Algoritma dan Struktur Data 2 akan mempelajari tentang tipe data lain, searching (pencarian), algoritma rekursif (berulang), dan pengurutan (sorting).
1.    Tipe Data Lain
Tipe data lain dalam pascal terdir dari 4 macam, yaitu tipe sub jangkauan, tipe data enumerasi, tipe data set, dan tipe data string.
a.    Tipe Sub Jangkauan
Tipe ini mendefenisikan jangkauan dari nilai-nilai ordinal.
Aturan pendeklarasian :
Type
Huruf :’o’..’c’;
Angka : ‘0’..’1’;
Nilai : ‘0’..’100’;
var
Inisial : Huruf
Nilai : Angka
Selain dengan cara mendeklarasikan terlebih dahulu tipe dan selajutnya dilakukan dalam pendeklarasian variabel tipe sub jangkauan dapat langsung dibuat pada bagian pendeklarasian variabel.
b.    Tipe Data Enumerasi
Tipe enumerasi mendefenisikan sekumpulan nilai yang diberi nama dan disebut satu persatu berdasarkan nilainya.
Aturan pendeklarasian :
Type
Nama_tipe = (nama_nilai1, nama_nilai2,......., nama_nilain);
c.    Tipe data set
Tipe data set adalah tipe data yang memungkinkan kita untuk mengadakan suatu himpunan dan termasuk tipe data terstruktur. Pada tipe ini jumlah nilai tipe tidak boleh lebih dari 255 nilai.
Aturan pendeklarasian :
Type
Nama_tipe =  set of tipe;
Contoh program :
                                             

d.   Tipe data string
Tipe data string adalah serangkai karakter dengan panjang yang berubah-ubah dan panjang maksimalnya antara 1-255 karakter.
Aturan pendeklarasian :
Var
Nama_var : string [constanta];
Atau
Nama_var : string;
Fungsi dan prosedur untuk manipulasi string :
1.      Length, yaitu mengirimkan panjang string.
2.      Concat, yaitu menggabungkan 2 atau lebih string menjadi 1 string.
3.      Copy, yaitu mengirimkan sub string dari string.
4.      Delete, yaitu untuk menghapus sub string pada sebuah string.
5.      Insert, yaitu menyisipkan sub string pada sebuah string.
6.      Pos, yaitu mengirimkan posisi sub string pada sebuah string.

2.    Searching (pencarian).
Pencarian (Searching) adalah proses pencarian nilai dari sebuah larik dengan membandingkan tiap-tiap elemennya berdasarkan algoritma pencarian yang digunakan. Ada 3 macam jenis search yang terdapat dalam pascal yaitu, Sequential search, Binary Search, dan Ekstrim Search.
1.    Sequential Search
Algoritma pencarian ini yaitu membandingkan nilai yang dicari (didefenisikan) dengan setiap elemen array, mulai indeks terkecil sampai indeks terbesar yang terdefenisi. Sebagai contoh bila di indeks array ditentukan dari sebuah variabel n=8  dan tab array berisi (1,2,3,10,12,70, 42, 30) sedang nilai yang dicari adalah x=10, maka pencarian akan dihentikan pada (1,2,3,10) dan tidak perlu sampai pada tab array yang paling terakhir oleh karena nilai yang dicari telah ditemukan.  Yakni x=10 ditemukan pada indeks ke-4.
2.    Binary Search.
Algoritma ini juga disebut dengan dikotomik ide dasarnya adalah membandingkan harga x, dengan elemen tengah array, jika lebih besar dari elemen tengah array, karena elemen-elemen terurut membesar, maka pencarian dilakukan pada setengah bagian yang nilainya lebih besar dari x sampai elemen terakhir. Sebagai contoh :
Diketahui sebuah tabel berisi harga integer, tabInt[1..n], yang telah terisi, dan terurut membesar , tulisakan program dengan bantuan fungsi yang jka diberikan sebuah x berniali integer , maka akan dicari apakah harga x ada dalam tabint secara dikotomik, dengan aturan sbb:
Bandingkan x dengan harga elemen tengah :
1.    Jika sama berarti x ditemukan dalam tabel
2.    Jika x
3.    Jika x > tengah, pencarian dilakukan pada elemen bagian atas dengan cara yang sama
3.    Ekstrim Search
mencari nilai ekstrim (terbesar atau terkecil) adalah  contoh dari proses sequential terhadap array selain beberapa contoh pencarian diatas, ide dasar algoritma mencari nilai ekstrim adalah dengan membandingkan nilai elemen pertama array (diasumsikan sebagai nilai ekstrim) dengan nilai elemen-elemen sesudahnya.

3.    Algoritma Rekursif.
Rekursif adalah proses memanggil dirinya sendiri yang biasanya dilakukan fungsi atau prosedur pada pemrograman prosedural. Rekursif akan terus berjalan sampai kondisi berhenti terpenuhi.
Contoh program :



4.    Pengurutan (Sorting).
Pengurutan data atau sorting merupakan hal yang penting dalam kehidupan nyata untuk memudahkan pengolahan data. Pengurutan data dapat dilakukan dengan urutan naik (ascending) atau dengan urutan menurun (descending).
Pengurutan memiliki beberapa metode antara lain :
1.    Metode penyisipan (insertion sort).
Metode penyisipan langsung adalah metode pengurutan yang mengambil sebuah data sisip pada data yang diurutkan dan menggeser data yang lebih besar dari data sisip agar data sisip dapat ditempatkan pada tempat yang benar.
2.    Metode Seleksi
Metode seleksi adalah metode pengurutan ang mencari nilai terkecil atau terbesar bergantung pada pengurutan naik atau turun yang kemudian ditempatkan pada tempat paling depan, kemudian mencari lagi nilai terkecil atau terbesar kedua sepanjang jumlah elemen array dikurangi satu, setelah ketemu elemen kedua ditukar dengan nilai minimum , begitu seterusnya.
3.    Metode Gelembung (Bubble Sort)
Metode gelembung adalah metode pengurutan yang menukarkan dua buah elemen secara terus menerus sampai pengurutan selesai.
4.    Metode Quick Sort
Metode quick sort adalah metode pengurutan yang menjadikan sebuah tabel data yang akan diurutkan menjadi dua buah sub bagian yang ditelusuri dari kiri dan dari kanan.

Sekian yang dapat saya sampaikan mengenai Algoritma dan Struktur Data 2, lebih dan kurangnya mohon di maafkan.....