Kode Iklan DFP TUGAS UTS STUKTUR DATA | Data Structures
Kode Iklan 400x460
Kode iklan In feed above/responsive

TUGAS UTS STUKTUR DATA

Kode Iklan 336x280
Kode Iklan In Artikel
HPK taruh disini
                   SOAL

  1.  Jelaskan proses konversi bilangan 8247(10) kedalam bentuk bilangan Biner, Heksadesimal,    dan     Oktal.
  2.  Buatlah penjelasan untuk tipe data signed integer (bilangan bertanda) untuk prosesor yang        memiliki jumlah 6 bit.
  3.  Terdapat empat operasi logika yang dapat digunakan untuk memodifikasi pola bit yaitu              complementing, setting, unsetting, dan flipping. Buat penjelasan proses untuk mendapatkan      hasil dari angka desimal 288(10) XOR 219(10)
  4. Algoritma adalah serangkaian langkah-langkah yang jelas untuk mendapatkan hasil dalam waktu yang terbatas. Jelaskan langkah-langkah untuk mengurutkan deretean angka dengan metode insertion sort. 

       JAWABAN

1.  a. Bilangan biner
       konversi bilangan biner adalah dengan membagi bilangan desimal dengan 2 dan menyimpan sisa bagi per setiap pembagian terus hingga hasil baginya < 2. Hasil konversi adalah urutan sisa bagi dari yang paling akhir hingga paling awal.
Proses konversi bilangan 8247(10) kedalam bentuk bilangan Biner

Hasil bagi
pembagi
Sisa bagi
8247
2
1
4123
2
1
2061
2
1
1030
2
0
515
2
1
257
2
1
128
2
0
64
2
0
32
2
0
16
2
0
8
2
0
4
2
0
2
2
0
1
2
1
Hasil konversi bilangan biner dari 8247(10) adalah 1000000011011


B. Bilangan octal
      

       Konversi bilangan octal adalah dengan membagi bilangan desimal dengan 8 dan menyimpan sisa bagi per setiap pembagian terus hingga hasil baginya < 8. Hasil konversi adalah urutan sisa bagi dari yang paling akhir hingga paling awal.

Proses konversi bilangan 8247(10) kedalam bentuk bilangan octal
      Hasil bagi
       pembagi
       Sisa bagi
             8247
        8
       6
             1030
        8
       6
              128
        8
       0
               16
        8
       0
                 2 
        8
        6

Hasil konversi bilangan octal dari 8247(10) adalah 66006

  C.   Bilangan Heksadesimal
       konversi bilangan octal adalah dengan membagi bilangan desimal dengan 16 dan menyimpan sisa bagi per seitap pembagian terus hingga hasil baginya < 16. Hasil konversi adalah urutan sisa bagi dari yang paling akhir hingga paling awal.  Apabila sisa bagi diatas 9 maka angkanya diubah, untuk nilai 10 angkanya A, nilai 11 angkanya B, nilai 12 angkanya C, nilai 13 angkanya D, nilai 14 angkanya E, nilai 15 angkanya F.

Proses konversi bilangan 8247(10) kedalam bentuk bilangan heksadesimal
      Hasil bagi
      pembagi
     Sisa bagi
     8247
      16
      6
      515
      16
      6
      32
      16
      0
      2
      16
      14 (E)

Hasil konversi bilangan heksadesimal dari 8247(10) adalah E066






2. Tipe Data Sign Integer (Bilangan Bertanda ) untuk prosessor 6 bit

Representasi data merupakan cara untuk meletakkan sebuah nilai dalam memory komputer. Representasi data ini terdiri  dari beberapa bilangan yang biasa disebut tipe data dalam pemograman.
Tipe data yang biasa kita kenal dan kita gunakan dalam memprogram sebuah aplikasi adalah tipe data Integer, Float, Char, Double. Untuk tipe data integer dan char, terdiri
dari dua yaitu Unsigned dan Signed.
Tipe data Char atau Integer yang diikuti dengan kata Unsigned akan menghasilkan
nilai positif semua karena tipe data ini tidak mengenal tanda didepannya (-).
Sedangkan tipe data Chat atau Integer yang diikuti oleh signed, (biasanya tidak dituliskan) akan terdapat nilai negative nya karena bilangan ini mengenal tanda yang ada didepan nilai (-).
Tipe data Char dan integer menghasilkan bilangan bulat (tidak berkoma). Sedangkan tipe data Float dan Double menghasilkan bilangan berkoma.

Signed integer (bilangan bertanda)
Signed" berarti bahwa salah satu dari bit-bit tersebut menandakan apakah sebuah angka yang dimaksud adalah negatif atau positif.

Karena prosesor  memiliki 6 bit, maka ia dapat menyimpan hingga 2 pangkat  6 nilai yang berbeda  (tepatnya  512)  Nilai-nilai tersebut dapat dibagi hampir sama rata antara bilangan positif dan negatif.


3. akan untuk memodifikasi pola bit yaitu complementing, setting, unsetting, dan flipping. Buat penjelasan proses untuk mendapatkan hasil dari angka desimal berikut ini: 288(10) XOR 219(10)
Jawaban:
228(10) XOR 219 (10)
228 = 255-228 =27
28
27
26
25
24
23
22
21
20
256
128
64
32
16
8
4
2
1
1
1
1
1
0
1
0
1

219 = 255-219 = 36
28
27
26
25
24
23
22
21
20
256
128
64
32
16
8
4
2
1
1
0
0
0
1
1
0
0




Maka 228(10) XOR219(10)
1
1
1
1
0
1
0
1
228
1
0
0
0
1
1
0
0
219
0
1
1
1
0
0
0
1
XOR
  

      4.  Pengertian Bubble Sort
Bubble Sort adalah salah satu algoritma untuk sorting data, atau kata lainnya mengurutkan data dari yang terbesar ke yang terkecil atau sebaliknya (Ascending atau Descending).
Bubble sort (metode gelembung) adalah metode/algoritma pengurutan dengan dengan cara melakukan penukaran data dengan tepat disebelahnya secara terus menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan. Jika tidak ada perubahan berarti data sudah terurut. Disebut pengurutan gelembung karena masing-masing kunci akan dengan lambat menggelembung ke posisinya yang tepat.
                Metode pengurutan gelembung (Bubble Sort) diinspirasikan oleh gelembung sabun yang berada dipermukaan air. Karena berat jenis gelembung sabun lebih ringan daripada berat jenis air, maka gelembung sabun selalu terapung ke atas permukaan. Prinsip di atas dipakai pada pengurutan gelembung.
Algoritma bubble sort adalah salah satu algoritma pengurutan yang paling simple, baik dalam hal pengertian maupun penerapannya. Ide dari algoritma ini adalah mengulang proses pembandingan antara tiap-tiap elemen
array dan menukarnya apabila urutannya salah. Pembandingan elemen-elemen ini akan terus diulang hingga tidak perlu dilakukan penukaran lagi. Algoritma
ini termasuk dalam golongan algoritma comparison sort, karena menggunakan perbandingan dalam operasi antar elemennya. Berikut ini adalah gambaran dari algoritma bubble sort. Misalkan kita mempunyai sebuah array dengan.  Elemen-elemen “4 2 5 3 9”. Proses yang akan terjadi apabila digunakan algoritma bubblesort adalah sebagai berikut.

Pass pertama
(4 2 5 3 9) menjadi (2 4 5 3 9)
(2 4 5 3 9) menjadi (2 4 5 3 9)
(2 4 5 3 9) menjadi (2 4 3 5 9)
(2 4 3 5 9) menjadi (2 4 3 5 9)
Pass kedua
(2 4 3 5 9) menjadi (2 4 3 5 9)
(2 4 3 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
Pass ketiga
(2 3 4 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)

Dapat dilihat pada proses di atas, sebenarnya pada pass kedua, langkah kedua, array telah terurut. Namun algoritma tetap dilanjutkan hingga pass kedua berakhir. Pass ketiga dilakukan karena definisi terurut dalam algoritma bubblesort adalah tidak ada satupun penukaran pada suatu pass, sehingga pass ketiga dibutuhkan untuk memverifikasi keurutan array tersebut.
   B.      Algoritma Bubble Sort

 1.    Membandingkan data ke-i dengan data ke-(i+1) (tepat bersebelahan). Jika tidak sesuai maka tukar (data ke-i = data ke-(i+1) dan data ke-(i+1) = data ke-i). Apa maksudnya tidak sesuai? Jika kita menginginkan algoritme menghasilkan data dengan urutan ascending (A-Z) kondisi tidak sesuai adalah data ke-i > data ke-i+1, dan sebaliknya untuk urutan descending (A-Z).
 2.    Membandingkan data ke-(i+1) dengan data ke-(i+2). Kita melakukan pembandingan ini sampai data terakhir. Contoh: 1 dgn 2; 2 dgn 3; 3 dgn 4; 4 dgn 5 … ; n-1 dgn n.
 3.    Selesai satu iterasi, adalah jika kita sudah selesai membandingkan antara (n-1) dgn n. Setelah selesai satu iterasi kita lanjutkan lagi iterasi berikutnya sesuai dengan aturan ke-1. mulai dari data ke-1 dgn data ke-2, dst.
 4.    Proses akan berhenti jika tidak ada pertukaran dalam satu iterasi.

Contoh Kasus Bubble Sort :

Misalkan kita punya data seperti ini: 6, 4, 3, 2 dan kita ingin mengurutkan data ini (ascending) dengan menggunakan bubble sort. Berikut ini adalah proses yang terjadi:
Iterasi ke-1: 4, 6, 3, 2 :: 4, 3, 6, 2 :: 4, 3, 2, 6 (ada 3 pertukaran)
Iterasi ke-2: 3, 4, 2, 6 :: 3, 2, 4, 6 :: 3, 2, 4, 6 (ada 2 pertukaran)
Iterasi ke-3: 2, 3, 4, 6 :: 2, 3, 4, 6 :: 2, 3, 4, 6 (ada 1 pertukaran)
Iterasi ke-4: 2, 3, 4, 6 :: 2, 3, 4, 6 :: 2, 3, 4, 6 (ada 0 pertukaran) -> proses selesai


   C.      Kompleksitas Algoritma Bubble Sort

Kompleksitas Algoritma Bubble Sort dapat dilihat dari beberapa jenis kasus, yaitu worst-case, average-case, dan best-case.

  Ø  Kondisi Best-Case

Dalam kasus ini, data yang akan disorting telah terurut sebelumnya, sehingga proses perbandingan hanya dilakukan sebanyak (n-1) kali, dengan satu kali pass.
Proses perbandingan dilakukan hanya untuk memverifikasi keurutan data. Contoh Best-Case dapatdilihat pada pengurutan data “1 2 3 4” di bawah ini.

Pass Pertama
(1 2 3 4) menjadi (1 2 3 4)
(1 2 3 4) menjadi (1 2 3 4)
(1 2 3 4) menjadi (1 2 3 4)

Dari proses di atas, dapat dilihat bahwa tidak terjadi penukaran posisi satu kalipun, sehingga tidak dilakukan pass selanjutnya. Perbandingan elemen dilakukan sebanyak tiga kali. Proses perbandingan pada kondisi ini hanya dilakukan sebanyak (n-1) kali. Persamaan Big-O yang diperoleh dari proses ini adalah O(n). Dengan kata lain, pada kondisi Best-Case algoritma Bubble Sort termasuk pada algoritma
lanjar.


  Ø  Kondisi Worst-Case

Dalam kasus ini, data terkecil berada pada ujung array. Contoh Worst-Case dapat dilihat pada pengurutan data “4 3 2 1” di bawah ini.

Pass Pertama
(4 3 2 1) menjadi (3 4 2 1)
(3 4 2 1) menjadi (3 2 4 1)
(3 2 4 1) menjadi (3 2 1 4)
Pass Kedua
(3 2 1 4) menjadi (2 3 1 4)
(2 3 1 4) menjadi (2 1 3 4)
(2 1 3 4) menjadi (2 1 3 4)
Pass Ketiga
(2 1 3 4) menjadi (1 2 3 4)
(1 2 3 4) menjadi (1 2 3 4)
(1 2 3 4) menjadi (1 2 3 4)
Pass Keempat
(1 2 3 4) menjadi (1 2 3 4)
(1 2 3 4) menjadi (1 2 3 4)
(1 2 3 4) menjadi (1 2 3 4)

Dari langkah pengurutan di atas, terlihat bahwa setiap kali melakukan satu pass, data terkecil akan bergeser ke arah awal sebanyak satu step. Dengan kata lain, untuk menggeser data terkecil dari urutan keempat menuju urutan pertama, dibutuhkan pass sebanyak tiga kali, ditambah satu kali pass untuk memverifikasi. Sehingga jumlah proses pada kondisi best case dapat dirumuskan sebagai berikut. Jumlah proses = n2+n (3)
Dalam persamaan (3) di atas, n adalah jumlah elemen yang akan diurutkan. Sehingga notasi Big-O yang didapat adalah O(n2). Dengan kata lain, pada kondisi worst-case, algoritma Bubble Sort termasuk dalam kategori algoritma kuadratik.

  Ø  Kondisi Average-Case

Pada kondisi average-case, jumlah pass ditentukan dari elemen mana yang mengalami penggeseran ke kiri paling banyak. Hal ini dapat ditunjukkan oleh proses pengurutan suatu array, misalkan saja (1 8 6 2). Dari (1 8 6 2), dapat dilihat bahwa yang akan mengalami proses penggeseranpaling banyak adalah elemen 2, yaitu sebanyak dua kali.

Pass Pertama
(1 8 6 2) menjadi (1 8 6 2)
(1 8 6 2) menjadi (1 6 8 2)
(1 6 8 2) menjadi (1 6 2 8)
Pass Kedua
(1 6 2 8) menjadi (1 6 2 8)
(1 6 2 8) menjadi (1 2 6 8)
(1 2 6 8) menjadi (1 2 6 8)
Pass Ketiga
(1 2 6 8) menjadi (1 2 6 8)
(1 2 6 8) menjadi (1 2 6 8)
(1 2 6 8) menjadi (1 2 6 8)

Dari proses pengurutan di atas, dapat dilihat bahwa untuk mengurutkan diperlukan dua buah passing,ditambah satu buah passing untuk memverifikasi. Dengan kata lain, jumlah proses perbandingan dapat dihitung sebagai berikut. Jumlah proses = x2+x (4) Dalam persamaan (4) di atas, x adalah jumlahpenggeseran terbanyak. Dalam hal ini, x tidak pernah lebih besar dari n, sehingga x dapat dirumuskan sebagai
Dari persamaan (4) dan (5) di atas, dapat disimpulkan bahwa notasi
big-O nya adalah O(n2). Dengan kata lain, pada kondisi average case algoritma Bubble Sort termasuk dalam algoritma kuadratik.

   D.      Implementasi dalam Pseudo-Code

Setiap algoritma akan memiliki implementasi yang berbeda, tergantung dari bahasa program yang dipakai. Oleh karena itu berikut ini adalah pseudo-code dari algoritma bubblesort, untuk memudahkan implementasi bubblesort pada bahasa apapun.

procedure bubbleSort( A list of
sortable items ) defined as:
do
swapped := false
for each in to length(A) - 2
inclusive do:
if A[i] > A[i+1] then
swap( A[i], A[i+1] )
swapped := true
end if
end for
while swapped
end procedure



   E.       Kelebihan dan Kelemahan Bubble Sort

Kelebihan :
 ·      Metode Buble Sort merupakan metode yang paling simpel
 ·      Metode Buble Sort mudah dipahami algoritmanya

Kelemahan:
Meskipun simpel metode Bubble sort  merupakan metode pengurutan yang paling tidak efisien.  Kelemahan buble sort adalah pada saat mengurutkan data yang sangat besar akan mengalami kelambatan luar biasa, atau dengan kata lain kinerja memburuk cukup signifikan ketika data yang diolah jika  data cukup banyak. Kelemahan lain adalah jumlah pengulangan akan tetap sama jumlahnya walaupun data sesungguhnya sudah cukup terurut. Hal ini disebabkan setiap data dibandingkan dengan setiap data yang lain untuk menentukan posisinya.





Kode Iklan 300x250
close
==[ Klik disini 2X ] [ Close ]==
Kode Iklan DFP2
Kode Iklan DFP2