Selasa, 19 Juni 2012

Algoritma Selection Sort

Selection Sort merupakan salah satu algoritma pengurutan yang sederhana. Ide dasarnya adalah melakukan beberapa kali pass untuk melakukan penyeleksian elemen struktur data. Untuk sorting ascending (menaik), elemen yang paling kecil di antara elemen-elemen yang belum urut, disimpan indeksnya, kemudian dilakukan pertukaran nilai elemen dengan indeks yang disimpan tersebut dengan elemen yang paling depan yang belum urut. Sebaliknya, untuk sorting descending (menurun), elemen yang paling besar yang disimpan indeksnya kemudian ditukar.


Selection Sort diakui karena kesederhanaan algoritmanya dan performanya lebih bagus daripada algoritma lain yang lebih rumit dalam situasi tertentu. Algoritma ini bekerja sebagai berikut:


  1. Mencari nilai minimum (jika ascending) atau maksimum (jika descending) dalam sebuah list
  2. Menukarkan nilai ini dengan elemen pertama list
  3. Mengulangi langkah di atas untuk sisa list dengan dimulai pada posisi kedua
Secara efisien kita membagi list menjadi dua bagian yaitu bagian yang sudah diurutkan, yang didapat dengan membangun dari kiri ke kanan dan dilakukan pada saat awal, dan bagian list yang elemennya akan diurutkan.



contoh simulasi algoritma selection sort sbb :

jika kita memiliki elemen array sbb :  {5, 1, 12, -5, 16, 2, 12, 14}


Algoritma pengurutan selection sort ini termasuk algoritma sulit dibagi/ mudah digabung (hard split/easy join).  Dari proses pengurutannya, Selection sort ini memiliki dua buah varian yaitu :
1. Maximum Sort
memilih data yang maksimum dari suatu kumpulan data larik, lalu menempatkan data tersebut ke elemen paling akhir atau paling awal sesuai pengurutan yang diinginkan. Data maksimum/minimum yang diperoleh, “diisolasi” dan tidak diikutsertakan pada proses pencarian data maksimum berikutnya.
2. Minimum Sort
memilih data yang minimum dari suatu kumpulan data larik , lalu menempatkan data tersebut ke elemen paling akhir atau paling awal sesuai pengurutan yang diinginkan. Data minimum yang diperoleh, “diisolasi” dan tidak diikutsertakan pada proses pencarian data minimum berikutnya.
Dalam pemecahan masalah algoritma selection sort , kita dapat memilih dua metode alternatif algoritma antara lain pemecahan dengan metode Brute Force dan pemecahan dengan metode devide and conquer.
Metode Pemecahan Brute Force
Kekuatan algoritma brute force terletak pada kemampuannya untuk menemukan semua pemecahan masalah yang mungkin, akan tetapi langkah yang dibutuhkan sangat banyak sehingga tidak baik jika digunakan untuk memecahkan masalah yang memiliki masukan yang cukup besar.

Selasa, 12 Juni 2012

SOLAR TRACKER (tugas 3)



Sistem Rangkaian Sensor Peka Cahaya



Pada alat ini menggunakan empat buah sensor peka cahaya LDR yang dipasang sebagai pelacak arah fokus datangnya sinar matahari, di mana ke empat sensor tersebut membentuk formasi layang-layang sama sisi dan di tengahnya terdapat sebuah LDR lagi yang berfungsi sebagai pembanding kuat cahaya yang diterima oleh masing-masing sensor pada kondisi terfokusnya. Pada kondisi sebuah sensor mempunyai kepekaan terkuat maka tracker akan bergerak menuju arah tersebut hingga didapatkan suatu kondisi kepekaan sensor terkuat tersebut sama dengan kepekaan yang diterima oleh sensor yang ditengah sebagai pembandingnya. Pada aplikasinya keempat sensor tersebut masing-masing dihubungkan dengan komparator pada input inverting, sementara sensor yang di tengah dihubungkan pada keempat komparator tersebut pada input non invertingnya.

 Gambar 2 Skematik Posisi dan Sistem Rangkaian Sensor

Berdasar prinsip kerja LDR dimana pada kondisi mendapatkan cahaya maka tahanannya turun, sehingga dengan metode rangkaian diatas pada LDR yang mendapatkan kuat cahaya terbesar maka tegangan yang dihasilkan adalah tertinggi. Masing-masing tegangan keluaran LDR terhubung dengan terminal inverting rangkaian komparator. Sehingga dengan sistem rangkaian diatas, komparator akan menghasilkan logika tinggi jika salah satu dari ke empat LDR mempunyai tegangan keluaran lebih besar dari tegangan keluaran pembadingnya. Logika keluaran rangkaian komparator inilah yang digunakan sebagai sinyal informasi bagi rangkaian pemrograman untuk menggerakkan motor DC menuju arah LDR dengan tegangan terbesar tersebut. Dengan demikian Tracker akan mencari sumber cahaya terkuat hingga didapatkan kondisi tegangan keluaran LDR pembanding sama atau bahkan lebih besar dari keempat LDR yang dituju tersebut. Pada kondisi ini keluaran komparator berlogika rendah sehingga melalui pemrograman pada mikrokontroller putaran motor DC akan dihentikan.


SISTEM MINIMUM MIKROKONTROLER AT89S52


Dalam menjalankan chip IC mikrokontroler MCS-51 memerlukan komponen elektronika pendukung lainnya. Suatu rangkaian yang paling sederhana dan minim komponen pendukungnya disebut sebagai suatu rangkaian sistem minimum. Dalam perancangan Tugas Akhir ini, sistem minimum mikrokontroler AT89S52 terdiri dari:

1. Chip IC mikrokontroler AT89S52 keluarga MCS-51
2. Kristal 12 MHz
3. Kapasitor
4. Resistor


Gambar 3 Sistem Minimum Mikrokontroler AT89S52
 

 
Gambar 4 Diagram Alir Mikrokontroller sebagai Penggerak Solar Tracker
Berdasar diagram alir yang disusun diatas maka dapat dirancang suatu metode pemrograman berbahasa assembler sebagai proses pengalamatan data komparator.



PERANCANGAN RANGKAIAN DRIVER

Rangkaian driver dirancang untuk mengaktifkan motor DC sebagai penggerak solar tracker. Kombinasi rangkaian driver ini dirancang supaya motor DC dapat berputar forward-reverse, menyesuaikan input program yang bekerja berdasar pembacaan sinyal dari LDR. Rangkaian driver ini diperlukan untuk memberikan pemisahan tegangan kontrol sebesar 5 volt yang dihasilkan dari keluaran mikrokontroller menjadi tegangan sesuai yang dibutuhkan oleh motor DC tersebut. Untuk merealisasi ide ini dilakukan dengan menggunakan transistor yang memanfaatkan tegangan kecil dari mikrokontroller sebagai pemicu dioda masukannya dan memberikan tegangan yang relatif lebih besar pada transistor keluarannya. Metode reverse-foreward pada cara kerja motor DC dilakukan dengan membalik arah arus yang melalui motor, hal ini direalisasikan dengan menempatkan empat buah relay sebagai pembentuk arah arus dimana relay digerakkan dari sebuah driver BD 139 yang memicu transistor D 313.
Gambar 5 Rangkaian Driver

Driver pada rangkaian diatas menggunakan BD 139 untuk memicu transistor D 313 pada rangkaian daya penggerak motor DC. Untuk setiap motor dengan arah gerakan referse forward digerakkan dengan menggunakan empat buah relay (C1, C2, C3, C4) sebagai saklar daya yang membentuk kuadrant arah arus yang masuk pada polaritas motor. Dimana C1 dan C2 aktif bersama sebagai pemicu forward motor DC, dan C3 dan C4 aktif bersama sebagai pemicu reverse motor DC. Dengan konfigurasi rangkaian seperti pada gambar diatas maka dapat daiuraikan prinsip kerja aliran arus sebagai penggerak motor sebagai berikut, saklar C1 dan C2 mengalami kondisi ON – OFF secara bersama-sama demikian juga saklar C3 dan C4 karena keduanya dipicu dari sebuah transistor. Pada saat transistor S1 mendapatkan pulsa maka relay C1 dan C2 ON menyebabkan masing-masing kontak nya terhubung ke NO sehingga motor pada sisi “a” menuju C1 terhubung ground dan motor pada sisi “b” menuju C2 terhubung tegangan VCC. Kondisi ini menyebabkan motor berputar pada arah tertentu (sebut saja kanan). Pada saat transistor S2 mendapatkan pulsa maka relay C3 dan C4 ON menyebabkan masing-masing kontaknya terhubung ke NO sehingga motor pada sisi “a” menuju C4 terhubung tegangan VCC dan motor pada sisi “b” menuju C3 terhubung ground. Kondisi ini menyebabkan motor berputar pada arah sebaliknya. Dengan demikian berdasarkan pemicuan pulsa pada transistor 1 dan 2 akan mengaktifkan ke empat relay tersebut untuk membuat suatu kondisi motor berputar pada dua arah yang saling berlawanan. Sedangkan pada BD 139 sendiri memiliki cara kerja dimana ketika tegangan dari output mikrokontroller memicu dioda led pada pin 1, dioda tersebut akan memancarkan sinar yang diterima oleh fototransistor sehingga transistor pada sisi keluaran BD 139 menutup, hal ini menyebabkan arus pada sumber (VCC) mengalir dari Kolektor menuju Emitor dan memicu transistor.


Untuk memnggerakan solar cell nya itu sendiri dapat juga menggunakan listing program menggerakkan motor stepper full step. Listing program ini dimaksudka  agar dapat bergerak sesuai derajat yang diinginkan.
MOV dx,ff13
MOV al,80
Outbdx,al
Mov dx.ff10
MOV cx,32
* PUSH cx
MOV si,200
MOV cx,4
* Push cx
MOV al,[si]
Out dx,al
MOV cx,7fff
Loop A
Pop cx
Inc si
Loop
Pop cx
Loop
Int 85