Minggu, 29 Mei 2011

Aljabar Boolean




• Misalkan terdapat
- Dua operator biner: + dan 
- Sebuah operator uner: ’.
- B : himpunan yang didefinisikan pada opeartor +, , dan ’
- 0 dan 1 adalah dua elemen yang berbeda dari B.
Tupel
(B, +, , ’)
disebut aljabar Boolean jika untuk setiap a, b, c  B berlaku aksioma-aksioma atau postulat Huntington berikut:

1. Closure: (i) a + b  B
(ii) a  b  B

2. Identitas: (i) a + 0 = a
(ii) a  1 = a

3. Komutatif: (i) a + b = b + a
(ii) a  b = b . a

4. Distributif: (i) a  (b + c) = (a  b) + (a  c)
(ii) a + (b  c) = (a + b)  (a + c)

5. Komplemen : (i) a + a’ = 1
(ii) a  a’ = 0




• Untuk mempunyai sebuah aljabar Boolean, harus diperlihatkan:
1. Elemen-elemen himpunan B,
2. Kaidah operasi untuk operator biner dan operator uner,
3. Memenuhi postulat Huntington.


Aljabar Boolean Dua-Nilai

Aljabar Boolean dua-nilai:
- B = {0, 1}
- operator biner, + dan 
- operator uner, ’
- Kaidah untuk operator biner dan operator uner:


a
b
a × b

a
b
a + b

a
a
0
0
0

0
0
0

0
1
0
1
0

0
1
1

1
0
1
0
0

1
0
1



1
1
1

1
1
1



Cek apakah memenuhi postulat Huntington:
1. Closure : jelas berlaku
2. Identitas: jelas berlaku karena dari tabel dapat kita lihat bahwa:
(i) 0 + 1 = 1 + 0 = 1
(ii) 1  0 = 0  1 = 0
3. Komutatif: jelas berlaku dengan melihat simetri tabel operator biner.

4. Distributif: (i) a  (b + c) = (a  b) + (a  c) dapat ditunjukkan benar dari tabel operator biner di atas dengan membentuk tabel kebenaran:


       a
b
c
b + c
a × (b + c)
a × b
a × c
(a × b) + (a × c)
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1



(ii) Hukum distributif a + (b × c) = (a + b) × (a + c) dapat ditunjukkan benar dengan membuat tabel kebenaran dengan cara yang sama seperti (i).


1.    Komplemen: jelas berlaku karena Tabel 7.3 memperlihatkan bahwa:
    (i)  a + a‘ = 1, karena 0 + 0’= 0 + 1 = 1 dan 1 + 1’= 1 + 0 = 1
    (ii) a × a = 0, karena 0 × 0’= 0 × 1 = 0 dan 1 × 1’ = 1 × 0 = 0 

Karena kelima postulat Huntington dipenuhi, maka terbukti bahwa B = {0, 1} bersama-sama dengan operator biner + dan × operator komplemen ‘ merupakan aljabar Boolean.

Ekspresi Boolean
·       Misalkan (B, +, ×, ’) adalah sebuah aljabar Boolean. Suatu ekspresi Boolean dalam (B, +, ×, ’) adalah:
(i)   setiap elemen di dalam B,
(ii)  setiap peubah,
(iii) jika e1 dan e2 adalah ekspresi Boolean, maka e1 + e2, e1 × e2, e1’ adalah ekspresi Boolean
 
Contoh:
                   0
                   1
                   a
                   b
                   c
                   a + b
                   a × b
                   a× (b + c)
                   a × b’ + a × b × c’ + b’, dan sebagainya

Mengevaluasi Ekspresi Boolean

·       Contoh:  a× (b + c)

 jika a = 0, b = 1, dan c = 0, maka hasil evaluasi ekspresi:

                   0’× (1 + 0) = 1 × 1 = 1

·       Dua ekspresi Boolean dikatakan ekivalen (dilambangkan dengan ‘=’) jika keduanya mempunyai nilai yang sama untuk setiap pemberian nilai-nilai kepada n peubah.
Contoh:
                   a × (b + c) = (a . b) + (a × c)

Contoh. Perlihatkan bahwa a + ab = a + b .
Penyelesaian:

 

a
b
a
ab
a + ab
a + b
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1

·       Perjanjian: tanda titik (×) dapat dihilangkan dari penulisan ekspresi Boolean, kecuali jika ada penekanan:
(i)           a(b + c) = ab + ac
(ii)                       a + bc = (a + b) (a + c)
(iii)                    a × 0 , bukan a0
         
Prinsip Dualitas

·       Misalkan S adalah kesamaan (identity) di dalam aljabar Boolean yang melibatkan operator +,  ×, dan komplemen, maka jika pernyataan S* diperoleh dengan cara mengganti
                   ×   dengan  +
          +  dengan  ×
                   0  dengan  1
          1  dengan  0
dan membiarkan operator komplemen tetap apa adanya, maka kesamaan S* juga benar. S* disebut sebagai dual dari S.

Contoh. 
(i)   (a × 1)(0 + a’) = 0  dualnya (a + 0) + (1 × a’) = 1
(ii)  a(a‘ + b) = ab       dualnya a + ab = a + b

Senin, 23 Mei 2011

ALJABAR RELASIONAL




• Operator Dasar :

1. Seleksi
2. Proyeksi
3. Union
4. Minus/set difference
5. Cartesian Product
6. Rename

• Operator Tambahan :

1. Set Intersection
2. Natural Join
3. Join Theta
4. Division/Quotient

• Definisi Formal :
1. Seleksi/Selection
• Simbol : σP(E1)
• ”Kumpulan semua tuple-tuple/record-record dalam E1 yang memenuhi kondisi P”
• Kondisi P adalah ekspresi logika yang terdiri dari :
a. Operand : konstanta/atribut/relasi
b. Operator pembanding : =,<,>, <>, <=,>=
c. Operator lojik : and(Λ), or (V) dan negasi(~)
• Contoh :
E1 :
A B C
a b c
d e f
g h i
g b e




σB=’b’(E1) =
A B C
a b c
g b e

2. Proyeksi/Projection
• Simbol : Πa1,..,am (E1), dimana m <= K, K adalah Aritas • a merupakan nama atribut dari relasi E1 • “Kumpulan semua tuple-tuple E1 dengan aritas m dan a1, ..., am sebagai atribut” • Contoh : ΠA,C (E1) = A C a c d f g i g e 3. Union • Simbol : E1 υ E2 • “Kumpulan semua tuple-tuple yang dimiliki oleh E1 dan/atau E2” • Syarat : 1. Aritas sama 2. Domain atribut sama • Contoh : E1 E2 A B C A B C a b c b g a d e f a b c c b d x y z E1 υ E2 = A B C a b c d e f c b d b g a x y z 4. Minus/Set Difference • Simbol : E1 – E2 • “Kumpulan semua tuple-tuple E1 yang tidak ada di E2” • Contoh : E1 - E2 = A B C d e f c b d 5. Cartesian Product • Simbol : E1 x E2 • “Jika aritas E1 adalah k1 dan aritas E2 adalah k2 maka E1xE2 adalah kumpulan kombinasi semua tuple-tuple dengan aritas (k1+k2) dimana komponen k1 pertama ádalah tuple-tuple dari E1 dan komponen berikutnya dari E2” • E1 : E2 : A B C E F 1 c d x 100 5 e f y 200 6 g h E1xE2 A B C E F 1 c d x 100 5 e f x 100 6 g h x 100 1 c d y 200 5 e f y 200 6 g h y 200 6. Rename • Simbol : ρx (E1) • “Memberi nama baru E1 dengan X, sehingga seakan-akan dimiliki 2 relasi (E1 dan X) yang isinya sama persis” 7. Irisan / Intersection • Simbol : E1 E2 • “Kumpulan tuple-tuple yang berada di E1 dan berada di E2” • Memiliki syarat yang sama dengan union • contoh : E1 E2 A B C a b c 8. Natural Join • Simbol : E1 E2 • Syarat : dilakukan jika kedua relasi memiliki satu atau lebih atribut sekutu • “Semua tuple-tuple dalam E1xE2 yang mempunyai nilai sama pada atribut sekutu” • Kolom atribut sekutu bersifat tunggal(diambil salah satu) • Contoh : E1 E2 A B C B C D a b c b c d d b c b c z c a d b d x f b h E1 E2 = A B C D a b c d a b c z d b c d d b c z 9. Join Theta • Simbol : E1 E2 iθj • θ merupakan operator • “Kumpulan tuple-tuple E1xE2 yang nilai atribut i memenuhi relasi θ terhadap nilai atribut j” • contoh : E1 : E2 : A B C D E 1 2 a 3 1 4 5 b 6 2 8 2 c E1 E2 A k2 dan k2 ≠ 0
• “Semua tuple-tuple misal t dengan aritas k1- k2, dimana jika E1 mengandung semua tuple dengan aritas k1 maka t ádalah anggota E1”
• Contoh :
E1 : E2 : E1/E2
Nama Cabang Cabang Nama
x y y x
z y s z
d r f
f s

Faktorisasi Aljabar



Masih ingatkah kamu tentang pelajaran Aljabar Di Kelas VII, kamu telah mengenal bentuk aljabar dan juga telah mempelajari operasi hitung pada bentuk aljabar tersebut. Sekarang, kamu akan menambah pengetahuanmu tentang aljabar tersebut, khususnya mengenai faktorisasi aljabar.
Menurutmu, mengapa kamu perlu mempelajari aljabar? Mungkin kamu tidak menyadari bahwa konsep aljabar seringkali dipakai dalam kehidupan sehari-hari.
Setiap hari, Nita menabung sebesar x rupiah. Berapa besar tabungan anak tersebut setelah satu minggu? Berapa besar pula tabungannya setelah satu bulan? Setelah 10 hari, uang tabungan itu dibelikan dua buah buku yang harganya y rupiah, berapakah sisa uang tabungan Nita? Jika nilai x adalah Rp2.000,00 dan nilai y adalah Rp5.000,00, carilah penyelesaiannya.
Saat kamu mencari penyelesaian dari kasus tersebut, maka kamu sedang menggunakan konsep aljabar. Oleh karena itu, pelajarilah bab ini dengan baik

A. Operasi Hitung Bentuk Aljabar
B. Pemfaktoran Bentuk Aljabar
C. Pecahan dalam Bentuk Aljabar

A. Operasi Hitung Bentuk Aljabar
Di Kelas VII, kamu telah mempelajari pengertian bentuk aljabar, koefisien, variabel, konstanta, suku, dan suku sejenis. Untuk mengingatkanmu kembali, pelajari contoh-contoh berikut.
1. 2pq 4. x2 + 3x –2
2. 5x + 4 5. 9x2 – 3xy + 8
3. 2x + 3y –5
Bentuk aljabar nomor (1) disebut suku tunggal atau suku satu karena hanya terdiri atas satu suku, yaitu 2pq. Pada bentuk aljabar tersebut, 2 disebut koefisien, sedangkan p dan q disebut variabel karena nilai p dan q bisa berubah-ubah. Adapun bentuk aljabar nomor (2) disebut suku dua karena bentuk aljabar ini memiliki dua suku, sebagai berikut.
a. Suku yang memuat variabel x, koefisiennya adalah 5.
b. Suku yang tidak memuat variabel x, yaitu 4, disebut konstanta. Konstanta adalah suku yang nilainya tidak berubah.
Sekarang, pada bentuk aljabar nomor (3), (4), dan (5), coba kamu tentukan manakah yang merupakan koefisien, variabel, konstanta, dan suku?

1. Penjumlahan dan Pengurangan Bentuk Aljabar
Pada bagian ini, kamu akan mempelajari cara menjumlahkan dan mengurangkan suku-suku sejenis pada bentuk aljabar. Pada dasarnya, sifat-sifat penjumlahan dan pengurangan yang berlaku pada bilangan riil, berlaku juga untuk penjumlahan dan pengurangan pada bentuk-bentuk aljabar, sebagai berikut.

a. Sifat Komutatif
a + b = b + a, dengan a dan b bilangan riil
b. Sifat Asosiatif
(a + b) + c = a + (b +c), dengan a, b, dan c bilangan riil
c. Sifat Distributif
a (b + c) = ab + ac, dengan a, b, dan c bilangan riil

Agar kamu lebih memahami sifat-sifat yang berlaku pada bentuk aljabar, perhatikan contoh-contoh soal berikut.

Sederhanakan bentuk-bentuk aljabar berikut.
a. 6mn + 3mn
b. 16x + 3 + 3x + 4
c. –x – y + x – 3
d. 2p – 3p2 + 2q – 5q2 + 3p
e. 6m + 3(m2 – n2) – 2m2 + 3n2

Jawab:
a. 6mn + 3mn = 9mn

b. 16x + 3 + 3x + 4 = 16x + 3x + 3 + 4
= 19x + 7

c. –x – y + x – 3 = –x + x – y – 3
= –y – 3

d. 2p – 3p2 + 2q – 5q2 + 3p = 2p + 3p – 3p2 + 2q – 5q2
= 5p – 3p2 + 2q – 5q2
= –3p2 + 5p – 5q2 + 2q

e. 6m + 3(m2 – n2) – 2m2 + 3n2 = 6m + 3m2 – 3n2 – 2m2 + 3n2
= 6m + 3m2 – 2m2 – 3n2 + 3n2
= m2 + 6m

Tentukan hasil dari:
a. penjumlahan 10x2 + 6xy – 12 dan –4x2 – 2xy + 10,
b. pengurangan 8p2 + 10p + 15 dari 4p2 – 10p – 5.

Jawab:
a. 10x2 + 6xy – 12 + (–4x2 – 2xy + 10) = 10x2 – 4x2 + 6xy – 2xy – 12 + 10
= 6x2 + 4xy – 2

b. (4p2 – 10p – 5) – (8p2 + 10p + 15) = 4p2 – 8p2 – 10p –10p – 5 – 15
= –4p2 – 20p – 20

Gunakan hukum distributif untuk menyelesaikan perkalian berikut.
a. 2(x + 3) c. 3x(y + 5)
b. –5(9 – y) d. –9p(5p – 2q)
Jawab:
a. 2(x + 3) = 2x + 6 c. 3x(y + 5) = 3xy + 15x
b. –5(9 – y) = –45 + 5y d. –9p(5p – 2q) = –45p2 + 18pq

2. Perkalian Bentuk Aljabar
Perhatikan kembali sifat distributif pada bentuk aljabar. Sifat distributive merupakan konsep dasar perkalian pada bentuk aljabar. Untuk lebih jelasnya, pelajari uraian berikut.

a. Perkalian Suku Satu dengan Suku Dua
Agar kamu memahami perkalian suku satu dengan suku dua bentuk aljabar, pelajari contoh soal berikut.

Gunakan hukum distributif untuk menyelesaikan perkalian berikut.
a. 2(x + 3) c. 3x(y + 5)
b. –5(9 – y) d. –9p(5p – 2q)
Jawab:
a. 2(x + 3) = 2x + 6 c. 3x(y + 5) = 3xy + 15x
b. –5(9 – y) = –45 + 5y d. –9p(5p – 2q) = –45p2 + 18pq

b. Perkalian Suku Dua dengan Suku Dua
Agar kamu memahami materi perkalian suku dua dengan suku dua bentuk aljabar, pelajari contoh soal berikut.
Tentukan hasil perkalian suku dua berikut, kemudian sederhanakan.
a. (x + 5)(x + 3) c. (2x + 4)(3x + 1)
b. (x – 4)(x + 1) d. (–3x + 2)(x – 5)

Jawab:
a. (x + 5)(x + 3) = (x + 5)x + (x + 5)3
= x2 + 5x + 3x + 15
= x2 + 8x + 15

b. (x – 4)(x + 1) = (x – 4)x + (x – 4)1
= x2 – 4x + x – 4
= x2 – 3x – 4

c. (2x + 4)(3x + 1) = (2x + 4)3x + (2x + 4)1
= 6x2 + 12x + 2x + 4
= 6x2 + 14x + 4

d. (–3x + 2)(x – 5) = (–3x + 2)x + (–3x + 2)(–5)
= –3x2 + 2x + 15x – 10
= –3x2 + 17x – 10

Diketahui sebuah persegipanjang memiliki panjang (5x + 3) cm dan lebar (6x– 2) cm. Tentukan luas persegipanjang tersebut.

Jawab:
Diketahui : p = (5x + 3) cm dan l = (6x – 2) cm
Ditanyakan : luas persegipanjang
Luas = p × l
= (5x + 3)(6x – 2)
= (5x + 3)6x + (5x + 3)(–2)
= 30x2 + 18x – 10x – 6
= 30x2 + 8x – 6
Jadi, luas persegipanjang tersebut adalah (30x2 + 8x – 6) cm2

Amati kembali Contoh Soal. Ternyata perkalian dua suku bentuk aljabar (a + b) dan (c + d) dapat ditulis sebagai berikut.
(a + b)(c + d) = (a + b)c + (a + b)d
= ac + bc + ad + bd
= ac + ad + bc + bd
Secara skema, perkalian ditulis:
(a + b)(c + d) = ac + ad + bc + bd

Cara seperti ini merupakan cara lain yang dapat digunakan untuk menyelesaikan perkalian antara dua buah suku bentuk aljabar. Pelajari contoh soal berikut.

Selesaikan perkalian-perkalian berikut dengan menggunakan cara skema.
a. (x + 1)(x + 2) c. (x – 2)(x + 5)
b. (x + 8)(2x + 4) d. (3x + 4)(x – 8)
Jawab:
a. (x + 1)(x + 2) = x2 + 2x + x + 2
= x2 + 3x + 2

b. (x + 8)(2x + 4) = 2x2 + 4x + 16x + 32
= 2x2 + 20x + 32
c. (x – 2)(x + 5) = x2 + 5x –2x –10
= x2 + 3x – 10

d. (3x + 4)(x –8) = 3x2 – 24x + 4x – 32
= 3x2 – 20x – 32

3. Pembagian Bentuk Aljabar
Pembagian bentuk aljabar akan lebih mudah jika dinyatakan dalam bentuk
pecahan. Pelajarilah contoh soal berikut.
sebagai berikut.

METODE DEVIDE AND CONQUER (Teknik Sorting)



Metode Devide and Conquer

Prinsip dasar metode Devide and Conquer atau D and C adalah membagi n input menjadi k subset input yang berbeda (1 < k ≤ n). Dari k subset input yang berbeda tersebut akan terdapat k subproblem, dimana setiap subproblem mempunyai solusi masing-masing sehingga diperoleh k subsolusi. Dari k subsolusi tersebut akan diperoleh solusi yang optimal atau solusi yang diharapkan. Bentuk Umum Proses Metode D And C dpt dilihat sbb :


Jika subproblem dianggap masih relatif besar, maka metode D and C dapat digunakan lagi.
Dengan kata lain bahwa metode D and C ini dilakukan dengan membagi setiap input atau permasalahan sampai dengan suatu input atau permasalahan tidak dapat dibagi lagi.
Setelah itu, dari pembagian tadi akan ditemukan solusi yang optimal.

SORTING

Sorting adalah suatu usaha untuk melakukan pengurutan (sorting) sekelompok data dalam suatu array, dilakukan terhadap suatu himpunan yang berisikan elemen bilangan ataupun himpunan karakter (string).
Dalam melakukan proses sorting terdapat beberapa hal yang dapat mempengaruhi kecepatan proses sorting antara lain :

Jumlah operasi perbandingan yang dilakukan, dan
Jumlah operasi pemindahan data yang dilakukan.

Makin banyak jumlah operasi perbandingan maka makin lama proses sorting tersebut berjalan.
Begitu pula dengan operasi pemindahan data, makin banyak jumlah operasi pemindahan data maka makin lama proses sorting tersebut dilakukan.

Metode-Metode dalam Sorting

Metode Selection Sort,
Metode Buble Sort,
Metode Merge Sort,
Metode Quick Sort,dan
Metode Insertion Sort.

SELECTION SORT

Tehnik pengurutan dengan cara pemilihan elemen atau proses kerja dengan memilih elemen data terkecil untuk kemudian dibandingkan & ditukarkan dengan elemen pada data awal, dan seterusnya sampai dengan seluruh elemen sehingga akan menghasilkan pola data yg telah di sorting.

Prinsip Kerja dari Teknik Selection Sort ini adalah :

Pengecekan dimulai data ke-1 sampai dengan data ke-n
Tentukan bilangan dengan Index terkecil dari data bilangan tersebut
Tukar bilangan dengan Index terkecil tersebut dengan bilangan pertama ( I = 1 ) dari data bilangan tersebut
Lakukan langkah 2 dan 3 untuk bilangan berikutnya ( I= I+1 ) sampai didapatkan urutan yang optimal.

Contoh : 22 10 15 3 8 2

Iterasi 1
1 2 3 4 5 6
Langkah 1 : 22 10 15 3 8 2
Langkah 2: 22 10 15 3 8 2
Langkah 3: 2 10 15 3 8 22
Langkah 4: Ulangi langkah 2 dan 3 .

Iterasi 2

Langkah 1: 2 10 15 3 8 22
Langkah 2: 2 10 15 3 8 22
Langkah 3: 2 3 15 10 8 22
Langkah 4: Ulangi langkah 2 dan 3 .

Lakukan Iterasi selanjutnya sampai iterasi
ke-6


BUBLE SORT Tehnik Sort yang bekerja dengan menggunakan prinsip gelembung (buble) udara yang akan bergerak naik ke atas secara satuper satu.

Prinsip Kerja dari Buble Sort adalah :
Pengecekan mulai dari data ke-1 sampai data ke-n
Bandingkan data ke-n dengan data sebelumnya (n-1)
Jika lebih kecil maka pindahkan bilangan tersebut dengan bilangan yg ada didepannya ( sebelumnya ) satu persatu (n-1,n-2,n-3,....dst)
Jika lebih besar maka tidak terjadi pemindahan
Ulangi langkah 2 dan 3 s/d sort optimal.

Contoh : 22 10 15 3 8 2

terasi 1
1 2 3 4 5 6
Langkah 1 : 22 10 15 3 8 2
Langkah 2 : 22 10 15 3 8 2
Langkah 3 : 2 22 10 15 3 8
Langkah 4 : Ulangi langkah 2 dan 3

Iterasi 2

Langkah 1 : 2 22 10 15 3 8
Langkah 2 : 2 22 10 15 3 8 - 8>3, maka 8 tidak pindah, untuk selanjutnya bandingkan data sebelunya yaitu 3.
Langkah 3 : 2 3 22 10 15 8
Langkah 4 : Ulangi langkah 2 dan 3
Lakukan Iterasi selanjutnya sampai iterasi ke- 6


QUICK SORT Sort dengan iterasi secara urut dari posisi elemen 1, ke-2 dan seterusnya. Tukarkan setiap elemen pada posisi tersebut dengan elemen lain yang nilainya memang seharusnya berada pada posisi tersebut.

Prinsip Kerja dari Quick Sort adalah :
Tentukan Lower Bound (Batas Bawah) & Upper Bound (Batas Atas)
Bandingkan Lower Bound (LB) dengan Upper Bound (UB)
Jika LB>UB, Tukar (cari operasi perbandingan yang optimal/terkecil)
Jika LB =< UB, maka Next Upper Bound & Lower Bound
Ulangi langkah diatas s/d sort.

Contoh : 22 10 15 3 8 2

Iterasi 1
1 2 3 4 5 6
Langkah 1 : 22 10 15 3 8 2
LB UB

Langkah 2 :2 10 15 3 8 22

Iterasi 2
Langkah 1 : 2 10 15 3 8 22
LB/UB
Langkah 2 :2 10 15 3 8 22
LB UB
Iterasi 3
Langkah 1 :2 10 15 3 8 22
LB UB
Langkah 2 :2 8 15 3 10 22

Iterasi 4
Langkah 1 :2 8 15 3 10 22
LB UB
Langkah 2 :2 3 15 8 10 22
Lakukan Iterasi selanjutnya sampai iterasi
ke- 6


INSERTION SORT Prinsip dasar Insertion adalah secara berulang-ulang menyisipkan / memasukan setiap elemen. ke dlm posisinya / tempatnya yg benar.

Prinsip Kerja Insertion Sort adalah
Pengecekan mulai dari data ke-1 sampai data ke-n
Bandingkan data ke-I ( I = data ke-2 s/d data ke-n )
Bandingkan data ke-I tersebut dengan data sebelumnya (I-1), Jika lebih kecil maka data tersebut dapat disisipkan ke data awal sesuai dgn posisisi yg seharusnya
Lakukan langkah 2 dan 3 untuk bilangan berikutnya ( I= I+1 ) sampai didapatkan urutan yg optimal.

Contoh : 22 10 15 3 8 2
Iterasi 1
1 2 3 4 5 6
Langkah 1: 22 10 15 3 8 2
Langkah 2: 22 10 15 3 8 2
Langkah 3: 10 22 15 3 8 2
Langkah 4: Ulangi langkah 2 dan 3

Iterasi 2

Langkah 1: 10 22 15 3 8 2
Langkah 2: 10 22 15 3 8 2
Langkah 3: 10 15 22 3 8 2
Langkah 4: Ulangi langkah 2 dan 3

Lakukan Iterasi selanjutnya sampai iterasi
ke- 6
Catatan : Setiap ada pemindahan, maka elemen. Yang sudah ada akan di insert sehingga akan bergeser kebelakang.

MERGE SORT

Prinsip Kerja Merge Sort adalah :
Kelompokan deret bilangan kedalam 2 bagian, 4 bagian, 8 bagian, ......dst  (2n)
Urutkan secara langsung bilangan dalam kelompok tsb.
Lakukan langkah diatas untuk kondisi bilangan yg lain sampai didapatkan urutan yg optimal .

Contoh : 22 10 15 3 8 2

Iterasi 1
1 2 3 4 5 6
Langkah 1 : 22 10 15 3 8 2
Langkah 2 : 10 22 3 15 2 8

Iterasi 2
Langkah 1 : 10 22 3 15 2 8
Langkah 2 : 3 10 15 22 2 8

Iterasi 3

Langkah 1 :3 10 15 22 2 8

Langkah 2 :2 3 8 10 15 22

Minggu, 22 Mei 2011

A R R A Y



• Array atau sering disebut juga dengan istilah variable majemuk, matrik, variable berindek, yaitu untuk melakukan pemesanan sebuah variable yang dapat diisi lebih dari satu nilai tergantung kebutuhan.

• Didalam bahasa pemrograman seperti basic, pascal dan lainnya terdapat variable single dan variable array atau matrik. Variabel single satu variable hanya dapat diisi dengan satu nilai data, sedangkan variable array satu nama variable dapat menyimpan lebih satu nilai data tergantung jumlah yang dipesan.

Contoh :

Dim X As Integer ‘Pemesanan variable x sebagai integer
X  5 ‘Nilai 5 dimasukan pada variable X
X  10 ‘Nilai 10 dimasukan pada variable X
PRINT X ‘Cetak nilai dari X

Maka hasilnya : 10

Keterangan :
• Nilai 5 dimasukan pada variable X, kemudian nilai 10 dimasukan juga pada variable X, maka nilai X yang pertama yaitu 5 akan terhapus dan diganti oleh nilai 10, jadi nilai akhir variable X adalah 10 disebabkan variable X berupa variable tunggal.

ARRAY SATU DIMENSI

Sebelum menggunakan variable array maka terlebih dahulu harus kita lakukan adalah memesan variable dengan jumlah data yang kita inginkan.

Perintah :

DIM variable(jumlahdata) AS [Single l Integer l String]

Contoh 1 :

Akan dilakukan pemesanan variable X dengan jumlah data sebanyak 5 data (index), dengan masing-masing nilai sebagai berikut 3,6,4,5,9

DIM X(5) AS Single
X(1)  3 ‘masukan nilai 3 pada variable X pada index ke 1
X(2)  6 ‘masukan nilai 6 pada variable X pada index ke 2
X(3)  4 ‘masukan nilai 4 pada variable X pada index ke 3
X(4)  5 ‘masukan nilai 5 pada variable X pada index ke 4
X(5)  9 ‘masukan nilai 9 pada variable X pada index ke 5

• Untuk memanggil atau menggunakan nilai / isi dari variable X cukup dengan menyebutkan index ke berapa dari variable X yang akan digunakan. Nilai index harus > 0 dan < 6, karena variable X telah dipesan hanya untuk 5 index saja yaitu DIM X(5) AS Integer.

Contoh 2 :

Dari contoh diatas dimisalkan kita akan menjumlahkan nilai 6 dengan 9, nilai 6 pada index ke 2 dan nilai 9 pada index ke 5.

Tambah  X(2) + X(5) ‘Tambah = 6 + 9

• Mencetak seluruh data yang ada pada variable X sebanyak 5 index, yaitu :

PRINT X(1)
PRINT X(2)
PRINT X(3)
PRINT X(4)
PRINT X(5)

• Mencetak dengan menggunakan perintah FOR ….. NEXT

FOR I=1 TO 5
PRINT X(I)
NEXT I

• Hasilnya : 3
6
4
5
9

ARRAY DUA DIMENSI

• Pernyataan bentuk Array diatas disebut dengan istilah array satu dimensi, disebabkan array tersebut mempunyai satu index baris data seperti DIM X(5).

• Sedangkan yang disebut denggan array dua dimensi, yaitu array yang mempunyai dua index yang terdiri dari index baris dan kolom.

Perintah :

DIM variable(jumlahbaris,jumlah kolom) AS typedata

Keterangan :
• Variabel adalah nama data yang akan dipesan
• Jumlahbaris, pemesanan jumlah baris yang diinginkan
• Jumlahkolom, pemesanan jumlah kolom yang diinginkan
• Typedata dapat berupa String, Integer, Single dan lain-lain

Contoh :

Misalkan kita akan memasukkan data dibawah ini :

1 3
2 5
4 7
9 4

Data diatas akan disimpan pada variable X dengan baris sebanyak 4 dan kolom sebanyak 2, maka cara memesan dan mengisi datanya seperti dibawah berikut :


‘Pesan dan isi data
DIM X(4,2) As Integer
X(1,1)  1
X(1,2)  3
X(2,1)  2
X(2,2)  5
X(3,1)  4
X(3,2)  7
X(4,1)  9
X(4,2)  4

‘Mencetak ke layar
PRINT X(1,1), X(1,2)
PRINT X(2,1), X(2,2)
PRINT X(3,1), X(3,2)
PRINT X(4,1), X(4,2)

Dengan cara FOR …. NEXT

‘Pesan dan isi data
DIM X(4,2) As Integer

‘Mengisi data dengan For … Next
FOR B=1 TO 4
FOR K=1 TO 2
READ X(B,K)
NEXT K
NEXT B
Data 1,3,2,5,4,7,9,4

‘Mencetak ke layar Atau
FOR B=1 TO 4 FOR B=1 TO 4 FOR K = 1 TO 2
FOR K=1 TO 2 PRINT X(B,1),X(B,2)
PRINT X(B,K); PRINT X[K,1],X[K,2]
NEXT K NEXT K
NEXT B NEXT B
PRINT

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites