HPK taruh disini
1.
Jelaskan proses konversi bilangan 8139(10)
kedalam bentuk bilangan Biner, Heksadesimal, dan Oktal.
Konversi
Bilangan Desimal, Biner, Oktal dan Heksadesimal
Pada momen yang berbahagia ini, saya ingin coba
menjabarkan tahap2 sederhana proses konversi bilangan desimal, biner, oktal dan
heksadesimal.
Bilangan desimal adalah bilangan yang menggunakan 10 angka mulai 0 sampai 9 berturut2. Setelah angka 9, maka angka berikutnya adalah 10, 11, 12 dan seterusnya. Bilangan desimal disebut juga bilangan berbasis 10. Contoh penulisan bilangan desimal : 1710. Ingat, desimal berbasis 10, maka angka 10-lah yang menjadi subscriptpada penulisan bilangan desimal.
Bilangan desimal adalah bilangan yang menggunakan 10 angka mulai 0 sampai 9 berturut2. Setelah angka 9, maka angka berikutnya adalah 10, 11, 12 dan seterusnya. Bilangan desimal disebut juga bilangan berbasis 10. Contoh penulisan bilangan desimal : 1710. Ingat, desimal berbasis 10, maka angka 10-lah yang menjadi subscriptpada penulisan bilangan desimal.
Bilangan
biner adalah
bilangan yang hanya menggunakan 2 angka, yaitu 0 dan 1. Bilangan biner juga
disebut bilangan berbasis 2. Setiap bilangan pada bilangan biner disebut bit, dimana 1 byte = 8 bit.
Contoh penulisan : 1101112.
Bilangan
oktal adalah
bilangan berbasis 8, yang menggunakan angka 0 sampai 7. Contoh penulisan : 178.
Bilangan
heksadesimal, atau bilangan heksa, atau bilangan
basis 16, menggunakan 16 buah simbol, mulai dari 0 sampai 9, kemudian
dilanjut dari A sampai F. Jadi, angka A sampai F merupakan simbol untuk 10
sampai 15. Contoh penulisan : C516.
A.
bilangan desimal yang akan
dikonversi ke biner. Setelah itu, akan saya lakukan
konversi masing2 bilangan desimal, biner, oktal dan heksadesimal.
Misalkan bilangan desimal yang ingin saya konversi adalah 813910.
Maka langkah yang dilakukan adalah membagi tahap demi tahap angka 813910 tersebut dengan 2, seperti berikut :
Misalkan bilangan desimal yang ingin saya konversi adalah 813910.
Maka langkah yang dilakukan adalah membagi tahap demi tahap angka 813910 tersebut dengan 2, seperti berikut :
Tahapan yang tepat untuk melakukan proses konversi ini
sebagai berikut :
8139 : 2 = 4069 sisa 1
8139 : 2 = 4069 sisa 1
4069 : 2 = 2034 sisa 0.
2034 : 2 = 1017 sisa 1.
1017 : 2 =508 sisa 0.
508 : 2 = 254 sisa 1.
254 : 2 =63 sisa 1.
63 : 2 =31 sisa 1..
31 : 2 =15 sisa 1.
13 : 2 =7 sisa 1.
3 : 2 =3 sisa 1.
1 : 2 =1 sisa 1.
1 : 2 =0 sisa 0.
Setelah didapat perhitungan tadi, pertanyaan berikutnya
adalah, hasil konversinya adalah urutan seluruh sisa-sisa perhitungan telah
diperoleh, dimulai dari bawah ke atas. Maka hasilnya adalah 0111111101018.
Angka 0 di awal tidak perlu ditulis, sehingga hasilnya menjadi 1111111101018.
B.
konversi bilangan desimal ke
oktal. Proses
konversinya mirip dengan proses konversi desimal ke biner, hanya saja kali ini
pembaginya adalah 8. Misalkan angka yang ingin saya konversi adalah 813910.
Maka :
8139 : 8 = 1017 sisa 1.
1017 : 8 = 127 sisa 8.
127: 8 = 15 sisa 0
15: 8 = 1 sisa 1
C. konversi
desimal ke heksadesimal
Misalkan bilangan desimal yang ingin saya ubah adalah 813910.
Untuk menghitung proses konversinya, caranya sama saja dengan proses konversi
desimal ke biner, hanya saja kali ini angka pembaginya adalah 16. Maka :
8139 : 16 = 508 sisa 3.
8139 : 16 = 508 sisa 3.
508 : 16 = 31 sisa F. —->
ingat, 16 diganti jadi F..
31 : 16 = 1 sisa 3.
1
: 16 = 0 sisa 0….(end)
Tipe
|
Ukuran
memori (dalam byte)
|
Jangkauan nilai
|
BYTE
|
1
|
0..255
|
SHORTINT
|
1
|
-128..127
|
INTEGER
|
2
|
-32768..32767
|
WORD
|
2
|
0..65535
|
LONGINT
|
4
|
-2147483648..2147483647
|
2.Buatlah penjelasan
untuk tipe data signed integer (bilangan bertanda) untuk prosesor yang memiliki jumlah 9 bit.
INTEGER
Jenis data ini merupakan nilai bilangan bulat, yang terdiri atas integer positif, integer negatif dan nol. Pada TURBO PASCAL jenis data ini di bagi atas beberapa bagian. (lihat tabel 1)
Operator Integer terdiri atas : + , - , * , DIV dan MOD
Var
Jumlah : byte;
Begin
Jumlah := 200;
WriteLn(‘Nilai JUMLAH = ‘,Jumlah);
End.
Hasilnya bila dijalankan :
Nilai JUMLAH = 200
INTEGER
Jenis data ini merupakan nilai bilangan bulat, yang terdiri atas integer positif, integer negatif dan nol. Pada TURBO PASCAL jenis data ini di bagi atas beberapa bagian. (lihat tabel 1)
Operator Integer terdiri atas : + , - , * , DIV dan MOD
Var
Jumlah : byte;
Begin
Jumlah := 200;
WriteLn(‘Nilai JUMLAH = ‘,Jumlah);
End.
Hasilnya bila dijalankan :
Nilai JUMLAH = 200
BUBBLE SORT
Bubble sort adalah proses pengurutan sederhana yang bekerja
dengan cara berulang kali membandingkan dua elemen data pada suatu saat dan
menukar elemen data yang urutannya salah. Ide dari Bubble sort adalah gelembung air yang akan “mengapung” untuk
table yang terurut menaik (ascending).
Elemen bernilai kecil akan “diapungkan” (ke indeks terkecil),
artinya diangkat ke “atas”(indeks terkecil) melalui pertukaran.
Karena
algoritma
ini melakukan pengurutan dengan cara membandingkan elemen-elemen data satu sama
lain, maka bubble sort termasuk
ke dalam jenis algoritma comparison-based
sorting.
Proses dalam Bubble sort dilakukan sebanyak N-1 langkah (pass) dengan N
adalah ukuran array. Pada
akhir setiap langkah ke – I , array L[0..N] akan terdiri atas dua bagian, yaitu bagian yang sudah terurut L[0..I] dan
bagian yang belum terurut L[I+1..N-1]. Setelah langkah terakhir,
diperoleh array L[0..N-1]
yang terurut menaik.
|
|
Untuk
mendapatkan urutan yang menaik, algoritmanya dapat ditulis secara global
sebagai berikut :
Untuk setiap
pass ke – I = 0,1,………., N-2 , lakukan :
Mulai dari
elemen J = N-1, N-2,….., I + 1, lakukan :
- Bandingkan
L[J-1] dengan L[J]
- Pertukarkan
L[J-1] dengan L[J] jika L[J-1] > L[J]
Rincian
setiap pass adalah sebagai berikut :
Pass
1: I = 0. Mulai dari elemen J = N-1,N–2,…,1,
bandingkan L[J-1] dengan L[J]. Jika L[J-1] > L[J], pertukarkan L[J-1] dengan
L[J]. Pada akhir langkah 1, elemen L[0] berisi harga minimum pertama.
Pass
2: I = 1. Mulai dari elemen J = N-1,N–2,…,2,
bandingkan L[J-1] dengan L[J]. Jika L[J-1] > L[J], pertukarkan L[J-1] dengan
L[J]. Pada akhir langkah 2, elemen L[1] berisi harga minimum kedua dan array
L[0..1] terurut, sedangkan L[2..(N-1)] belum terurut.
Pass
3: I = 2. Mulai dari elemen J = N-1,N–2,…,3,
bandingkan L[J-1] dengan L[J]. Jika L[J-1] > L[J], pertukarkan L[J-1] dengan
L[J]. Pada akhir langkah 3, elemen L[2] berisi harga minimum ketiga dan array
L[0..2] terurut, sedangkan L[3..(N-1)] belum terurut.
………
Pass
N-1: Mulai dari elemen J = N-1, bandingkan L[J-1] dengan L[J]. Jika
L[J-1] > L[J], pertukarkan L[J-1] dengan L[J].
Pada akhir
langkah N-2, elemen L[N-2] berisi nilai minimun ke [N-2] dan array L[0..N-2]
terurut menaik (elemen yang tersisa adalah L[N-1], tidak perlu diurut karena
hanya satu-satunya).
Misal array L
dengan N = 5 buah elemen yang belum terurut. Array akan
diurutkan secara ascending(menaik).
8
|
9
|
7
|
6
|
1
|
0
1 2
3 4
Pass 1 :
I = 0 ;J=
N-1=
4
8 9
7 1
6
J =
3
8 9 1
7 6
J =
2 8 1
9
7 6
J =
1 1
8
9
7 6
Hasil akhir
langkah 1 :
1
|
8
|
9
|
7
|
6
|
0
1 2
3 4
Pass 2 :
I = 1 ;J= N-1=
4 1
8 9 6
7
J =
3 1 8 6
9 7
J =
2 1 6
8 9
7
Hasil akhir
langkah 2 :
1
|
6
|
8
|
9
|
7
|
0
1 2
3 4
Pass 3 :
I = 2 ;J= N-1=
4 1 6 8 7
9
J =
3 1 6 7
8 9
Hasil akhir
langkah 3 :
1
|
6
|
7
|
8
|
9
|
0
1 2
3 4
Pass 4 :
I = 3 ;J= N-1=
4 1 6 7 8 9
Hasil akhir
langkah 4 :
1
|
6
|
7
|
8
|
9
|
0
1 2
3 4
Selesai.
Array L sudah terurut !!
Pseudocode
prosedur algoritma Bubble Sort secara Ascending
1.
//prosedur algoritma Bubble Sort secara Ascending2. //I.S:array sudah berisi
nilai integer yang belum terurut
3.
//F.S:nilai-nilai dalam array terurut secara Ascending
4. procedure v_Bubble(input/output A:array[0..4]of integer,
input N:integer)
5. KAMUS:
6.
i,j,temp:integer
|
7. ALGORITMA:8. for(i=0;i<=(N-2);i++)
9. for(j=(N-1);j>=(i+1);j–)
10. if (A[j-1]>A[j])
11.
tempßA[j-1]
12.
A[j-1]ßA[j]
13.
A[j]ßtemp
14. endif
15. endfor
16. endfor
17.end
procedure
|
Program
lengkap penerapan algoritma Bubble Sort dalam bahasa C
1.
#include <stdio.h>2. #include <conio.h>
3.
4.
void v_Bubble(int A[],int N);
5.
void main()
6.
{ int L[5];
7.
int i,N;
8.
//proses untuk memasukkan data array
9.
printf(“Banyak data : “);scanf(“%i”,&N);
10.
for(i=0;i<N;i++)
11.
{ printf(“Data ke-%i: “,i+1);
12.
scanf(“%i”,&L[i]); } //end loop i
13.
//memanggil procedure bubble sort
14.
v_Bubble(L,N);
15.
16.
//proses menampilkan kembali data array
17.
printf(“\nData Array Terurut\n”);
18.
for(i=0;i<N;i++)
19.
{ printf(“%3i”,L[i]); };
20.
getche();
21. }
//end main program
22.
23. void
v_Bubble(int A[5],int N)
24. { int
a,b,temp;
25.
//proses sortir dengan bubble sort
26.
for(a=0;a<=(N-2);a++)
27.
{ for(b=(N-1);b>=(a+1);b–)
28.
{ if (A[b-1] > A[b])
29.
{ temp = A[b-1];
30.
A[b-1]= A[b];
31.
A[b] = temp; } //endif
32.
} //end loop j
33.
} //end loop i
34. }
//end procedure v_Bubble
|
Output yang
dihasilkan: