Mengenal lebih dalam tentang arduino

Belajar Arduino

1. Pengertian Arduino
“The Arduino was originally built for designers and artists – people with little technical expertise. Even without programming experience, the Arduino enabled them to create sophisticated design prototypes and some amazing interactive artworks. So, it should come as no surprise that the first steps with the Arduino are very easy, even more so for people with a strong technical background.”

Arduino merupakan mikrokontroller yang memang dirancang untuk bias digunakan dengan mudah oleh para seniman dan desainer (yang memang bukan orang teknik ). Dengan demikian, tanpa mengetahui bahasa pemrograman, Arduino bias digunakan untuk menghasilkan karya yang canggih. Hal ini seperti diungkapkan oleh Mike Schmidt.
Menurut Massimo Banzi, salah satu pendiri atau pembuat Arduino, Arduino merupakan sebah platform hardware open source yang mempunyai input/output yang sederhana.
     “Arduino is an open source physical computing platform based on a simple input/output board and a development environment that implements the processing language ( www.processing.org). Arduino can be used to develop standalone interactive objects or can be connected to software on your computer (such as Flash, Processing, VVVV, or Max/Msp). The boards can be assembled by hand or purchased preassembled; the open source IDE (Integrated Development Environment) can be downloaded for free from www.arduino.cc.”

Menggunakan Arduino sangatlah membantu dalam membuat prototyping ataupun untuk melakukan pembuatan proyek. Arduino memberikan I/O yang sudah fix dan bias digunakan dengan mudah. Arduino dapat digabungkan dengan modul elektro yang lain sehingga proses perakitan jauh lebih efisien. Para desiner hanya tinggal membuat software untuk mendayagunakan rancangan H/D yang ada. Software jauh lebih mudah untuk dimodifikasi tanpa harus memindahkan kabel.



Perusahaan yang mengembangkan system H/D open source ini, antara lain :
·         Arduino è http://www.arduino.cc
·         I-CubeX è http://www.infusionsystems.com
·         Arieh Robotics Project Junior è http://www.arobotineveryhome.com
·         Dwengo è http://www.dwengo.org
·         EmbeddedLab è http://www.embedded.arch.ethz.ch
·         GP3 è http://www.awce.com/gp3.htm

Di antara pengembang yang ada, Arduino merupakan slah satu pengembang yang banyak digunakan. Keistimewaan Arduino adalah hardware open source. Hal ini sangatlah memberi keleluasaan bagi semua orang untuk bereksperiman secara bebas dan gratis.

Arduino yang ada saat ini dikembangkan oleh beberapa orang yang luar biasa dan membentuk suatu tim. Anggota inti dari tim ini adalah :
·         Massimo Banzi Milano, Italy
·         David Cuartielles Malmoe, Sweden
·         Tom Igoe New York, US
·         Gianluca Martino Torino, Italy
·         David A. Mellis Boston, MA, USA

2. Bagian dari Arduino

Secara umum, Arduino terdiri atas dua bagian utama, yaitu :
1.       Bagian H/D
Berupa papan yang berisi I/O

2.       Bagian Software
Berupa software Arduino yang meliputi Integrated Development Environment (IDE) untuk menulis program. Arduino memerlukan instalasi driver untuk menghubungkan dengan komputer. Pada IDE terdapat contoh program dan library untuk pengembangan program. IDE software Arduino yang digunakan diberi nama Sketch.

3. Tipe Arduino

Bagi pemula, sebaiknya perlu mengetahui berbagai macam atau type Arduino yang terdapat di pasaran.
Berikut tipe-tipenya :
·         Arduino USB
Menggunakan interface USB sebagai antarmuka pemrograman atau komunikasi komputer.
Contoh : Arduino yang menggunakan interface USB untuk download kode program, yaitu :
§  Arduino Uno
§  Arduino Duemilanove
§  Arduino Diecimila
§  Arduino NG Rev. C
§  Arduino NG (Nuova Generazione)
§  Arduino Extreme dan Arduino Extreme v2
§  Arduino USB dan Arduino USB v2.0
·         Arduino Serial
Menggunakan RS232 sebagai antarmuka pemrograman atau komunikasi komputer.
Contoh : Arduino Serial dan Arduino Serial v2.0
·         Arduino Mega
Arduino jenis ini memiliki spesifikasi yang lebih tinggi, dilengkapi tambahan pin digital, pin analog, port serial, dan sebagainya.
Contoh : Arduino Mega dan Arduino Mega 2560
·         Arduino Fio
Arduino jenis ini lebih banyak digunakan untuk kegunaan nirkabel.
·         Arduino Lylypad
Arduino ini bentuknya seperti uang koin dan berukuran sangat kecil. Dengan ukuran tersebut, dapat digunakan secara fleksibel.
Contoh :
§  Lilypad Arduino 00, Lilypad Arduino 01
§  Lilypad Arduino 02, Lilypad Arduino 03, Lilypad Arduino 04
·         Arduino BT
Arduino mengandung modul Bluetooth untuk komunikas nirkabel.
·         Arduino Nano dan Arduino Mini
Arduino ini berbentuk kompak dan digunakan pada breadboard.
Contoh :
§  Arduino Nano 3.0
§  Arduino Nano 2.x
§  Arduino Mini 04
§  Arduino Mini 03

§  Arduino Stamp 02

Berikut Penjelasan Model OSI pada Jaringan Komputer

Referensi Model OSI

Mekanisme Komunikasi Data


Ada dua model yang dapat digunakan untuk menjelaskan mekanisme komunikasi data pada Jaringan Komputer, yaitu model TCP/IP dan model OSI.

Sebuah badan multinasional yang didirikan tahun 1947 yang bernama International Standards Organization (ISO) sebagai badan yang melahirkan standar-standar standar internasional. ISO ini mengeluarkan juga standar jaringan komunikasi yang mencakup segala aspek yaitu model OSI (Open System Interconnection).
Tujuan OSI ini adalah untuk membuat standar aturan komunikasi sehingga dapat terjalin interkomunikasi dari sistem yang berbeda tanpa memerlukan perubahan yang signifikan pada hardware dan software.
Lapisan OSI

Tujuh lapisan dibagi menjadi 3 sub-kelompok (subgroups).
Lapisan 1, 2 dan 3 adalah network support layer (lapisan-lapisan pendukung jaringan). 
Lapisan 5, 6 dan 7 merupakan user support layer (lapisan-lapisan pendukung pengguna).  
Lapisan 4 adalah transport layer, yang menghubungkan user support layer dan network support layer.

“Open” dalam OSI adalah untuk menyatakan model jaringan yang melakukan interkoneksi tanpa memandang perangkat keras/ “hardware” yang digunakan, sepanjang tatacara komunikasinya sesuai dengan standar. 
Hal ini secara tidak langsung menimbulkan “modularity” (dapat dibongkar pasang). 
“Modularity” mengacu pada pertukaran protokol di layer tertentu tanpa mempengaruhi atau merusak hubungan atau fungsi dari layer lainnya.
 
Modularity

Seperti contoh Jasa Antar/Kurir. “Modularity” pada level transportasi menyatakan bahwa
tidak penting, bagaimana cara paket sampai ke pesawat. 


 

Apa yang dilakukan oleh 7 layer OSI ???



Pengirim (encapsulasi)
Setiap layer menambahkan sebuah “header”, kecuali pada layer 2 yang juga
ditambahkan sebuah “trailer”.

Penerima (deencapsulasi)
Setiap “header” dan “trailer” dicopot sesuai dengan layernya.



Pertukaran data menggunakan model OSI (Terlihat Lapisan 7 yang merupakan data asli)‏

 Application Layer


Layer yang berhubungan lansung dengan pengguna.

Menyediakan fasilitas layanan jaringan kepada aplikasi pengguna.
Protokol
•HTTP (Hypertext Transfer Protokol)
•FTP (File Transfer Protocol)
•SMTP (Simple Mail Transport Protocol)
•POP3 (Post Office Protocol ver. 3)
•IMAP4 (Internet Message Protocol ver. 4)
Aplikasi pengguna
•Web server/client
•FTP server/client
•Mail server/client
  

 Presentation Layer



Mengatur format data.
Mengatur representasi dari data.
Menentukan teknik pengamanan data.
  Contoh :
•Konversi format text ASCII untuk dokumen, GIF dan JPG untuk gambar.
•Enkripsi data
Session Layer

Bertanggung jawab untuk mengendalikan dialog antar node. Suatu dialog adalah 
percakapan formal dimana dua node sepakat untuk bertukar data.
Session mempunyai tiga fase :
1)Pembentukan hubungan, menyepakati aturan-aturan komunikasi.
2)Pemindahan data, proses pertukaran data
3)Pemutusan hubungan, ketika node-node tidak lagi perlu berkomunikasi (pertukaran data telah selesai).
Komunikasi dapat berlangsung dalam tiga mode dialog :
1.Simplex
Data dikirimkan hanya kesatu arah saja menggunakan satu buah jalur (channel) komunikasi. 
2.Half Duplex
Data dapat dikirimkan kedua arah secara bergantian menggunakan satu buah jalur (channel) komunikasi. 

3.Full Duplex
Data dikirimkan dan diterima secara bersamaan menggunakan dua buah jalur (channel)   komunikasi yang berbeda.

Transport Layer



Lapisan ini memberikan pelayanan secara transparan  dalam hal error recovery dan flow control . 
Error recovery, yaitu pemulihan setelah terjadi kesalahan dalam pengiriman data, misalnya dengan mengirimkan lagi data yang tidak terkirim. 
Flow control, yaitu pengendalian arus data.

Lapisan transport menjamin bahwa data yang diberikannya pada lapisan session diatasnya dalam keadaan utuh, urut dan tanpa duplikasi serta bebas dari kesalahan.
Data pada layer ini disebut segmen.

 
Network Layer



Bertanggung jawab untuk:
Menentukan alamat jaringan.
Menentukan rute yang harus diambil selama perjalanan.
Menjaga antrian trafik di jaringan.
Data pada layer ini disebut paket.

Meneruskan paket ke jaringan yang benar disebut dengan Routing, dan peralatan yang melaksanakannya disebut router.

Data Link Layer


Lapisan ini berfungsi untuk mentranformasi paket data dari layer di atasnya menjadi sinyal data (dan sebaliknya) yang nantinya akan diteruskan ke media jaringan. Data pada layer ini disebut frame.

Pada saat data akan ditransmisikan, maka data akan dibagi menjadi frame-frame kecil, alasannya :
1)  Jaringan tertentu hanya dapat menerima  frame dengan panjang tertentu.
2)  Jenis flow control tertentu akan efisien jika frame ukurannya kecil.
3)   Agar pengiriman tidak didominasi oleh user tertentu

 
Physical Layer



  Mendefinisikan karakteristik dari media yang digunakan, meliputi:
1.Jenis media (coaxial, UTP, fiber optik, wireless)
2.Jenis sinyal (analog/digital).
3.Konektor (RG 58, RJ 45).
4.Metode encode/decode sinyal data.
Data pada lapisan ini berbentuk sinyal data.



Apa sih algoritma itu ?



Sejarah Algoritma

Algoritma adalah jantung ilmu computer atau informatika. Banyak cabang dari ilmu computer yang diacu dalam terminologi algoritma, misalnya algoritma perutean (routing) pesan didalam jaringan komputer, algoritma brensenham untuk menggambar garis lurus (bidang grafika komputer), algoritma Knuth-Morris-Pratt untuk mencari suatu pola di dalam teks (bidang information retrievel),dan lain sebagainya.

Ditinjau dari asal usul kata, kata “algoritma” sendiri mempunyai sejarah yang cukup aneh. Kata ini tidak muncul di dalam kamus Webster sampai akhir tahun 1957. Orang hanya menemukan kata algorism yang berarti proses menghitung dengan angka Arab. Anda dikatakan algorist jika Anda menggunakan angka Arab. Para ahli bahasa berusaha menemukan asal kata algorism ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal mula kata tersebut. Kata algorism berasal dari nama penulis buku Arab yang terkenal,yaitu Abu Ja’far Muhammad ibnu Musa al-Khuwarizmi (al-Khuwarizmi dibaca orang barat menjadi algorism). Al-Khuwarizmi menulis buku yang berjudul Kitab al jabar wal-muqabala,yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku itu kita juga memperoleh akar kata “aljabar”(algebra). Perubahan dari kata algorism menjadi algorithm muncul karena kata algorism sering dikelirukan dengan arithmetic,sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang sudah biasa/lumrah, maka lambat laun kata algorithm berangsur-rangsur dipakai sebagai metode perhitungan (komputasi) secara umum,sehingga kehilangan makna aslinya. Dalam Bahasa Indonesia,kata algorithm diserap menjadi “algoritma”.

Pada tahun 1950, kata algoritma pertama kali digunakan pada “algoritma Euclidean” (Euclid’s algorithm). Euclid seorang matematikawan Yunani (lahir pada tahun 350 M),dalam bukunya yang berjudul Element menuliskan langkah-langkah untuk menemukan pembagi bersama terbesar (common greatest divisor atau gcd), dari dua buah bilangan bulat, m dan n (tentu saja Euclid tidak menyebut metodenya itu sebagai algoritma, baru di abad modernlah orang-orang menyebut metodenya itu sebagai “algoritma Euclidean”). Pembagi bersama terbesar dari dua buah bilangan bulat tak-negatif adalah bilangan bulat positif terbesar yang habis membagi kedua bilangan tesebut.
Menurut Donald E Knuth dalam bukunya yang berjudul The Art of Computer Programming, sebuah algoritma harus mempunyai lima ciri penting,sebagai berikut :
1.       Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. Program yang tidak pernah berhenti mengindikasikan bahwa program tersebut berisi algoritma yang salah. 
2.       Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (ambiguous). 
3.       Algoritma memiliki nol atau lebih masukan (input). Masukan ialah besaran yang diberikan kepada algoritma untuk di proses. 
4.       Algoritma mempunyai nol atau lebih keluaran (output). Keluaran dapat berupa pesan atau besaran yang memiliki hubungan dengan masukan. 
5.       Algoritma harus sangkil (effective). Setiap langkah harus sederhana sehingga dapat dikerjakan dalam sejumlah waktu yang masuk akal.


Program dan Pemrogram

Algoritma baru efektif jika dijalankan oleh sebuah pemroses (processor). Pemroses itu bias manusia, computer, robot, mesin, dan sebagainya. Pemroses membaca setiap instruksi di dalam algoritma lalu mengerjakannya. Suatu pemroses harus :

     1.      Mengerti setiap langah dalam algoritma. 
     2.      Mengerjakan operasi yang bersesuaian dengan langkah 
          tersebut.


Kita memfokuskan pemroses algoritma adalah komputer. Komputer adalah alat bantu untuk menjalankan perintah-perintah di dalam algoritma yang telah “dimasukkan” ke dalamnya. Agar komputer mengerti perintah yang dimaksudkan, maka perintah tersebut harus ditulis dalam bahasa yang dipahami olehnya. Oleh karena itu, algorisma harus ditulis dalam bahasa khusus, yaitu bahasa komputer. Algoritma yang ditulis dalam bahasa komputer dinamakan program. Bahasa komputer yang digunakan dalam menulis program dinamakan bahasa pemrograman. Orang yang membuat program komputer disebut pemrogram, dan kegiatan merancang dan menulis program disebut pemrograman. Di dalam pemrograman ada aktivitas menulis kode program, kegiatan ini dinamakan coding.

Secara garis besar komputer tersusun atas empat komponen utama : piranti masukan, piranti keluaran, unit pemroses utama, dan memori. Unit pemroses utama ( Central Processing Unit – CPU ) adalah “otak” komputer, yang berfungsi mengerjakan operasi-operasi dasar seperti operasi  perbandingan, operasi perhitungan, operasi membaca dan operasi menulis. Memori adalah komponen yang berfungsi menyimpan atau mengingat-ingat. Yang disimpan di dalam memori adalah program (berisi operasi-operasi yang akan dikerjakan oleh CPU) dan data atau informasi (sesuatu yang diolah oleh operasi-operasi). Piranti masukan dan keluaran ( I/O devices) adalah alat yang memasukkan data atau program ke dalam memori, dan alat yang digunakan komputer untuk mengomunikasikan hasil-hasil aktivitasnya. Contoh piranti masukan antara lain papan ketik ( keyboard ), pemindai (scanner), tetikus (mouse), joystick, dan cakram (disk). Contoh piranti keluaran adalah layar peraga (monitor), printer, plotter, dan cakram.