Sabtu, 27 Februari 2010
Metode Pengurutan Data
Bubble sort, exchange sort
Pengurutan berdasarkan prioritas (priority queue sorting method)
Selection sort, heap sort (menggunakan tree)
Pengurutan berdasarkan penyisipan dan penjagaan terurut (insert and keep sorted method)
Insertion sort, tree sort
Pengurutan berdasarkan pembagian dan penguasaan (devide and conquer method)
Quick sort, merge sort
Pengurutan berkurang menurun (diminishing increment sort method)
Shell sort (pengembangan insertion)
Sorting Struktur Data
• Pengurutan dapat dilakukan secara ascending (urut naik) dan descending (urut turun)
• Pengurutan (Sorting) adalah proses menyusun kembali data yang sebelumnya telah disusun dengan suatu pola tertentu, sehingga tersusun secara teratur menurut aturan tertentu.
• Contoh:
• Data Acak : 5 6 8 1 3 25 10
• Ascending : 1 3 5 6 8 10 25
• Descending : 25 10 8 6 5 3 1
Contoh Program Rekursif
program pangkat;
uses crt;
var A,x,i,hasil:integer;
begin
writeln(’masukkan bilangan yang akan di pangkatkan’);readln(A);
writeln(’masukkan bilangan pangkat’);readln(x);
hasil:=1;
for i:=1 to x do
hasil:=hasil*A;
writeln(’hasil dari ‘,A,’ pangkat ‘,x,’ adalah ‘,hasil);
readln;
end.
Rabu, 24 Februari 2010
Tugas Struktur Data
- Definisi Data
Beberapa definisi tentang data dari sudut pandang yang berbeda-beda:
* Menurut berbagai kamus bahasa Inggris-Indonesia, data diterjemahkan sebagai istilah yang berasal dari kata “datum” yang berarti fakta atau bahan-bahan keterangan.
* Dari sudut pandang bisnis, data bisnis (business data) adalah deskripsi organisasi tentang sesuatu(resources) dan kejadian (transactions) yang terjadi (business data is an organization’s description of things (resources)and events (transactions) that it faces).
* Data adalah deskripsi dari sesuatu dan kejadian yang kita hadapi.
* Data adalah kenyataan yang menggambarkan suatu kejadian-kejadian dan kesatuan nyata. Kejadian adalah sesuatu yang terjadi pada saat tertentu. Kesatuan nyata adalah berupa suatu objek nyata seperti tempat, benda dan orang yang betul-betul ada dan terjadi.
- Definisi Struktur Data
Struktur data adalah 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.
Secara garis besar type data dapat dikategorikan menjadi
Type data sederhana
- Type data sederhana tunggal, misalnya :
Integer, real, boolean,dan karakter
- Type data sederhana majemuk, misalnya :
String
Struktur Data, meliputi
- Struktur data sederhana, misalnya array dan Record
Struktur data majemuk, yang terdiri
- Linier : Stack, Queue, serta List dan Multilist
- Non Linier : Pohon Biner dan Graph
Pemakaian struktur data yang tepat di dalam 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 dibidang informatika adalah
- ADT , Array , Struk
- List linier (Linked List) dan variasinya
- Multilist
- Stack (Tumpukan)
- Queue (Antrian)
- Tree ( Pohon )
- Graph ( Graf )
B.Tipe-tipe Data
Secara sederhana tipe data dapat didefinisikan dengan istilah tempat untuk menentukan pemberian nilai terhadap suatu variabel sesuai atau tidak dengan nilai yang diberikan oleh user. Dalam versi lain tipe data juga diartikan sebagai batasan terhadap fungsi tanda pengenal terhadap semua nilai yang diterima. logika yang dapat kita berikan adalah ketika kita menempatkan tanda pengenal harga hanya mengenal angka, maka ketika kita memberikan nilai berupa string maka secara otomatis data tersebut akan ditolak karena nilai tersebut tidak dikenali oleh tipe data yang diberikan.
1. Tipe Data Numeric Integer
Tipe data integer merupakan tipe data bilangan bulat yang hanya mengenal bilangan decimal. Dimana tipe data Integer tidak mengenal pecahan
Bentuk Umum
Var
Nil1:integer;
Begin
Nil1:=5000;
2. Tipe Data Real
Tipe data numeric real adalah tipe data dari suatu tanda pengenal selain mengenal bilangan bulat utuh tipe data ini juga mengenal nilai angka yang mengenal pecahan.
Bentuk Umum
Var
Nil:real;
Begin
Nil1:=20,5;
3. Tipe Data String
Tipe data string merupakan salah satu jens tipe data selain mengenal angak disini tipe data dapat juga mengenla data berupa huruf maupun tanda baca.
Bentuk umum
Var
Nama:string;
Begin
Nama:=’Anton’;
4. Tipe Data Char
Secara fungsi tipe data char sama dengan tipe data string tetapi dari segi kapsitas ruang diperoleh tipe data char jauh lebih sedikit karena hanya mengenal 1 karakter.
C. Deklarasi Data
Dalam setiap penulisan bahasa pemograman deklarasi sangat digunakan apabila dalam penulisan program dibutuhkan indentifier atau tanda pengenal. Indentifier pada umumnya di buat oleh progremmmer yang digunakan untuk mewakili nilai dari suatu object.
Indentifier yang dikenal dalam Delphi adalah label, konstanta, tipe, fungsi, procedure maupun variabel.
1. Deklarasi Konstanta
Deklarasi konstanta adalah tanda pengenal dalam Delphi yang mempunyai nilai yang sudah tetap. Definisi konstanta diawali dengan kata baku Const diikuti dengan kumpulan indentifier yang diberi sebuah nilai.
Contoh
procedure TForm2.etertulisChange(Sender: TObject);
const
nil1:='30000';
begin
end;
2. Deklarasi Variabel
Deklarasi variabel adalah tanda pengenal dalam Delphi yang mempunyai nilai yang mana nilai tersebut akan terus berubah selama proses berjalan. Definisi variabel diawali dengan kata baku Var diikuti dengan kumpulan identifier yang diikuti dengan tipe data yang dibutuhkan.
Contoh
procedure TForm2.EpraktekKeyPress(Sender: TObject; var Key: Char);
var
praktek,nil2,nil1 :real;
begin
if (key = #13) then
begin
nil1 := strtofloat(ehtulis.Text);
praktek:= strtofloat(epraktek.Text);
nil2:= 0.4 * praktek;
ehpraktek.Text := floattostr(nil2);
form2.ActiveControl := cmi;
emurni.Text := floattostr(nil1 + nil2);
if nil1 > 60 then
egrade.Text := 'Lulus'
else
egrade.Text := 'Gagal'
end;
end;
D. Pemetaan (MAPPING) Type Data ke Storage
Komputer merepresentasikan data dalam bentuk biner, karena setiap bit data
dalam komputer hanya dapat menyimpan dua macam keadaan, yaitu voltase
tinggi dan voltase rendah. Perbedaan voltase tersebut mewakili nilai TRUE dan
FALSE, atau bit ‘1’ dan ‘0’
Representasi Karakter dan String
Ada beberapa aturan yang digunakan untuk menyatakan karakter dalam
storage. Diantaranya adalah :
1. EBCDIC (Extended Binary Coded Decimal Interchange Code)
EBCDIC adalah suatu sistem peng-kode-an (mapping) yang menggunakan 8
binary digit (bit) untuk menyatakan suatu karakter dalam alfabet.
( 1 karakter = 8 bit )
Dalam 8 bit terdapat 28 (256) kemungkinan karakter yang dapat dibentuk.
2. ASCII ( American Standard Code For Information Interchange)
ASCII adalah cara peng-kode-an yang menggunakan 7 bit untuk menyatakan
suatu karakter dalam alfabet.
( 1 karakter = 7 bit). Dalam 7 bit terdapat 27 (128) kemungkinan karakter yang
dapat dibentuk, separuh dari yang dimiliki EBCDIC.
3. BCD ( Binary Coded Decimal )
BCD ini menggunakan 4 bit untuk setiap karakternya.
4. PACKED DECIMAL
Packed Decimal umumnya digunakan untuk karakter berjenis data numerik
dengan cara penyimpanannya menggunakan 2 digit setiap 8 bit. Pada 8 bit terakhir disimpan selain digit derajat terendah, juga tanda dari bilangan
tersebut (positif atau negatif).
Berikut ini perbandingan kode EBCDIC, ASCII dan PACKEDDECIMAL
untuk menyatakan +903.
9 0 3 +
EBCDIC : 11111001 11110000 11110011 01001110
ASCII : 0111001 0110000 0110011 0101011
PACKED DECIMAL : 10010000 00111100
5. Unicode
Unicode menggunakan 16 bit untuk merepresentasikan karakter. Dengan
demikian, banyaknya karakter yang dapat direpresentasikan adalah 216 atau
65.536 karakter.
Keunggulan Unicode dari ASCII adalah kemampuannya untuk menyimpan
simbol / karakter yang jauh lebih besar. Himpunan 256 karakter pertama dari
Unicode merupakan pemetaan karakter ASCII 8 bit, sehingga Unicode tetap
kompatibel dengan ASCII. Selain merepresentasikan seluruh karakter ASCII,
Unicode dapat merepresentasikan juga berbagai macam simbol diluar ASCII,
seperti huruf Arab, Kanji, Hiragana, Katakana, dan lain-lain.
Representasi Bilangan Bulat / Integer
Bilangan Bulat Tak Bertanda dapat direpresentasikan dengan
- bilangan biner – oktal - heksadesimal
- gray code
- BCD (binary coded decimal)
Bilangan bulat Bertanda (positif atau negatif) dapat direpresentasikan dengan
- Sign/Magnitude (S/M)
- 1’s complement
- 2’s complement
Untuk bilangan bulat positif, tidak ada perbedaan dalam ketiga macam
representasi bilangan di atas. Terdapat persamaan dalam ketiga representasi
tersebut berupa digunakannya MSB (most significant bit) sebagai penanda. MSB
bernilai ‘0’ untuk bilangan positif dan ‘1’ untuk bilangan negatif.
SIGN / MAGNITUDE
Salah satu storage mapping yang dapat dilakukan terhadap integer adalah apa
yang disebut bentuk sign-and-magnitude, yaitu digit untuk tanda integer positif
atau negatif dan sebarisan digit untuk menyatakan magnitude/besarnya.
Contoh : -7 = -111 dan +7 = +111
Bagi kita mudah bekerja terhadap bilangan dalam bentuk sign-and-magnitude,
namun apabila dilakukan penjumlahan dengan kedua operand berbeda tanda,
penjumlahan akan beralih menjadi pengurangan yang kadang-kadang
menimbulkan kesukaran. Untuk itu, digunakan apa yang disebut sebagai COMPLEMENT (merubah tanda negatif pada bilangan pengurangan menjadi
tanda positif)
X’ adalah complement dari X terhadap R ( R ‘s complement dari X ) bila
X + X’ = R.
X’ = R – X menyatakan integer negatif -X.
Representasi negatif dari suatu bilangan diperoleh dari bentuk positifnya dengan
mengubah bit pada MSB menjadi bernilai 1. Jika dipergunakan N bit untuk
representasi data, maka rentang nilai yang dapat direpresentasikan adalah
-2N-1-1 s.d 2N-1-1
Contoh : jika dipergunakan 5 bit untuk representasi bilangan
+3 = 00011
-3 = 10011
Terdapat dua jenis Complement :
ONE’S COMPLEMENT
Representasi negatif dari suatu bilangan diperoleh dengan mengkomplemenkan
seluruh bit dari nilai positifnya. Jika dipergunakan N bit untuk representasi data,
maka rentang nilai yang dapat direpresentasikan adalah -2N-1-1 s.d 2N-1-1
1’s complement menggunakan mapping dengan R = 2N - 1
N adalah jumlah bit integer yang dapat disajikan.
Contoh : jika dipergunakan 5 bit untuk representasi bilangan
+3 = 00011
-3 = 11100
TWO’S COMPLEMENT
Representasi negatif dari suatu bilangan diperoleh dengan mengurangkan 2n
dengan nilai positifnya. Jika dipergunakan N bit untuk representasi data, maka
rentang nilai yang dapat direpresentasikan adalah -2N-1 s.d 2N-1-1.
Two’s Complement menggunakan mapping dengan R = 2N
Contoh : jika dipergunakan 5 bit untuk representasi bilangan
2n = 25 = 100000
+3 = 00011
- 3 = 100000-00011
100000
00011 -
11101
® - 3 = 11101
PERBANDINGAN
Berikut tabel perbandingan ketiga cara representasi bilangan bulat bertanda.
B Nilai yang direpresentasikan
b3b2b1b0 Sign/Magnitude 1’s complement 2’s complement
0111 +7 +7 +7
0110 +6 +6 +6
0101 +5 +5 +5
0100 +4 +4 +4
0011 +3 +3 +3
0010 +2 +2 +2
0001 +1 +1 +1
0000 +0 +0 +0
1000 -0 -7 -8
1001 -1 -6 -7
1010 -2 -5 -6
1011 -3 -4 -5
1100 -4 -3 -4
1101 -5 -2 -3
1110 -6 -1 -2
1111 -7 -0 -1
Representasi Bilangan Pecahan / Floating Point
Bilangan pecahan dapat direpresentasikan dalam bentuk pecahan biasa atau
dalam bentuk scientific.
Bentuk Pecahan Biasa
Dalam bentuk pecahan biasa, bilangan direpresentasikan langsung kedalam
bentuk binernya. Contoh : 27.625 = 11011.1012
Bentuk S C I E N T I F I C
Dalam notasi scientific, bilangan pecahan dinyatakan sebagai X = ±M . B±E.
M = mantissa
B = basis
E = eksponen
Contoh : 5.700.000 = 57.105 M=57, B=10, E=5
Masalah : terdapat tak berhingga banyaknya representasi yang dapat dibuat.
Dalam contoh sebelumnya, 5.700.000 = 57.105 = 570.104 = 5,7.106 = 0,57.107 =
0,057.108 dst. Untuk mengatasinya, ditentukan adanya bentuk normal, dengan
syarat
1/B = |M|< 1
Dengan demikian, bentuk scientific yang normal (memenuhi persyaratan) dari
5.700.000 adalah 0,57.107
Dalam bentuk normal tersebut, selalu diperoleh mantissa berbentuk ‘0,…’
sehingga dalam representasinya kedalam bit data, fraksi ‘0,’ tersebut dapat
dihilangkan.
Mantissa dan eksponen tersebut dapat direpresentasikan menggunakan salah
satu cara representasi bilangan bulat bertanda yang telah dibahas di atas.
Representasi yang dipilih dapat saja berbeda antara mantissa dengan
eksponennya.
E.Organisansi Logic dan Fisik dari struktur data
Pengertian Struktur pada Struktur Data
dengan sifat setiap variabel dapat memiliki tipe yang berlainan. Struktur biasa dipakai
untuk mengelompokkan beberapa informasi yang berkaitan menjadi sebuah satu
kesatuan.
Contoh sebuah struktur adalah informasi data tanggal, yang berisi: tanggal, bulan
dan tahun.
Struktur Data Array
maksimumnya telah diketahui dari awal. Array umumnya disimpan di memori komputer
secara kontigu (berurutan). Deklarasi dari array adalah sebagai berikut:
int A[5]; artinya variabel A adalah kumpulan data sebanyak 5 bilangan bertipe
integer.
Operasi terhadap elemen di array dilakukan dengan pengaksesan langsung. Nilai
di masing-masing posisi elemen dapat diambil dan nilai dapat disimpan tanpa melewati
posisi-posisi lain.
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
1.3.1 Penyimpanan dan Pengambilan Nilai
Biasanya bahasa pemrograman menyediakan sintaks tertentu untuk penyimpanan
dan pengambilan nilai elemen pada posisi tertentu di array.
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
1.3.2 Keunggulan dan Kelemahan Array
Keunggulan array adalah sebagai berikut:
1. Array sangat cocok untuk pengaksesan acak. Sembarang elemen di array dapat diacu
secara langsung tanpa melalui elemen-elemen lain.
2. Jika berada di suatu lokasi elemen, maka sangat mudah menelusuri ke elemen-
elemen tetangga, baik elemen pendahulu atau elemen penerus 3
3. Jika elemen-elemen array adalah nilai-nilai independen dan seluruhnya harus terjaga,
maka penggunaan penyimpanannya sangat efisien
Kelemahan array adalah sebagai berikut:
Array mempunyai fleksibilitas rendah, karena array mempunyai batasan sebagai berikut:
1. Array harus bertipe homogen. Kita tidak dapat mempunyai array dimana satu elemen
adalah karakter, elemen lain bilangan, dan elemen lain adalah tipe-tipe lain
2. Kebanyakan bahasa pemrograman mengimplementasikan array statik yang sulit
diubah ukurannya di waktu eksekusi. Bila penambahan dan pengurangan terjadi
terus-menerus, maka representasi statis
• Tidak efisien dalam penggunaan memori
• Menyiakan banyak waktu komputasi
• Pada suatu aplikasi, representasi statis tidak dimungkinkan
Pengertian Struktur Data
Dalam istilah ilmu komputer, sebuah struktur data adalah cara penyimpanan, penyusunan dan pengaturan data di dalam media penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien.
Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi kolom-kolom data, baik itu kolom yang tampak oleh pengguna (user) atau pun kolom yang hanya digunakan untuk keperluan pemrograman yang tidak tampak oleh pengguna. Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan (record). Lebar kolom untuk data dapat berubah dan bervariasi. Ada kolom yang lebarnya berubah secara dinamis sesuai masukan dari pengguna, dan juga ada kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah struktur data dapat diterapkan untuk pengolahan database (misalnya untuk keperluan data keuangan) atau untuk pengolah kata (word processor) yang kolomnya berubah secara dinamis. Contoh struktur data dapat dilihat pada berkas-berkas lembar-sebar (spreadsheet), pangkal-data (database), pengolahan kata, citra yang dipampat (dikompres), juga pemampatan berkas dengan teknik tertentu yang memanfaatkan struktur data.