Minggu, 30 Oktober 2011

Algoritma Menyusun Balok (Quiz I)

Permasalahan

Diketahui Balok yang ditumpuk di bejana A tidak teratur, bagaimana cara memindahkan balok balok tersebut ke Bejana C dengan susunan yang berurut dari kecil ke besar. Tentukan dengan metode-metode algoritma yang ada dengan menjelaskan komponen di bawah ini: 
  1. Himpunan kandidat
  2. Himpunan solusi
  3. Fungsi seleksi 
  4. Fungsi kelayakan
  5. Fungsi Objektif

    Gambar 1. Permasalahan 

1. Himpunan Kandidat
    Himpunan yang berisi elemen pembentuk solusi. Pada kasus ini himpunan kandidatnya adalah

Gambar 2. Himpunan Kandidat
 

2. Himpunan Solusi
    Himpunan yang terpilih sebagai solusi persoalan. pada kasus ini himpunan solusi sama dengan himpunan kandidat, jadi elemen-elemennya sama seperti balok-balok pada bejana C. yaitu

Gambar 3. Himpunan Solusi


3. Fungsi Seleksi
    Fungsi yang memilih kandidat yang paling mungkin untuk mencapai solusi optimal.

4. Fungsi Kelayakan
    Fungsi yang memeriksa apakah suatu kandidat yang dipilih dapat memberikan solusi yang layak. Maksudnya yaitu apakah kandidat tersebut bersama dengan himpunan solusi yang sudah terbentuk tidak melanggar kendala yang ada. Pada Kasus ini fungsi kelayakannya salah satunya yaitu :


1. Bandingkan balok paling atas dari bejana A dengan balok paling atas di Bejana C,

 Gambar 4. Membandingkan Balok di A dengan Balok di C
  
2. Jika balok di bejana A lebih besar dari balok di C maka pindahkan Balok C (jika bejana C tidak kosong) ke bejana B dan pindahkan balok A  paling atas itu ke Bejana C.

 Gambar 5. Memindahkan Balok [1] dari A ke C

3. Jika pada saat dibandingkan ternyata Balok dari bejana A lebih kecil dari balok paling atas dari bejana C, maka pindahkan balok A itu ke bejana B.

  Gambar 6. Memindahkan Balok [1] dari C ke B dan Balok [4] dari A ke C
 
 Gambar 7. Memindahkan Balok [2] dari A ke B

Gambar 8. Memindahkan Balok [3] dari A ke B

Gambar 9. Memindahkan Balok [4] dari C ke B dan Balok [5] dari A ke C
 
  Gambar 10. Memindahkan Balok [5] dari C ke B dan Balok [6] dari A ke C

Gambar 11. Memindahkan Balok [3] dari A ke B

4. Lakukan sampai Bejana A kosong.

  Gambar 12. Bejana A Kosong

5. Jika sudah kosong, Bandingkan Balok paling atas di Bejana B dengan Balok paling atas di Bejana C.

6. Jika Balok di Bejana B lebih kecil dari pada Balok di C maka pindahkan balok di B ke bejana C.

Gambar 13. Memindahkan Balok [3] dari B ke C
7. Jika Balok di Bejana B lebih besar dari pada balok di C, maka pindahkan Balok paling atas di bejana C ke bejana A.

  Gambar 14. Memindahkan Balok [3] dari C ke A dan Balok [5] dari B ke C


8. Jika Bejana A tidak kosong, maka Balok di bejana B dibandingkan dengan balok di A.

9. Jika Balok di B lebih besar maka bandingkan dengan balok di C jika lebih kecil maka pindahkan balok tersebut ke Bejana C.

  Gambar 15. Memindahkan Balok [4] dari B ke C
Gambar 16. Memindahkan Balok [3] dari B ke C

10. Jika pada saat balok di B dibandingkan dengan balok di bejana A ternyata Balok di B lebih kecil daripada balok di A maka pindahkan Balok Di A ke bejana C.

Gambar 17. Memindahkan Balok [3] dari A ke C

11. Jika Balok A kosong, maka lakukan cara ke 5 sampai balok di bejana B kosong.
 Gambar 18. Memindahkan Balok [2] dari B ke C

 Gambar 19. Memindahkan Balok [1] dari B ke C

Gambar 20. Hasil

5. Fungsi Objektif
Fungsi yang mengembalikan nilai boolean. True jika himpunan solusi yang sudah tebentuk merupakan solusi yang lengkap; False jika himpunan solusi belum lengkap.Pada kasus ini fungsi objektifnya :
Gambar 21. Fungsi Objektif
   

Selasa, 27 September 2011

Notasi Algoritmik

Algoritma adalah suatu himpunan hingga dari instruksi-instruksi yang secara jelas memperinci langkah-langkah proses pelaksanaan, dalam pemecahan suatu masalah tertentu, atau suatu kelas masalah tertentu, dengan dituntut pula bahwa himpunan instruksi tersebut dapat dilaksanakan secara mekanik (Team Gunadarma :1988).

Dalam suatu penulisan algoritma terkadang kita sulit untuk mengerti dan memahami maksud dari algoritma tersebut. Selain itu juga kita sulit untuk menuliskan algoritmanya. Untuk itu agar mempermudahnya dapat dilakukan notasi – notasi algoritma. Notasi algoritma merupakan rancangan penyelesaian masalah (algoritma) yang dituliskan ke dalam notasi (cara penulisan khusus).

Notasi algoritma yang sering dijumpai ada 3 macam yaitu :
  • Notasi deskriptif, yaitu dengan cara menuliskan langkah-langkah penyelesaian masalah dengan kalimat- kalimat yang jelas dan deskriptif disertai dengan urutan (nomor urut) yang jelas. Selain itu juga Dengan notasi ini, deskripsi setiap langkah dijelaskan dengan bahasa yang jelas. Notasi ini cocok untuk algoritma yang pendek, namun untuk masalah yang algoritmanya besar, notasi ini jelas tidak efektif. Selain itu, pengkonversian notasi algoritma ke notasi bahasa pemrograman cenderung relatif sukar.
          Contoh :

          Algoritma Bilangan_Maksimum
          Diberikan tiga buah bilangan bulat. Carilah bilangan bulat maksimum diantara ketiga bilangan tersebut.

          Deskripsi :
          (1)  baca bilangan 1
          (2)  baca bilangan 2
          (3)  bandingkan bilangan 1 dan bilangan 2, kita ambil yang lebih besar, jika kedua bilangan tersebut
                sama besar, dapat kita ambil bilangan 1, dan sebut bilangan tersebut MAX
          (4)  baca bilangan 3
          (5)  bandingkan MAX dengan bilangan 3, dan pilih yang lebih besar, jika keduanya sama besar, pilih
                 MAX dan sebut bilangan tersebut MAX.
          (6)  keluarkan sebagai output MAX
  • Notasi bagan alir (flow chart), yaitu algoritma menggunakan bagan alir dengan memanfaatkan bentuk-bentuk geometri seperti persegi panjang, jajaran genjang, lingkaran dan sebagainya. Sama halnya dengan notasi deskriptif, notasi ini cocok untuk algoritma yang pendek, namun untuk masalah yang algoritmanya besar, notasi ini jelas tidak efektif. Selain itu, pengkonversian notasi algoritma ke notasi bahasa pemrograman cenderung relatif sukar.
          Contoh :

         Algoritma Bilangan_Maksimum
         Diberikan tiga buah bilangan bulat. Carilah bilangan bulat maksimum diantara ketiga bilangan tersebut.

         Deklarasi :
         Bil1,Bil2,Bil3 : integer {bilangan yang dicari maksimumnya}
         MAX      : integer {variabel bantu}

         Deskripsi :
         Read (Bil1,Bil2)
         If Bil1 >= Bil 2 then
         Bil1 = MAX
         Else Bil2 = MAX
         Read (Bil3)
         If Bil3 >= MAX then
         Bil3 = MAX
         Write (MAX) 
  • Notasi pseudo-code, yaitu notasi algoritma yang praktis dan mirip dengan bahasa pemrograman tingkat tinggi seperti Pascal. Banyak notasi pseudo-code yang digunakan oleh para ahli komputer dan berbeda-beda sehingga tidak ada aturan baku dalam penulisan pseudo-code ini, tetapi yang paling banyak digunakan dalam algoritma pemrograman adalah yang mendekati bahasa pascal. Keuntungan menggunakan notasi pseudo code adalah kemudahan mengkonversinya lebih tepat yang disebut mentranslasi ke notasi bahasa pemrograman, karena terdapat korespondensi antara setiap pseudo code dengan notasi bahasa pemrograman.
          Contoh :

         Algoritma Bilangan_Maksimum
         Diberikan tiga buah bilangan bulat. Carilah bilangan bulat maksimum diantara ketiga bilangan tersebut. 



Sekian dan terima kasih. Semoga bermanfaat untuk para pembaca semuanya. :D

Kamis, 27 Mei 2010

Trainner Mikrokontroller Atmega Murah

Halo para hobi Elektronika, Sekarang saya telah memasarkan produk trainer mikrokontroller sederhana dan murah, tapi bagi para newbie mungkin ini sangat bermanfaat sekali untuk mencoba program2 sederhana. Berikut ini adalah gambar2 nya:




Fitur2 Dari Trainer ini antara Lain :

1. Komunikasi Serial
2. Stk 200 Include in PCB
3. ATmega 8535/32
4. ADC
5. Driver LED
6. Push Button
7. LCD (LCD Tidak dalam satu paket)
8. Power USB.
9. dll.

Untuk Harga :
Harga Board Atas                                 = Rp. 50.000
Harga Board Bawah (Sistem Minimum) = Rp. 200.000
Power Supply 5v                                   = Rp. 20.000 
Kabel Db 9                                           = Rp. 15.000
Kabel Db25                                          = Rp. 15.000 +
Total                                                       Rp. 300.000

Dapat Dijual Terpisah Atau Satu packet. Untuk Pemesanan Hub : 085624536408 Lokasi Bandung.

Rabu, 31 Maret 2010

Fungsi Dari ke 40 Pin IC Mikrokontroller ATMEGA

Pada Mikrokontroller Atmega terdapat 40 pin dimana fungsi kaki-kaki tersebut yaitu:

Pin 1 - 8 PORTB, merupakan Port I/O 8 bit dua arah dengan resistor pull-up internal. Selain sebagai Port I/O 8 bit Port B juga dapat difungsikan secara individu sebagai berikut :

     PB7 : SCK (SPI Serial Clock)
     PB6 : MISO (SPI Bus Master Input /Slave Output)
     PB5 : MOSI (SPI Bus Master Output /Slave Input)
     PB4 : SS (SPI Slave Select Input)
     PB3 : AIN1 (Analog Comparator Negatif Input)
               OC0 (Output Compare Timer/Counter) 
     PB2 : AIN0 (Analog Comparator Positif Input)
               INT2 (External Interrupt 2 Input)
     PB1 : T1 (Timer/Counter 1 External Counter Input)
     PB0 : T0 (Timer/Counter 0 external Counter Input)

PIN 9 RESET, merupakan pin reset yang akan bekerja bila diberi pulsa rendah  (aktif low ) selama minimal 1,5 us.


PIN 10 VCC, Catu Daya Digital.

PIN 11 GND, Ground untuk catu daya digital.

PIN 12 XTAL2, Merupakan output dari penguat osilator pembalik.


PIN 13 XTAL1, Merupakan input ke penguat osilator pembalik dan input ke
internal clock.

PIN 14 - 21 PORT D, merupakan Port I/O 8-bit dua arah dengan resistor pull-up internal. Selain sebagai Port i/O 8 bit port D juga dapat difungsikan secara individu sebagai berikut :

     PD7 : OC2 (Output Compare Timer/ Counter 2)
     PD6 : ICP1 (Timer/ Counter 1 Input Capture)
     PD5 : OC1A (Output Compare A Timer / Counter 1)
     PD4 : OC1B (Output Compare B Timer / Counter 1)
     PD3 : INT1 (External Interrupt 1 Input )
     PD2 : INT0 (External interrupt 0 Input)
     PD1 : TXD (USART transmit)
     PD0 : RXD (USART receive)

PIN 22 - 29  PORT C, merupakan Port I/O 8 bit dua arah dengan resistor pull-up internal. Selain sebagai Port I/O 8 bit 4 bit Port C juga dapat difungsikan secara individu sebagai berikut :
  
     PC7 : TOSC2 ( Timer Oscilator 2 )
     PC6 : TOSC1 ( Timer Oscilator 1 )
     PC1 : SDA (Serial Data Input /Output, I2C)
     PC0 : SCL (Serial Clock, I2C)

PIN 30 AVCC, merupakan catu daya yang digunakan untuk masukan analog ADC yang terhubung ke Port A.

PIN 31 GND, Ground untuk catu daya analog.


PIN 32 AREF, merupakan tegangan referensi analog untuk ADC.


PIN 33 - 40 PORT A, merupakan Port I/O 8 bit dua arah dengan resistor pull-up internal. Selain sebagai Port I/O 8 bit Port A juga dapat berfungsi sebagai masukan 8 channel ADC.

Selasa, 30 Maret 2010

Trainner Microcontroller

Haloooo para hackers....
Buat yang hobi dan mau belajar microcontroller, sekaranng di blog ini juga anda bisa dapatkan trainner microcontroller dengan harga miring. buat yang mau pesen trainner. hub 085624536408 (lokasi di Bandung). Ntar saya update harga plus foto - foto hardwarenya. Tunggu Aja. Jangan Lupa Follow blog ini untuk melihat update terbarunya.

Belajar Mikrokontroller bagi pemula. (Microcontroller for Basic)

Allhamdulillah, pada jaman sekarang ini tercipta sebuah IC (integrated Circuit) yang mampu menangani I/O yang cukup banyak. langsung aja kita belajar yu....

bagi yang baru mengenal mikrokontroller. Ini saya kasih tahu dulu mikrokontroller itu apa sih?

"microcontroller adalah sistem mikroprosesor lengkap yang terkandung di dalam sebuah chip. Mikrokontroler berbeda dari mikroprosesor serba guna yang digunakan dalam sebuah PC, karena sebuah mikrokontroler umumnya telah berisi komponen pendukung sistem minimal mikroprosesor, yakni memori dan antarmuka I/O."

setelah mengetahui arti dari mikrokontroller. selanjutnya kita lihat bentuk fisik dari mikrokontroller itu. di bawah ini merupakan gambar mikrokontroller ATMEGA 32

Rabu, 11 November 2009

Syarat Pembuatan Majalah

Pada dasarnya membuat majalah, koran, brosur, lefleat dan sejenisnya ada beberapa kesamaan dan satu tujuan bentuk formatnya.
Berdasarkan pengalaman saya sendiri banyak kesalahan-kesalahan mendasar telah dibuat oleh para desainer awam atau pemula yang nota bene asal buat, asal jadi. Padahal dari segi pembuatan majalah misalnya harus ada aturan main yg lbh spesifik misalnya jumlah halaman, standar ukuran font, pengaturan gambar, pengaturan margin dll.

Ada poin - poin penting yang berhasil saya kumpulkan dalam membuat majalah, koran, buku profil, dll. yaitu :

1. Tentukan jumlah halaman yang akan di buat, atur jumlah halaman dengan cara dibagi menjadi kelipatan 4 misalnya : 12 halaman, 16 halaman, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56 dan seterusnya. Ingat !! berapapun yang anda inginkan jumlah halaman harus genap jika dibagi menjadi 4, hal ini dikarenakan untuk menghindari kelebihan atau kekurangan beberapa halaman kosong.

2. Ukuran font standar untuk isi majalah adalah 9 - 10 point, jenis font arial, times new roman, georgia, garamound, cgtimes dll bisa menyesuaikan.

3. Ukuran font standar untuk judul berfariasi dimulai minimal 16 point ke atas

4. Hindari copy paste gambar secara langsung, gunakan fungsi file impor atau file place. yang tersedia pada coreldraw, photoshop, adobeindesign, freehand dan pagemaker.

5. Pengaturan margin akan lebih dinamis dan cantik bila menggunakan standar margin yang umumunya telah digunakan oleh media-media cetak ternama. Minimal margin left, right, top dan bottomnya dibuat 1,5 cm.

6. Gunakan resolusi 300 dpi pada seting gambar berwarna maupun grayscale (hitam putih), cara setingnya di edit dulu dengan photoshop lalu atur image sizenya menjadi 300 dpi, hal ini dilakukan untuk menghindari terjadinya gambar pecah-pecah saat akan dicetak nantinya.

7. Wajib memakai komposisi coloring CMYK dan sangat dilarang menggunakan proses RGB color, karena pada saat mencetak khusus warna mesin offset selalu menggunakan proses CMYK.

8. Dianjurkan menggunakan desain PageMaker, AdobeinDesign, atau Adobe Ilustrator bila ingin membuat sebuah majalah dalam jumlah halaman yang banyak misalnya lebih dari 20 halaman, karena jika memakai corel akan sangat mengganggu kinerja kecepatannya.

9. Format penyimpanan file gambar yang dipakai adalah PSD, TIFF, EPS, WMF.

10. Hindari penggunakan font - font ukuran kecil dibawah 5 point karena akan mempengaruhi proses ketajaman pencetakan.

11. Dianjurkan isi halaman memuat minimal 1 gambar per halamannya.