Rabu, 25 September 2013

ALGORITMA SORTING


Jika kita memiliki 5 buah bilangan acak, bagaimana cara kita mengubahnya menjadi bilangan yang berurutan? Mudah sekali. Kita bisa membuat programnya dengan beberapa cara. Diantaranya, bubble sort, selection sort, shell sort dan quick sort.

1.       Bubble Sort

Mengapa proses ini dinamakan ‘bubble’? Karena proses pengurutan yang dilakukan adalah secara berangsur-angsur berpindah ke posisi yang tepat , seperti gelembung. Cara pengurutan dengan Bubble Sort dilakukan dengan membandingkan bilangan sekarang dengan bilangan berikutnya. Apabila bilangan sekarang  lebih besar dari bilangan berikutnya maka elemen tersebut ditukar (untuk pengurutan ascending). Sedangkan jika elemen sekarang lebih kecil daripada elemen berikutnya, maka kedua elemen  tersebut ditukar (untuk pengurutan descending).

Contoh:

Proses 1 :
22 10 15 3 8 2
22 10 15 3 2 8
22 10 15 2 3 8
22 10 2 15 3 8
22 10 2 15 3 8
22 2 10 15 3 8
2 22 10 15 3 8

Pengecekan dimulai dari data yang paling akhir, kemudian dibandingkan dengan data di depannya,jika data didepannya lebih besar maka akan di tukar.

Proses 2:
2 22 10 15 3 8
2 22 10 15 3 8
2 22 10 3 15 8
2 22 3 10 15 8
2 3 22 10 15 8

pengecekan dilakukan sampai dengan data ke-2 karena data pertama pasti sudah paling kecil.

Proses 3 :
2 3 22 10 15 8
2 3 22 10 8 15
2 3 22 8 10 15
2 3 8 22 10 15

Proses 4 :
2 3 8 22 10 15
2 3 8 22 15 10
2 3 8 15 22 10

Proses 5 :
2 3 8 15 22 10
2 3 8 15 10 22

Pengurutan berhenti.
Jika  dituangkan dalam program dan diagram flowchart menjadi:

Procedure Bubble(Var Temp : Data; N : Integer);


Var I,j : Integer;
Begin
     For i:=2 To N Do
            For J:=N DownTo i Do
                     If Temp[j] < Temp[j-1] Then        
                      SWAP(Temp[j], Temp[j-1]);
End;














2.       Selection Sort

Pengurutan dengan cara Selection Sort berdasarkan atas pencarian nilai terkecil dari seluruh bilangan, lalu di tukar dengan bilangan pertama. Pada langkah kedua, data terkecil dicari mulai dari data kedua, lalu ditukar dengan bilangan kedua, begitu seterusnya sampai semua data terurut.
Dalam flowchart: 


 .
Var i,j,sem: integer;
Begin 
            For I:=1 To N-1 Do 
                Begin 
                     sem:=i; 
                     For j:=i+1 To N Do 
                     If Bilangan[sem] > Bilangan[j] Then sem:=j; 
                     SWAP(bilangan[i], bilangan[sem]); 
                 End; 
      End; 










3.       Shell Sort

Pada metode ini, digunakan jarak tertentu antara dua elemen  yang dibandingkan dan ditukarkan. Secara singkat metode ini dijelaskan sebagai berikut. Pada langkah pertama, kita ambil elemen pertama dan kita bandingkan dan kita bandingkan dengan elemen pada jarak tertentu (biasanya setengah dari jumlah data) dari elemen pertama tersebut. Kemudian elemen kedua kita bandingkan dengan elemen lain dengan jarak yang sama seperti jarak yang sama seperti diatas. Demikian seterusnya sampai seluruh elemen dibandingkan. Pada langkah kedua proses diulang dengan langkah yang lebih kecil, pada langkah ketiga jarak tersebut diperkecil lagi seluruh proses dihentikan jika jarak sudah kurang dari satu.

Untuk lebih jelasnya, perhatikan proses shell sort dalam procedure pascal berikut :

Procedure Shell(Var Temp : Data; JmlData : Integer); 
Var I,J, Jarak : Integer; 
        Begin 
             Jarak := JmlData Div 2; 
              While Jarak > 0 Do 
                    Begin 
                        For I:=1 To JmlData-Jarak Do 
                             Begin 
                                 J := I + Jarak; 
                                 If Temp[I] > Temp[J] Then  
                                 SWAP(Temp[I], Temp[Lok]); 
                             End; 
                             Jarak := Jarak Div 2; 
                    End; 
          End;

4.       Quick Sort

Secara garis besar metode ini dijelaskan sebagai berikut. Misalnya kita ingin mengurutkan data A yang membunyai N elemen. Kita pilih sembarang elemen dari data tersebut, biasanya elemen pertama, misalnya X. Kemudian semua elemen tersebut disusun dengan menempatkan X pada posisi J sedemikian rupa sehingga elemen ke 1 sampai ke J-1 mempuyai nilai lebih kecil dari X. Sampai berikutnya diulang untuk  setiap sub data.

Dalam Procedure Pascal :

Procedure Quick(Var Temp : Data; Awal, Akhir : Integer); 
      Var I,J : Integer; 
       Procedure ATUR; 
       Begin 
                   I:=Awal +1; 
                   J:= Akhir; 
                    While Temp[I] < Temp[Awal] Do Inc(I);
                   While Temp[J] > Temp[Awal] Do Dec(J); 
                   While I < J Do 
                         Begin 
                                SWAP(Temp[I], Temp[J]); 
                                While Temp[I] < Temp[Awal] Do Inc(I); 
                                While Temp[J] > Temp[Awal] Do Dec(J); 
                         End; 
                   SWAP(Temp[Awal], Temp[J]); 
       End; 
                 
      Begin 
                  If Awal < Akhir Then 
                         Begin 
                              ATUR; 
                              Quick(Temp, Awal, J-1); 
                                            Quick(Temp,J+1,Akhir);
                                       End; 
     End;

Selamat Mencoba^^

Jumat, 20 September 2013

Mengubah Desimal ke Biner


Mengubah desimal dengan biner dapat dilakukan dengan berbagai cara. Salah satunya adalah menggunakan deret ukur yakni bilangan dua pangkat x.

128    64    32   16   8   4   2   1
 27      26    25     24  23  22  21  20

Caranya, cari bilangan-bilangan yang ada di dalam deret ukur yang jika dijumlahkan hasilnya adalah bilangan tersebut. Contoh misalkan ambil angka 23.

23 bisa didapat dari 16 + 4 + 2 + 1.
Maka tulis angka 1 di setiap bilangan yang digunakan, dan angka 0 untuk bilangan yang tidak digunakan.

128    64    32   16   8   4   2   1
  0      0     0       1   0   1   1   1
Maka, bilangan biner dari 23 adalah 00010111.

Cara lain adalah dengan memanfaatkan prinsip mod.
Hal yang perlu dilakukan adalah membagi dengan 2 bilangan yang diinginkan sampai hasil baginya 1, tidak bisa dibagi lagi untuk menghasilkan bilangan bulat.
Skemanya bisa dilihat pada gambar:

Pertama, bagi 23 dengan 2, hasilnya 11 sisa 1. Lalu bagi lagi angka 11 dengan 2, hasilnya 5 sisa 1. Begitu seterusnya sampai selesai. Perhatikan pula cara pembacaannya.

                                                                                
                                                                              



Jika dituangkan dalam notasi algoritma jika ingin membuat program, maka salah satunya adlah dengan flowchart yang ada di bawah ini.


 Selamat Mencoba^_^




























Senin, 02 September 2013

Sejarah Singkat Penemuan Integrated Circuit (IC)

IC (Integrated Circuit) adalah nama lain chip. IC adalah piranti elektronis yang dibuat dari material semikonduktor. IC atau chip merupakan cikal bakal dari sebuah komputer dan segala jenis device yang memakai teknologi micro-controller lainnya.

IC ditemukan pada tahun 1958 oleh seorang insinyur bernama Jack Kilby yang bekerja pada Texas Intruments mencoba memecahkan masalah dengan memikirkan sebuah konsep menggabungkan seluruh komponen elektronika dalam satu blok yang dibuat dari bahan semikonduktor. Penemuan itu kemudian dinamakan IC (Integrated Circuit) atau yang kemudian lazim disebut chip. Beberapa saat setelah itu, Robert Noyce, yang bekerja pada Fairchild Semiconductor Corporation, menemukan hal serupa, meskipun mereka bekerja pada dua tempat yang berbeda. Semenjak itu banyak riset yang dilakukan untuk mengembangkan IC (integrated circuit) atau Chip hingga saat ini.

Jack Kilby
Robert Noyce

Siapakah Penemu Transistor?

Transistor merupakan sebuah penemuan yang berhasil mengubah wajah dunia. Transistor adalah alat semikonduktor yang dipakai sebagai penguat, sebagai sirkuit pemutus dan penyambung (switching), stabilisasi tegangan, modulasi sinyal atau sebagai fungsi lainnya. Transistor dapat berfungsi semacam kran listrik, dimana berdasarkan arus inputnya (BJT) atau tegangan inputnya (FET), memungkinkan pengaliran listrik yang sangat akurat dari sirkuit sumber listriknya.

Di pertengahan 1940-an sekelompok ilmuwan yang bekerja di Bell Telephone Labs di Murray Hill, New Jersey, merintis penemuan divais untuk menggantikan teknologi tabung hampa (vacuum tube) saat itu. Tabung hampa menjadi satu-satunya teknologi saat itu untuk menguatkan sinyal atau sebagai saklar dalam elektronika. Masalahnya ialah tabung hampa sangat mahal, mengkonsumsi banyak daya listrik, panas, dan tak-relieable, sehingga perlu perawatan ekstra. Adapun para ilmuwan tersebut adalah:

1. Walter Houser Brattain (10 Februari 1902 - 13 Oktober 1987)
Walter H. Brattain lahir di Amoy, Cina, pada tanggal 10 Februari 1902, putra R. Ross Brattain dan Ottilie tag. Ia menghabiskan masa kecil dan remaja di Negara Bagian Washington dan menerima gelar BS Gelar dari Whitman College pada tahun 1924. Ia dianugerahi gelar MA oleh University of Oregon pada tahun 1926 dan Ph.D. gelar oleh University of Minnesota pada tahun 1929.
Dr Brattain menerima kehormatan Doctor of Science dari Portland University pada tahun 1952, dari Whitman College dan Union College pada tahun 1955, dan dari University of Minnesota pada tahun 1957. Pada tahun 1952 ia dianugerahi Stuart Ballantine Medal dari Institut Franklin, dan pada tahun 1955 John Scott Medal. Tingkat di Union College dan dua medali diterima bersama-sama dengan Dr John Bardeen, sebagai pengakuan atas pekerjaan mereka pada transistor.

2. John Bardeen (23 Mei 1908-30 Januari 1991)
John Bardeen ialah ilmuwan Amerika Serikat yang menerima Penghargaan Nobel dalam Fisika 2 kali, yakni pada tahun 1956 dan 1972. Dilahirkan di Madison, Wisconsin, ibunya ialah desainer interior dan ayahnya ialah guru besar kedokteran. Sejak kecil ia cerdas dan diizinkan loncat kelas 4 tahun di SD.

Setelah sekolah tinggi, ia belajar di Universitas Madison, mendapat gelar bachelor dalam teknik elektro. Ia mengambil pendidikan singkat untuk magang di Western Electric Company di Chicago. Setelah lulus, John
menjadi asisten riset sarjana dan bekerja dengan Leo Peters dalam geofisika dan gelombang radio.

3. William Bradford Shockley (lahir di London, Inggris, Britania Raya, 13 Februari 1910 – meninggal di Stanford, California, Amerika Serikat, 12 Agustus 1989 pada umur 79 tahun)

William Bradford Shockley dilahirkan di London dari orang tua Amerika Serikat yang berada di Inggris selama bebberapa tahun untuk urusan bisnis. Ayahnya adalah insinyur pertambangan dan ibunya wakil surveyor federal untuk tanah mineral. Mereka kembali ke Kalifornia saat William masih balita. Minatnya dalam sains tumbuh sejak dini, melalui profesi orangtuanya dan tetangganya yang mengajar fisika di Stanford. Ia lulus dari CalTech pada 1932 dan menerima PhD dari MIT pada 1936.

Ia mulai bekerja di Laboratorium Bell. Penelitiannya dalam fisika benda padat, khususnya tabung vakum, membuat banyak kemajuan teoretis dalam tujuan perusahaan untuk menggunakan tombol elektronik untuk kantor telepon sebagai pengganti tombol mekanik yang masih dipakai sampai saat itu. Selama PD II, Shockley bekerja untuk proyek militer, khususnya memperhalus sistem radar. Begitu perang berakhir, ia kembali meneliti benda padat, kini mengamati semikonduktor.