STRUKTUR DATA adalah : Suatu Kesatuan nformasi (Collection of
values) yang terorganisasi dengan sejumlah operasi atas informasi
tersebut. Terdapat 3 (tiga) komponen yang menentukan karakter struktur data yaitu : 1. Function Definition 2. Storage Structure 3. Algorithms 1. Function Definition Himpunan dari fungsi-fungsi dasar. Dapat digunakan pada struktur tempat penyimpanan yang ada dan dapat digunakan pada setiap bagian dari program. 2. Storage Structure Himpunan Struktur dari tempat penyimpanan. Merupakan koleksi dari variabel dan hubungan antara satu variabel dengan variabel yang lain. 3. Algorithms Himpunan dari algoritma. Digunakan untuk Pengubahan dari struktur tempat penyimpanan. TPE DATA Adalah Jenis data yang 'ditangani' bahasa pemrograman. Pada garis besarnya, Tipe Data dapat dikategorikan menjadi : TPE DATA SEDERHANA C++ telah menyediakan beberapa tipe data sederhana, diantaranya adalah : nteger (Bulat) Floating point (Pecahan) Boolean Masing-masing dapat terdiri dari beberapa tipe. TPE DATA KOMPLEKS Tipe-tipe data dibawah ini disebut kompleks karena penggunaannya harus dikombinasikan dengan tipe data lain. Tipe-tipe data kompleks tersebut adalah : Pointer Array String (Pointer of Char) AND Jika Kedua Nilai variabelnya True, maka hasilnya True, kalau tidak, maka hasilnya False. OR Jika SalahSatu Nilai variabelnya True, maka hasilnya True kalau tidak, maka hasilnya False. Disebut juga Exclusive OR NOT Jika nilai variabelnya True , maka hasilnya False Jika nilai variabelnya False, maka hasilnya True XOR Jika salah satu nilai variabelnya True, maka hasilnya True, kalau tidak, maka hasilnya False; termasuk jika True dengan True maka hasilnya false. Dengan 4 (empat) operator dasar ini banyak yang bisa dimanfaatkan untuk keperluan selanjutnya. Operator inilah awal dari komputer yang canggih. P Q p AND q p OR q p XOR q NOT p 0 0 0 0 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 Tabel diatas disebut TRUTH TABLE dari semua operator dasar. Dan kita menggunakan angka 1 dan 0 untuk True dan False. p q r p AND q NOT r (p AND q) OR (NOT r) 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 0 1 1 0 1 1 0 0 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 0 1 1 1 1 1 1 1 0 1 PONTER Adalah Suatu variabel yang menyimpan alamat (address) dari suatu data, bukan menyimpan datanya sendiri. Variabel yang nilainya merupakan address dari variabel yang lain. Pointer dideklarasikan dengan menggunakan tanda asterix ( * ) didepan nama variabelnya. Kita akan mendapatkan address suatu objek dengan menggunakan tanda & sebagai Address Operator. PONTER dan ADDRESS PONTER dan VARABLE FUNCTON PONTER dan RECORD PONTER ARRAY Array atau juga disebut Larik Adalah struktur data yang paling sederhana atau primitif yang merupakan Koleksi data dimana setiap elemen memakai nama yang sama, bertipe sama dan setiap elemen diakses dengan membedakan indeks array nya. Operasi yang dilakukan pada Array : 1. Retrieve, yaitu Membaca atau mengambil nilai di elemen tertentu yang terdapat didalam array tersebut. 2. Update, yaitu Mengubah nilai di elemen tertentu yang terdapat didalam array tersebut. (catatan: Setiap elemen didalam array sudah mempunyai nilai awal, yaitu nul atau kosong). Dimensi Array Array 1 Dimensi Array 2 Dimensi Array 3 Dimensi Array Multi Dimensi STRNG ( PONTER OF CHAR ) String merupakan bentuk data yang biasa dipakai dalam pemrograman guna menampung dan memanipulasi data teks. Suatu konstanta String ditulis dengan diawali dan diakhiri oleh Tanda Petik. Contoh : "masukkan nama anda: "nama anda adalah: %s\n Data string biasanya dimasukkan dengan perintah gets() ataupun scanf(). Konstanta String akan disimpan berurutan dalam memori dan diakhiri tanda \ 0 atau Null dan setiap karakter akan menempati memori sebesar 1 byte. Algoritma adalah Urutan langkah-langkah yang logis untuk memecahkan masalah. Kata Algoritma diambil dari nama seorang ilmuwan Persia bernama : Abu Ja'far Mohammed bn Musa al-Khowarizmi, yang menulis buku berjudul Kitab Aljabr w'al-miqabala (Rules of restoration and reduction, pada sekitar tahun 825). Algoritma umumnya dirancang untuk menyelesaikan suatu masalah spesifik dan dengan usaha yang paling minimal. Ciri-ciri Algoritma (Menurut Donald E.Knuth-Pakar ilmu komputer) : 1. nput = Masukan 2. Output = Keluaran 3. Definite / Definiteness = Jelas 4. Effective / Effectiveness = Efektif 5. Terminate / Halt / Finiteness = Berakhir NPUT Terdapat 0 atau lebih masukan yang diberikan secara eksternal. Setiap algoritma memerlukan data sebagai masukan untuk diolah. OUTPUT Sedikitnya terdapat satu keluaran yang harus dihasilkan (Setiap algoritma memberikan satu atau beberapa hasil keluaran). DEFNTE Harus secara sempurna menyatakan apa yang dilakukan. Setiap langkah algoritma harus didefinisikan dengan tepat dan tidak menimbulkan makna ganda (ambiguous). Oleh karena itu maka sebetulnya cara paling tepat untuk menuliskan algoritma adalah dengan menggunakan formal language (bahasa pemrograman komputer). EFFECTVE Awalnya Setiap instruksi harus dapat dilakukan secara manual menggunakan pensil dan kertas dalam sejumlah waktu berhingga. Algoritma dapat dituangkan dalam bentuk tulisan atau gambar / bagan (algoritma digunakan sebagai perantara pada penulisan program komputer). Langkah-langkah algoritma dikerjakan dalam waktu yang wajar. TERMNATE Harus berhenti/berakhir (Finiteness / Halt) setelah melakukan sejumlah langkah proses. JENS PROSESALGORTMA Langkah-langkah yang membentuk suatu algoritma dibagi kedalam 3 (tiga) kelompok proses : 1. Sequence Process Proses yang berurutan 2. Selection Process Proses Pemilihan 3. teration Process Proses Pengulangan Sequence Process Proses Kedua dikerjakan setelah proses pertama selesai, kemudian dilanjutkan dengan proses ketiga. nstruksi dikerjakan satu persatu mulai dari instruksi pertama sampai dengan instruksi terakhir. Selection Process Suatu proses dikerjakan jika suatu kondisi terpenuhi. Suatu instruksi adakalanya baru boleh dikerjakan apabila memenuhi persyaratan tertentu. Sebagai contoh : Jika mengisi pulsa prabayar telepon seluler maka akan mendapat talktime gratis selama sepanjang malam. teration Process Proses dikerjakan berulangkali selam kondisi terpenuhi. Misalnya boleh memasukkan nomor PN ATM selama nomor masih salah dan belum tiga kali mencoba. Operator merupakan simbol atau kata yang dapat digunakan dalam program untuk melakukan suatu operasi atau manipulasi, seperti : Menjumlahkan dua buah nilai, memberikan nilai ke suatu variabel, membandingkan dua buah nilai, dsb. Sebagian operator C++ tergolong sebagai operator binary yaitu operator yang dikenakan terhadap dua buah nilai Contoh A+B Simbol + merupakan operator untuk melakukan operasi penjumlahan dari dua buah operand-nya (yaitu a+b) karena operasi penjumlahan melibatkan dua operand maka operator ini tergolong sebagai operator binary. Tanda Operator dalam bahasa C++ dapat dikelompokkan sbb : 1. Operator Pengerjaan (Assignment Operators) 2. Operator Aritmetika (Arithmatic Operators) 3. Operator Peningkatan dan Penurunan (ncrement and Decrement Operators) 4. Operator Bitwise (Bitwise Operators) 5. Operator Hubungan (Relational Operators) 6. Operator Logika (Logical Operators) 7. Operator Alamat (Address Operators) 8. Operator Koma (comma Operators) 9. Operator Gabungan Operator Pengerjaan (assignment operator) berupa tanda : Sama Dengan ( = ) yang digunakan untuk mengisikan nilai yang berada sebelah kanannya variabel yang ditunjukkan disebelah kirinya. Contoh : a=5 a=b=c Maka nilai a dan b akan sama dengan c, yaitu 5 Operator Aritmetika yang tergolong sebagai operator binary. Operator Keterangan * PerkaIian / Pembagian % ModuIus atau Sisa Pembagian + Pertambahan - Pengurangan Operator Keterangan + Tanda PIus - Tanda Minus ++ Prefix : preincrement, Postfix : postincrement -- Prefix : predecrement, Postfix : postdecrement Operator Aritmetika yang tergolong sebagai operator unary. OPERATOR PENNGKATAN Operator peningkatan (increment operator) yang menggunakan tanda operasi (++). Operator peningkatan digunakan untuk menambahkan nilai 1 pada nilai sebelumnya. OPERATOR PENURUNAN Dan operator penurunan (decrement operator) yang menggunakan tanda operasi (--). Operator peningkatan digunakan untuk mengurangi nilai 1 pada nilai sebelumnya. Untuk operator Bitwise dalam bentuk bit, bahasa C++ menyediakan beberapa operator seperti sbb : Operator Keterangan << Shift left (pergeseran bit ke kiri) >> Shift right (pergeseran bit ke kanan) & Operasi bit AND | Operasi bit OR | terdapat pada keyboard dgn menekan bersamaan tombol shift dan :\ ) ) Operasi bit XOR ~ Operasi bit NOT (tekan shift dan tanda ~ ) Seluruh operasi bitwise hanya dapat dikenakan pada operand yang bertipe integer atau karakter. OSEN : GIANARI MAULANI, S.KOM W Operator hubungan (relational operators) digunakan untuk membandingkan dua elemen nilai dan dihasilkan nilai perbandingannya, yaitu betul (bernilai 1) atau salah (bernilai 0). W Operator ini banyak digunakan pada penyeleksian suatu kondisi di statement if . Operator Keterangan > Lebih besar dari >= Lebih besar sama dengan < Lebih kecil <= Lebih kecil sama dengan == Sama dengan != Tidak sama dengan OSEN : GIANARI MAULANI, S.KOM Disamping operator hubungan, C++ juga menyediakan 3 (tiga) buah operator logika yang biasanya berpasangan dengan operator hubungan. Operator Keterangan && Operator logika AND | | Operator logika OR ! Operator logika NOT Nilai perbandingan dari operator logika juga menghasilkan dua nilai, yaitu Betul (bernilai 1) atau Salah (bernilai 0). Operator ini juga banyak digunakan pada penyelesaian suatu kondisi di statement if . OSEN : GIANARI MAULANI, S.KOM Tabel Perbandingan Operator Logika A B A && B A | | B 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 1 OSEN : GIANARI MAULANI, S.KOM C++ juga menyediakan dua buah operator alamat (address operators) yang berhubungan dengan penggunaan pointer. Operator Keterangan & Address of operator * ndirection operator Dari tabel diatas dapat dijelaskan sbb : Operator & menunjukkan alamat memori dari suatu data. Operator * digunakan untuk menunjukkan suatu pointer OSEN : GIANARI MAULANI, S.KOM Operator koma (comma operator) digunakan untuk meletakkan beberapa ungkapan yang dipisahkan dengan tanda koma didalam kurung buka dan kurung tutup. Contoh : printf ("%c/n, pertama1); printf ("%c/n, kedua2); OSEN : GIANARI MAULANI, S.KOM C++ memungkinkan penulisan suatu operator pengerjaan (=) untuk digabung dengan operator lainnya yaitu dengan operator Aritmetika, Operator peningkatan dan penurunan serta operator Bitwise. a = a + b; dapat ditulis a+=b; a = a b; dapat ditulis a- =b; a = a * b; dapat ditulis a*=b; a = a / b; dapat ditulis a/=b; a = a % b; dapat ditulis a%=b; a = a < b; dapat ditulis a<=b; a = a > b; dapat ditulis a>=b; a = a & b; dapat ditulis a&=b; a = a | b; dapat ditulis a | =b; a = a ) b; dapat ditulis a)=b; Linear Array (biasa disebut Array) adaIah saIah satu bentuk struktur data yang bersifat Linear (continue). Array merupakan koIeksi data dimana setiap eIemen memakai nama yang sama dan bertipe sama dan setiap eIemen diakses dengan membedakan index array-nya. ARRAY BERIMENSI SATU Representasi (Pemetaan) di memori Memori komputer untuk pemetaan Iinear array dibentuk secara Iinear puIa. Memori memiIiki aIamat (address), ibarat suatu kompIek perumahan. Sebagai identifikasi, maka rumah-rumah tsb diberi nomor yang urut daIam poIa yang tertentu (misaInya dari keciI ke besar). Pemetaan di memori juga berfungsi sebagai identifikasi Ietak data, agar keIak data tsb dapat diambiI kembaIi, maka akan dengan tepat ditemui data tersebut. Banyaknya aIamat di memori tergantung dari jenis komputer yang digunakan, misaInya dari aIamat 000000 hingga FFFFFF (daIam sistem biIangan HexadesimaI). Setiap aIamat dapat ditempati oIeh data sebesar satu byte. Ketika kita memasukkan data baru, maka komputer akan mencatat dimana data itu disimpan. EIemen data pertama yang disimpan daIam aIamat memori disebut dengan Base Address (B). ika kita memiIiki 20 niIai data daIam variabeI ber- subscript A yang masing-masing memerIukan 8 byte data dan base address-nya di 1000. Berada di aIamat berapakah muIainya niIai data A yang ke-18 disimpan ? A(1) A(2) A(3) A(4) A(5) A(6) A(7) A(8) A(9) A(10) A(11) A(12) A(13) A(14) A(15) A(16) A(17) A(18) A(19) A(20) 1000 1032 1016 1064 1048 1160 1144 1128 1112 1096 1080 1008 1152 1136 1104 1120 1088 1072 1056 1040 1024 ika kita memiIiki 20 niIai data daIam variabeI ber-subscript A yang masing-masing memerIukan 8 byte data dan base address-nya di 1000. Berada di aIamat berapakah muIainya niIai data A yang ke-18 disimpan ? NiIai data A (18) disimpan muIai dari aIamat 1136 di memori. Kita dapat membuat rumusannya, yaitu : A = B + (SK-1) * L Keterangan : A = Posisi aIamat awaI dari niIai data yang akan dicari B = Base Address SK = Subscript ke berapa yang akan dicari L = Lebarnya data yang dapat disimpan di setiap aIamat memori A = B + (SK-1) * L A = 1000 + (18-1) * 8 A = 1000 + 17 * 8 A = 1000 + 136 A = 1136 a) ika kita memiIiki 25 niIai data daIam variabeI ber-subscript A yang masing- masing memerIukan 8 byte data dan base addressnya di 500 berada di aIamat berapakah muIainya niIai data A yang ke-23 disimpan ? b) ika kita memiIiki 75 niIai data daIam variabeI ber-subscript A yang masing- masing memerIukan 10 byte data dan base addressnya di 900 berada di aIamat berapakah muIainya niIai data A yang ke-71 disimpan ? 1. BuatIah perhitungannya dengan rumus ! 2. BuatIah gambarannya ! RUMUS : A = B + (SK-1) * L A = B + (SK-1) * L A = 500 + (23-1) * 8 A = 500 + 22 * 8 A = 500 + 176 A = 676 a) ika kita memiIiki 25 niIai data daIam variabeI ber-subscript A yang masing- masing memerIukan 8 byte data dan base addressnya di 500 berada di aIamat berapakah muIainya niIai data A yang ke-23 disimpan ? b) ika kita memiIiki 75 niIai data daIam variabeI ber-subscript A yang masing- masing memerIukan 10 byte data dan base addressnya di 900 berada di aIamat berapakah muIainya niIai data A yang ke-71 disimpan ? A = B + (SK-1) * L A = 900 + (71-1) * 10 A = 900 + 70 * 10 A = 900 + 700 A = 1600 A(1) A(2) A(3) A(4) A(5) A(6) A(7) A(8) A(9) A(10) A(11) 500 508 516 524 532 540 548 556 564 572 580 588 A(12) A(13) A(14) A(15) A(16) A(17) A(18) A(19) A(20) A(21) 596 604 612 620 628 636 644 652 660 668 A(22) A(23) A(24) A(25) 676 684 692 700 A(1) A(2) A(3) A(4) A(5) A(6) A(7) A(8) A(9) A(10) A(11) 900 910 920 930 940 950 960 970 980 990 1000 1010 A(12) A(13) A(14) A(15) A(16) A(17) A(18) A(19) A(20) A(21) 1020 1030 1040 1050 1060 1070 1080 1090 1100 1110 A(22) A(23) A(24) A(25) A(26) A(27) A(28) A(29) A(30) A(31) 1120 1130 1140 1150 1160 1170 1180 1190 1200 1210 A(32) A(33) A(34) A(35) A(36) A(37) A(38) A(39) A(40) A(41) 1220 1230 1240 1250 1260 1270 1280 1290 1300 1310 A(52) A(53) A(54) A(55) A(56) A(57) A(58) A(59) A(60) A(61) 1420 1430 1440 1450 1460 1470 1480 1490 1500 1510 A(62) A(63) A(64) A(65) A(66) A(67) A(68) A(69) A(70) A(71) 1520 1530 1540 1550 1560 1570 1580 1590 1600 1610 A(72) A(73) A(74) A(75) 1620 1630 1640 1650 A(42) A(43) A(44) A(45) A(46) A(47) A(48) A(49) A(50) A(51) 1320 1330 1340 1350 1360 1370 1380 1390 1400 1410 Representasi (Pemetaan) di Memori Ada dua cara yang dapat kita Iakukan untuk pemetaan Array berdimensi dua, yaitu : (1) MembeIah per baris (Row Major Order) (2) MembeIah per koIom (CoIoumn Major Order) MEMBELAH PER BARIS ( #4 aj4r Order ) Contoh daIam bahasa pemrograman untuk memasukkan data matriks sbb: 5 4 6 A = 7 3 5 Menjadi 5 4 6 7 3 5 9 2 9 9 2 9 A = B + (( p-1 ) * y + (q-1 )) * L A = B + (( q-1 ) * y + (p-1)) * L MEMBELAH PER KOLOM ( CoIomn major order ) Contoh daIam bahasa pemrograman untuk memasukkan data matriks sbb: 5 4 6 A = 7 3 5 Menjadi 5 7 9 4 3 2 6 5 9 9 2 9 A = B + (( p-1 ) * y + (q-1)) * L A = B + (( q-1 ) * y + (p-1)) * L ARRAY 0lHFtSl 0uA ika kita memiIiki matriks A : Berordo x , y 55 x 78 Base address untuk matriks tsb adaIah 1000 Setiap niIai data membutuhkan 8 byte memori Pertanyaan : i Iokasi manakah awaI niIai data A (57,71) disimpan ? ika kita memiIiki matriks A berordo x , y 55 x 78, base address untuk matriks tersebut di 1000 dan setiap niIai data membutuhkan 8 byte memori, i Iokasi manakah awaI niIai data A (57,71) disimpan ? Maka rumus adaIah : A = B + (( p-1 ) * y + (q-1)) * L A = 1000 + (( 57-1 ) * 78 + ( 71-1 )) * 8 A = 1000 + (( 4368 ) + ( 70 )) * 8 A = 1000 + ( 4438 ) * 8 A = 1000 + 35504 A = 36504 ika kita memiIiki matriks A berordo x , y 55 x 78, base address untuk matriks tersebut di 1000 dan setiap niIai data membutuhkan 8 byte memori, i Iokasi manakah awaI niIai data A (57,71) disimpan ? Rumus untuk membeIah per adaIah : A = B + (( q-1 ) * y + (p-1)) * L A = 1000 + (( 71-1 ) * 78 + ( 57-1 )) * 8 A = 1000 + (( 5460 ) + ( 56 )) * 8 A = 1000 + ( 5516 ) * 8 A = 1000 + 44128 A = 45128 ika kita memiIiki matriks A : Berordo x , y 60 x 75 Base address untuk matriks tsb adaIah 800 Setiap niIai data membutuhkan 10 byte memori Pertanyaan : i Iokasi manakah awaI niIai data A (63,73) disimpan ? ika kita memiIiki matriks A : Berordo x , y 43 x 52 Base address untuk matriks tsb adaIah 1500 Setiap niIai data membutuhkan 8 byte memori Pertanyaan : i Iokasi manakah awaI niIai data A (45,50) disimpan ? A = B + (( p-1 ) * y + (q-1)) * L A = 800 + (( 63-1 ) * 75 + ( 73-1 )) * 10 A = 800 + (( 4650 ) + ( 72 )) * 10 A = 800 + ( 4722 ) * 10 A = 800 + 47220 A = 48020 A = B + (( q-1 ) * y + ( p-1 )) * L A = 800 + (( 73-1 ) * 75 + ( 63-1 )) * 10 A = 800 + (( 5400 ) + ( 62 )) * 10 A = 800 + ( 5462 ) * 10 A = 800 + 54620 A = 55420 A = B + (( p-1 ) * y + ( q-1 )) * L A = 1500 + (( 45-1 ) * 52 + ( 50-1 )) * 8 A = 1500 + (( 2288 ) + ( 49 )) * 8 A = 1500 + ( 2337 ) * 8 A = 1500 + 18696 A = 20196 A = B + (( q-1 ) * y + ( p-1 )) * L A = 1500 + (( 50-1 ) * 52 + ( 45-1 )) * 8 A = 1500 + (( 2548 ) + ( 44 )) * 8 A = 1500 + ( 2592 ) * 8 A = 1500 + 20736 A = 22236 SORT adaIah Suatu proses pengurutan data yang sebeIumnya disusun secara acak atau tidak teratur menjadi urut dan teratur menurut aturan tertentu. Biasanya pengurutan menjadi 2 (dua), yaitu : Ascending Pengurutan dari karakter / angka keciI ke karakter / angka besar. escending Pengurutan dari karakter / angka besar ke karakter / angka keciI. !&#&% !&#&% !&#&% !&#&% Untuk meIakukan proses pengurutan dapat menggunakan beberapa metode, saIahsatunya adaIah : BubbIe Sort adaIah Suatu metode pengurutan yang membandingkan eIemen yang sekarang dengan eIemen berikutnya. MisaIkan ada data-data sebagai berikut 5, 34, 32, 25, 75, 42, 22, 2 Kita ingin meIakukan pengurutan dari yang terkeciI sampai yang terbesar dari ke 8 (deIapan) data tsb. Ada beberapa Iangkah sampai dengan data tsb urut dan menghasiIkan data sbb 2, 5, 22, 25, 32, 34, 42, 75 ? SeIection Sort adaIah suatu metode pengurutan yang membandingkan eIemen yang sekarang dengan eIemen berikutnya sampai ke eIemen yang terakhir. ika ditemukan eIemen Iain yang Iebih keciI dari eIemen sekarang maka dicatat posisinya dan Iangsung ditukar. MisaIkan ada data-data sebagai berikut : 5, 34, 32, 25, 75, 42, 22, 2 aftar biIangan diatas masih beIum urut dari keciI ke besar, yang nantinya hasiI akhirnya 2, 5, 22, 25, 32, 34, 42, 75 AIgoritma pengurutan yang tercepat dan popuIer,dan karena kecepatannyaIah maka disebut Quick sort. Akan tetapi waIaupun rata-rata aIgoritma ini Iebih cepat daripada aIgoritma sort yang Iainnya,daIam beberapa kasus ia dapat menjadi Iebih Iambat,khususnya jika jumIah datanya sedikit. Quick Sort membandingkan suatu eIemen (disebut Pivot) dengan eIemen yang Iain dan menyusunnya sedemikian rupa sehingga eIemen- eIemen Iain yang Iebih keciI dari Pivot tsb terIetak disebeIah kirinya dan eIemen yang Iebih besar dari Pivot terIetak disebeIah kanan. Merge Sort biasanya digunakan untuk jumIah data yang besar. engan membagi-bagi menjadi sub-sub bagian muIai dari sedikit eIemen hingga keseIuruhan eIemen tersebut menjadi data yang sudah urut. Sortir ini digunakan biIa kapasitas memori tidak sanggup untuk menampung seIuruh data yang akan disortir. 1. ATA 4, 28, 31, 27, 80, 44, 12, 9 Berapa Iangkah supaya urut ? Urutkan secara rinci ! 2. ATA 9, 21, 45, 11, 3, 8, 50, 77 Berapa Iangkah supaya urut ?? Urutkan secara rinci ! CONTOH SOAL BUBBLE SORT 1. ATA 9, 41, 12, 62, 78, 13, 2, 30 2. ATA 1, 18, 77, 26, 33, 8, 22, 4 3. ATA 19, 37, 6, 1, 2, 99, 14, 10 Berapa Iangkah supaya urut dgn SeIection Sort? Urutkan secara rinci SeIection Sort & Merge sort ! CONTOH SOAL SELECTION & MERGE SORT 1. ATA 9, 41, 12, 62, 78, 13, 2, 30 Pivotnya di 78 2. ATA 1, 18, 77, 26, 33, 8, 22, 4 Pivotnya di 33 Berapa Iangkah supaya urut ? Urutkan secara rinci ! CONTOH SOAL QUICK SORT BENERAN