Anda di halaman 1dari 32

I“.5IñA0GFAIñ#.

f1
i*5RTIXAN
BAB 1. PENGENALAN PEMROGRAMAN KOMPUTER
1.1 Tujuan

Bagian ini akan membahas dasar – dasar komponen dari komputer meliputi
hardware (perangkat keras) dan software (perangkat lunak). Kami juga akan
menyertakan gambaran global tentang bahasa pemrograman dan sirkulasi
pemrograman. Akan dibahas pula pada akhir pembahasan ini mengenai sistem dan
konversi numerik.
Pada akhir pembahasan, diharapkan pembaca dapat :
• Mengindentifikasi perbedaan komponen pada komputer
• Mengetahui tentang bahasa pemrograman komputer dan kategorinya
• Mengetahui alur kerja pembuatan program dan mengaplikasikannya pada
pemecahan masalah
• Mengetahui tentang sistem numerik dan metode konversinya.

1.2 Pendahuluan

Kata komputer berasal dari bahasa Latin yaitu Computare yang artinya
menghitung. Dalam bahasa Inggris disebut to compute. Secara definisi komputer
diterjemahkan sebagai sekumpulan alat elektronik yang saling bekerja sama, dapat
menerima data (input), mengolah data (proses) dan memberikan informasi
(output) serta terkoordinasi dibawah kontrol program yang tersimpan di
memorinya. Jadi cara kerja komputer dapat kita gambarkan sebagai berikut :

Komputer memiliki dua komponen utama. Yang pertama adalah hardware


(perangkat keras) yang tersusun atas komponen elektronik dan mekanik.
Komponen utama yang lain yaitu software (perangkat lunak). Komponen ini
terdiri atas data dan aplikasi – aplikasi komputer.

Modul Pemrograman Pelatihan UK Robotika dan Otomasi Universitas Negeri


Padang | 2018
1.3 Komponen Dasar Komputer

1.3.1 HARDWARE

1.3.1.1 Central Processing Unit (CPU)

Processor, merupakan bagian dari perangkat keras komputer yang melakukan


pemprosesan aritmatika dan logika serta pengendalian operasi komputer secara
keseluruhan. Prosesor terdiri atas dua bagian utama, yaitu ALU (Arithmetic Logic
Unit) dan Control Unit. Kecepatan kerja prosesor biasanya ditentukan oleh
kecepatan clock dari Control Unit-nya.
Contoh : jika prosesor memiliki frekuensi clock 350 MHz, berarti kecepatan
6 -8
pemprosesan satu instruksinya = T = 1/f = 1/(350 x 10 Hz), = 0,286 x 10 detik.
1.3.1.2 Memori

Memori adalah media penyimpan data pada komputer. Memory, berdasarkan


fungsinya dibagi menjadi dua yaitu :

a. Primary Memory
Dipergunakan untuk menyimpan data dan instruksi dari program yang sedang
dijalankan. Biasa juga disebut sebagai RAM. Karakteristik dari memori primer
adalah :
o Volatil (informasi ada selama komputer bekerja. Ketika komputer
dipadamkan, informasi yang disimpannya juga hilang)
o Berkecepatan tinggi
o Akses random (acak)

b. Secondary Memory
Dipergunakan untuk menyimpan data atau program biner secara permanen.
Karakteristik dari memori sekunder adalah
o Non volatil atau persisten
o Kecepatan relatif rendah (dibandingkan memori primer)
o Akses random atau sekuensial
Contoh memori sekunder : floppy, harddisk, CD ROM, magnetic tape, optical
disk, dll. Dari seluruh contoh tersebut, yang memiliki mekanisme akses sekuensial
adalah magnetic tape.
1.3.1.3 Input Dan Output Device

Input-Output Device, merupakan bagian yang berfungsi sebagai penghubung


antara komputer dengan lingkungan di luarnya. Dapat dibagi menjadi dua
kelompok, yaitu

a. Input Device (Piranti Masukan)


Berfungsi sebagai media komputer untuk menerima masukan dari luar.
Beberapa contoh piranti masukan :
o Keyboard
o Mouse
o Touch screen
o Scanner
o Camera

b. Output Device (Piranti Keluaran)


Berfungsi sebagai media komputer untuk memberikan keluaran.
Beberapa contoh piranti keluaran :
o Monitor
o Printer
o Speaker
o Plotter

1.3.2 Software

Merupakan program-program komputer yang berguna untuk menjalankan suatu


pekerjaan sesuai dengan yang dikehendaki. Program tersebut ditulis dengan
bahasa khusus yang dimengerti oleh komputer. Program dapat dianalogikan
sebagai instruksi yang akan dijalankan oleh prosessor. Software terdiri dari
beberapa jenis, yaitu :

1. Sistem Operasi, seperti DOS, Unix, Novell, OS/2, Windows.


Adalah software yang berfungsi untuk mengaktifkan seluruh perangkat yang
terpasang pada komputer sehingga masing-masingnya dapat saling
berkomunikasi. Tanpa ada sistem operasi maka komputer tidak dapat
difungsikan sama sekali.

2. Program Utility, seperti Norton Utility, Scandisk, PC Tools.


Program utility berfungsi untuk membantu atau mengisi
kekurangan/kelemahan dari system operasi, misalnya PC Tools dapat
melakukan perintah format sebagaimana DOS, tapi PC Tools mampu
memberikan keterang dan animasi yang bagus dalam proses pemformatan.
File yang telah dihapus oleh DOS tidak dapat dikembalikan lagi tapi dengan
program bantu hal ini dapat dilakukan.
3. Program Aplikasi, seperti GL, MYOB, Payroll.
Merupakan program yang khusus melakukan suatu pekerjaan tertentu, seperti
program gaji pada suatu perusahaan. Maka program ini hanya digunakan oleh
bagian keuangan saja tidak dapat digunakan oleh departemen yang lain.
Umumnya program aplikasi ini dibuat oleh seorang programmer komputer
sesuai dengan permintaan/kebutuhan seseorang/lembaga/perusahaan guna
keperluan interennya.

4. Program Paket
Merupakan program yang dikembangkan untuk kebutuhan umum, seperti:
o Pengolah kata /editor naskah : Wordstar, MS Word, Word Perfect, AmiPro
o Pengolah angka / lembar kerja : Lotus123, MS Excell, QuattroPro, dll
o Presentasi : MS PowerPoint
o Desain grafis : CorelDraw, PhotoShop

5. Compiler.
Komputer hanya memahami satu bahasa, yaitu bahasa mesin. Bahasa mesin
adalah terdiri dari nilai 0 dan 1. Sangatlah tidak praktis dan efisien bagi
manusia untuk membuat program yang terdiri dari nilai 0 dan 1, maka
dicarilah suatu cara untuk menterjemahkan sebuah bahasa yang dipahami oleh
manusia menjadi bahasa mesin. Dengan tujuan inilah, diciptakan compiler.

1.4 Sekilas Bahasa Pemrograman

1.4.1 Apa yang Disebut Bahasa Pemrograman?

Bahasa pemrograman adalah teknik komunikasi standar untuk mengekspresikan


instruksi kepada komputer. Layaknya bahasa manusia, setiap bahasa memiliki tata
tulis dan aturan tertentu.
Bahasa pemrograman memfasilitasi seorang programmer untuk secara spesifik
apa yang akan dilakukan oleh komputer selanjutnya, bagaimana data tersebut
disimpan dan dikirim, dan apa yang akan dilakukan apabila terjadi kondisi yang
variatif.
Bahasa pemrograman dapat diklasifikasikan menjadi tingkat rendah, menengah,
dan tingkat tinggi. Pergeseran tingkat dari rendah menuju tinggi menunjukkan
kedekatan terhadap ”bahasa manusia”.

1.4.2 Kategori Bahasa Pemrograman

1. Bahasa Pemrograman Tingkat Tinggi


Merupakan bahasa tingkat tinggi yang mempunyai ciri-ciri mudah dimengerti
karena kedekatannya terhadap bahasa sehari – hari. Sebuah pernyataan
program diterjemahkan kepada sebuah atau beberapa mesin dengan
menggunakan compiler.
Sebagai contoh adalah : JAVA, C++, .NET
2. Bahasa Pemrograman Tingkat Rendah
Bahasa pemrograman generasi pertama. Bahasa jenis ini sangat sulit
dimengerti karena instruksinya menggunakan bahasa mesin. Disebut juga
dengan bahasa assembly merupakan bahasa dengan pemetaan satu – persatu
terhadap instruksi komputer. Setiap intruksi assembly diterjemahkan dengan
menggunakan assembler.

3. Bahasa Pemrograman Tingkat Menengah


Dimana penggunaan instruksi telah mendekati bahasa sehari – hari, walaupun
masih cukup sulit untuk dimengerti karena menggunakan singkatan –
singkatan seperti STO yang berarti simpan (STORE) dan MOV yang artinya
pindah (MOVE). Yang tergolong dalam bahasa ini adalah Fortran.

1.5 Alur Pembuatan Program

Seorang programmer tidak melakukan pembuatan dan pengkodean program


secara begitu saja, namun mengikuti perencanaan dan metodologi yang terstruktur
yang memisahkan proses suatu aplikasi menjadi beberapa bagian.
Berikut ini langkah – langkah sistematis dasar dalam menyelesaikan
permasalahan pemrograman :
1. Mendefiniskan masalah
2. Menganalisa dan membuat rumusan pemecahan masalah
3. Desain Algoritma dan Representasi
4. Pengkodean, Uji Coba dan pembuatan dokumentasi

Untuk memahami langkah dasar dalam pemecahan masalah dalam sebuah


komputer mari kita mendefinisikan sebuah permasalahan yang akan diselesaikan
langkah demi langkah sebagaimana metodologi pemecahan masalah yang akan
dibahas selanjutnya. Masalah yang akan kita selesaikan akan didefinisikan pada
bagian selanjutnya.

1.5.1 Definisi Permasalahan

Seorang programmer umumnya mendapatkan tugas berdasarkan sebuah


permasalahan. Sebelum sebuah program dapat terdesain dengan baik untuk
menyelesaikan beberapapermasalahan, masalah – masalah yang terjadi harus
dapat diketahui dan terdefinisi dengan baik untuk mendapatkan detail persyaratan
input dan output. Sebuah pendefinisan yang jelas adalah sebagian dari
penyelesaian masalah. Pemrograman komputer mempersyaratkan untuk
mendefiniskan program terlebih dahulu sebelum membuat suatu penyelesaian
masalah. Mari kita definisikan sebuah contoh permasalahan :

”Buatlah sebuah program yang akan menampilkan berapa kali sebuah nama
tampil pada sebuah daftar”
1.5.2 Analisa Permasalahan

Setelah sebuah permasalahan terdefinisi secara memadai, langkah paling ringkas


dan efisien dalam penyelesaian harus dirumuskan.
Umumnya, langkah berikutnya meliputi memecahkan masalah tersebut menjadi
beberapa bagian kecil dan ringkas.

Contoh masalah :
Menampilkan jumlah kemunculan sebuah nama pada daftar

Input Terhadap Program :


Daftar Nama, Nama yang akan dicari

Output Dari Program :


Jumlah kemunculan nama yang dicari

1.5.3 Desain Algoritma dan Representasi


Setelah kita mengetahui dengan baik dan jelas mengenai permasalahan yang ingin
diselesaikan, langkah selanjutnya yaitu membuat rumusan algoritma untuk
menyelesaikan permasalahan. Dalam pemrograman komputer penyelesaian
masalah didefinisikan dalam langkah demi langkah. Algoritma adalah urutan
langkah – langkah logis penyelesaian masalah yang disusun secara sistematis dan
logis. Logis merupakan kunci dari sebuah algoritma. Langkah – langkah dalam
algoritma harus logis dan bernilai benar atau salah. Algoritma dapat diekpresikan
dalam bahasa manusia, menggunakan presentasi grafik melalui sebuah FlowChart
(diagram alir) ataupun melalui PseudoCode yang menjembatani antara bahasa
manusia dengan bahasa pemrograman. Berdasarkan permasalahan yang terjadi
pada bagian sebelumnya, bagaimanakah kita dapat memberikan solusi
penyelesaian secara umum dalam sebuah alur yang dapat dengan mudah
dimengerti?

Mengekspresikan cara penyelesaian melalui bahasa manusia :

1. Tentukan daftar nama


2. Tentukan nama yang akan dicari, anggaplah ini merupakan sebuah kata
kunci
3. Bandingkan kata kunci terhadap setiap nama yang terdapat pada daftar
4. Jika kata kunci tersebut sama dengan nama yang terdapat pada daftar,
tambahkan nilai 1 pada hasil perhitungan
5. Jika seluruh nama telah dibandingkan, tampilkan hasil perhitungan (output)
Mengekspresikan cara penyelesaian melalui FlowChart :

1.5.3.1 Simbol Flowchart dan Artinya

Flowchart adalah representasi grafis dari langkah – langkah yang harus diikuti
dalam menyelesaikan suatu permasalahan yang terdiri atas sekumpulan simbol,
dimana masing – masing simbol merepresentasikan kegiatan tertentu. Flowchart
diawali dengan penerimaan input dan diakhiri dengan penampilan output. Sebuah
flowchart pada umumnya tidak menampilkan instruksi bahasa pemrograman,
namun menetapkan konsep solusi dalam bahasa manusia ataupun notasi
matematis. Berikut ini akan dibahas tentang simbol – simbol yang digunakan
dalam menyusun flowchart, kegiatan yang diwakili serta aturan yang diterapkan
dalam penggunaan simbol tersebut :
Gambar 3. Tabel simbol flowchart

1.5.4 Pengkodean, Uji Coba dan Pembuatan Dokumentasi

Setelah membentuk algoritma, maka proses pengkodean dapat dimulai.


Menggunakan algoritma sebagai pedoman, maka kode program dapat ditulis
sesuai bahasa pemrograman yang dipilih. Setelah menyelesaikan seluruh kode
program, langkah selanjutnya yaitu menguji program tersebut apakah telah
berfungsi sesuai tujuannya untuk memberikan suatu solusi untuk menyelesaikan
suatu masalah. Bilamana terjadi kesalahan – kesalahan logika atas program,
disebut juga sebagai bugs, maka kita perlu untuk mengkaji ulang rumusan /
algoritma yang telah dibuat, kemudian memperbaiki implementasi kode program
yang mungkin keliru. Proses ini disebut dengan debugging. Terdapat dua tipe
kesalahan (errors) yang akan dihadapi seorang programmer. Yang pertama adalah
compile-time error, dan yang kedua adalah runtime error. Compile-time errors
muncul jika terdapat kesalahan penulisan kode program. Compiler akan
mendeteksi kesalahan yang terjadi sehingga kode tersebut tidak akan bisa
dikompilasi. Terlupakannya penulisan semi-colon (;) pada akhir sebuah
pernyataan program atau kesalahan ejaan pada beberapa perintah dapat disebut
juga sebagai compile – time error. Compiler tidaklah sempurna sehingga tidak
dapat mengidentifikasi seluruh kemungkinan kesalahan pada waktu kompilasi.
Umumnya kesalahan yang terjadi adalah kesalahan logika seperti perulangan tak
berakhir. Tipe kesalahan ini disebut dengan runtime error. Sebagai contoh,
penulisan kode pada program terlihat tanpa kesalahan, namun pada saat anda
menelusuri struktur logika kode tersebut, bagian yang sama pada kode tereksekusi
berulang – ulang tanpa akhir. Pada kasus tersebut compiler tidak cukup cerdas
untuk menangkap kesalahan tipe ini pada saat proses kompilasi. Sehingga saat
program dijalankan, aplikasi atau bahkan keseluruhan komputer mengalami hang
karena mengalami proses perulangan yang tidak berakhir. Contoh lain dari run-
time errors adalah perhitungan atas nilai yang salah, kesalahan penetapan kondisi
dan lain sebagainya. Untuk memudahkan dalam memeriksa suatu kesalahan suatu
program ataupun memahami jalannya program, kita juga perlu membuat suatu
dokumentasi dari program yang dibuat. Dokumentasi tersebut berisi informasi
mulai dari tujuan dan fungsi program, algoritma, serta cara penggunaannya.

1.6 Sistem Numerik dan Konversi

Bilangan dapat disajikan dalam beberapa cara. Cara penyajiannya tergantung pada
Basis (BASE) bilangan tersebut. Terdapat 4 cara utama dalam penyajian bilangan.

1.6.1 Sistem Bilangan Desimal

Manusia umumnya menggunakan bilangan pada bentuk desimal. Bilangan


desimal adalah sistem bilangan yang berbasis 10. Hal ini berarti bilangan –
bilangan pada sistem ini terdiri dari 0 sampai dengan 9. Berikut ini beberapa
contoh bilangan dalam bentuk desimal :
12610 (umumnya hanya ditulis 126)
1110 (umumnya hanya ditulis 11)

1.6.2 Sistem Bilangan Biner

Bilangan dalam bentuk biner adalah bilangan berbasis 2. Ini menyatakan bahwa
bilangan yang terdapat dalam sistem ini hanya 0 dan 1. Berikut ini contoh
penulisan dari bilangan biner :
11111102
10112

1.6.3 Sistem Bilangan Oktal


Bilangan dalam bentuk oktal adalah sistem bilangan yang berbasis 8. Hal ini
berarti bilangan – bilangan yang diperbolehkan hanya berkisar antara 0 – 7.
Berikut ini contoh penulisan dari bilangan oktal :
1768
138
1.6.4 Sistem Bilangan Heksadesimal

Bilangan dalam sistem heksadesimal adalah sistem bilangan berbasis 16. Sistem
ini hanya memperbolehkan penggunaan bilangan dalam skala 0 – 9, dan
menggunaan huruf A – F, atau a – f karena perbedaan kapital huruf tidak memiliki
efek apapun. Berikut ini contoh penulisan bilangan pada sistem heksadesimal :
7E16

1.6.5 Konversi

1.6.5.1 Desimal ke Biner / Biner ke Desimal

Untuk mengubah angka desimal menjadi angka biner digunakan metode pembagian
dengan angka 2 sambil memperhatikan sisanya. Ambil hasil bagi dari proses
pembagian sebelumnya, dan bagi kembali bilangan tersebut dengan angka 2. Ulangi
langkah – langkah tersebut hingga hasil bagi akhir bernilai 0 atau 1. Kemudian susun
nilai – nilai sisa dimulai dari nilai sisa terakhir sehingga diperoleh bentuk biner dari
angka bilangan tersebut.
Dengan menuliskan nilai sisa mulai dari bawah ke atas, didapatkan angka biner
11111102.

Angka desimal 205 diperoleh dari penjumlahan angka yang di arsir. Setiap biner
yang bernilai 1 akan mengalami perhitungan, sedangkan yang bernilai 0 tidak
akan dihitung karena hanya akan menghasilkan nilai 0.

1.6.5.2 Desimal ke Oktal/Heksadesimal dan Oktal/Heksadesimal ke Desimal

Pengubahan bilangan desimal ke bilangan oktal atau bilangan heksadesimal pada


dasarnya sama dengan konversi bilangan desimal ke biner. Perbedaannya terletak
pada bilangan pembagi. Jika pada konversi biner pembaginya adalah angka 2,
maka pada konversi oktal pembaginya adalah angka 8, sedangkan pada konversi
heksadesimal pembaginya adalah 16.
1.6.5.3 Biner ke Oktal dan Oktal ke Biner

Untuk mengubah bilangan biner ke oktal, kita pilah bilangan tersebut menjadi 3
bit bilangan biner dari kanan ke kiri. Tabel berikut ini menunjukkan representasi
bilangan biner terhadap bilangan oktal :

1.6.5.4 Biner ke Heksadesimal dan Heksadesimal ke Biner

Pengubahan bilangan Biner ke Heksadesimal dilakukan dengan pengelompokan


setiap empat bit Biner dimulai dari bit paling kanan. Kemudian konversikan setiap
kelompok menjadi satu digit Heksadesimal. Tabel berikut menunjukkan
representasi bilangan Biner terhadap digit Heksadesimal :
Digit Hexadesimal Representasi Biner
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
A 1010
B 1011
C 1100
D 1101
E 1110
F 1111
BAB 2. PEMROGRAMAN ARDUINO

2.1 Tujuan

Tujuan dari sesi ini caang diharapkan dapat menerapkan dasar-dasar


pemrograman pada mikrokontroler arduino yang meruakan salah satu perangkat
pengontrolan robot pada UKM Robotika dan Otomasi. Adapun kompetensi yang
akan dicapai pada pembelajaran kali ini adalah sebagai berikut:
 Caang mengetahui arrduino dan fungsinya secara umum
 Caang dapat menggukan fitur dalam Arduino IDE
 Dapat membuat program input output sederhana

2.2 Pendahuluan

Mikrokontroler Arduino adalah pengendali mikro single board yang bersifat open
source, diturunkan dari Wiring platform, yang dirancang untuk memudahkan
penggunaan elektronik pada berbagai bidang. Hardwarenya menggunakan
prosesor Atmel AVR dan softwarenya memakai bahasa pemrograman khusus.
Arduino berawal dari sebuah thesis yang dibuat oleh Hernando Barragan, di
Institute Ivrea, Italia pada tahun 2005, lalu dikembangkan oleh Massimo Banzi
dan David Cuartielles yang diberi nama Arduin of Ivrea. Lalu berganti nama
menjadi Arduino yang dalam bahasa Italia berarti “teman yang berani” yang
dipakai hingga saat ini.

Gambar 2.1. Contoh perangkat arduino

Arduino sudah mulai berkembang dari waktu kewaktu kaena arduino merupakan
perangkat open source yang setiap orang dapat dengan bebas mengakses dan
memodifikasi sesuai keinginan pengguna. Arduino sudah mulai mengembangkan
beberapa modul yang dapat digunakan sebagai penunjang fungsi dalam membuat
beberapa project. Seperti gambar diatas tidak hanya memproduksi perangkat
pengontrol saja tapi vendor ini sudah mulai memproduksi beberapa jenis sensor
yang dapat berintegrasi dengannya.
2.3 Bagian-bagian Pemrograman Arduino

Struktur program sketch ardunio sama dengan struktur pemograman bahasa C


untuk mikrokontroller, namun bahasa pemograman sketch arduino jauh lebih
sederhana bila dibandingkan dengan bahasa program C untuk mikrokontrller.
Pada pemograman bahasa C untuk mikrokontroller seperti program AVR Studio4,
sebulum kita membuat program utama, terlebih dahulu kita harus mengatur
register-register mikrokontroller yang akan kita gunakan sesuai dengan program
utama yang akan dibuat. Lain halnya dengan program sketch arduino, proses
pengaturan register mikrokontroller telah disediakan dalam bentuk prototipe
program yang tidak ditampilkan dalam program sketch. Program-program ini
tinggal dipanggil pada saat kita akan membuat menulis program sketch.
Sebelum mempelajari program sketch arduino, terlebih dahulu harus memahami
konfigurasi pin pada board arduino yang akan diprogram. Pada tutorial ini kita
menggunakan arduino UNO R3 seperti pada gambar berikut ini.

Gambar 2.2 konfigurasi pin board Arduino Uno R3


Pada gambar 1 terlihat konfigurasi pin pada board arduino Uno R3. Pin-pin
tersebut terdiri dari:
1. Pin 0 – pin 13
Pin ini dapat digunakan sebagai pin input dan output digital. Artinya pin-pin ini
hanya dapat digunakan untuk keluar data digital. Bila pin – pin ini diatur sebagai
pin output, maka pin – pin hanya dapat mengeluar tegangan 0V untuk kondisi
OFF dan mengeluarkan tegangan 5V untuk kondisi ON. Dalam penulisan
program sketch, 0V dinyatakan dengan kondisi LOW dan 5V dinyatakan dengan
kondisi HIGH.
Jika pin-pin digital ini diatur sebagai pin input, maka pin-pin ini hanya dapat
menerima data digital. Bila pin diberi tegangan 0V, maka pin mendapat logika
rendah (LOW) dan jika pin mendapat tegangan 5V, maka pin mendapat logika
tinggi (HIGH).

2. Pin A0 – pin A5
Pin A0 – pin A5 adalah pin analog, artinya pin ini dapat menerima dan
mengeluarkan data data analog. Pin A0 – pin A5 terhubung ke ADC (analog to
digital converter). Board arduino uno menggunakan mikrokontroller ATMega 328
yang mempunyai 2 macam konfigurasi ADC yaitu ADC 8 bit dan ADC 12 bit.
Pin analog ini dapat mengolah tegangan analog dari tegangan 0 V hingga 5 V.
Selain dapat digunakan untuk data analog, pin ini juga dapat difungsikan sebagai
pin input/output digital.

3. Pin Utilitas
Pin utilitas terdiri dari :
1. Pin V input; untuk input tegangan DC 5 V
2. Pin V output 5V; pin ini mengeluarkan tegangan 5V
3. Pin V output 3,3 V; pin ini mengeluarkan tegangan 3,3 V
4. Pin Ground (-)
5. Pin Aref ; pin ini untuk memberikan tegangan referensi eksternal pada
ADC.
6. Pin reset; pin ini untuk reset mikrokontroller.

4. Terminal USB
Terminal USB digunakan untuk menghubungkan board arduino dengan komputer,
terminal ini digunakan untuk memprogram mikrokontroller dan juga dapat
digunakan untuk komunikasi mikrokontroller dengan komputer (serial
komunikasi).

5. Terminal Catudaya eksternal


Board arduino selain dapat menggunakan datudaya dari USB komputer, juga
dapat diberi catudaya eksternal melalui terminal catudaya ini. Pada board arduino
telah dilengkapi dengan regulator tegangan 5V, sehingga board arduino ini dapat
diberikan tegangan eksternal berkisar dari 5 V hingga 12 VDC.

6. Tombol reset
Tombol reset digunakan untuk mereset mikrokontroller.
7. Terminal Header ISP
Terminal Header ISP digunakan untuk pemograman boatloader mikrokontroller.
Supaya mikrokontroller atmega328 dapat bekerja pada board arduino, maka
atmega328 harus diisi dengan program boatloader terlebih dahulu. Pada saat kita
membeli board arduino, board telah dilengkapi dengan sebuah IC atmega328 yang
telah diisi dengan program boatloader, tetapi jika kita hendak mengganti IC
atmega 328 dengan yang baru, maka IC tersebut terlebih dahulu harus diisi
dengan program boatloader dengan menggunakan terminal header ISP yang
dihubungkan ke downloader lain.

Struktur program sketch dapat dibagi menjadi 3 bagian yaitu


1.Bagian deklarasi awal Bagian deklarasi awal digunakan untuk mendeskripsikan
variabel-variabel yang akan digunakan dalam program utama dan juga untuk
menambahkan file-file program yang dibutuhkan untuk menjalankan program
utama. Berikut contoh deklarasi program
#include<AVR/io.h>
int tombol1 = 3;
char lampu1 = 0;
2. Bagian setup Bagian setup digunakan untuk menginisiasi variabel, mengatur
mode pin pada board, mengatur timer, mengatur baudrate serial port dan
sebagainya. Bagian setup hanya dijalankan sekali saja yaitu pada saat awal
program dijalankan atau ketika program direset. Berikut contoh program setup.
void setup()
{ pinMode(tombol1, INPUT);
pinMode(Lampu1, OUTPUT);
serial.begin(9600);
}
3. Bagian loop Bagian loop adalah fungsi utama program yang akan dijalankan
berulang-ulang. Berikut ini contoh penulisan program sketch lengkap.
#include<AVR.io.h>
int lampu1 = 3;

void setup()
{ pinMode(lampu1, OUTPUT);}

void loop()
{ digitalWrite(lampu1, HIGH);
delay(1000);
digitalWrite(lampu1, LOW);
delay(1000);
}
Penjelasan program :
#include<AVR/io.h>
int tombol1 = 3;
char lampu1 = 0;
Bagian ini merupakan deklarasi awal yang menyatakan variabel “lampu1” adalah
pin no3 board arduino Uno dan menambahkan file io.h ke program.
void setup()
{ pinMode(lampu1, OUTPUT);}
Bagian ini mengatur variabel “lampu1” atau pin3 sebagai pin output. Karena pin
no 3 adalah pin digital dan diatur sebagai pin output, maka pin ini hanya dapat
mengeluarkan tegangan 5V ketika HIGH dan tegangan 0V ketika LOW.
void loop()
{ digitalWrite(lampu1, HIGH);
delay(1000);
digitalWrite(lampu1, LOW);
delay(1000);
}
Bagian ini adalah program utama yang akan dijalankan berulang-ulang oleh
mikrokontroller. Pertama-tama mikrokontroller akan mengeluarkan tegangan 5V
(logika HIGH) pada pin3 (lampu1), kemudian menahan nyala lampu selama 1000
ms, setelah itu lampu akan dimatikan selama 1000ms, dan berulang kembali.
Gambar berikut ini menunnjukan contoh penulisan sketch pada IDE program
Arduino

Gambar 2.3 contoh penulisan sketch pada IDE program Arduino

1.4 Digital INPUT dan OUTPUT

Semua pin pada Arduino, baik pin digital maupun pin analog, dapat digunakan
sebagai pin digital. Digital berarti sinyal yang dikirimkan/diterima bernilai 1 atau
0, on atau off, HIGH atau LOW, ada atau tidak ada sinyal. Berbeda dengan sinyal
analog yang nilainya bersifat kontinyu, yakni nilai antara 0 dan 1
dipertimbangkan. Pin digital berarti pin dapat menerima/mengirim sinyal digital.
Secara umum pin pada Arduino dapat dikonfigurasi ke dalam dua mode, yaitu
mode input dan output. Mode input berarti mengeset pin agar dapat digunakan
untuk menerima masukan sinyal. Mode output berarti mengeset pin agar dapat
mengirimkan sinyal.
Untuk mengeset mode pin, kita gunakan fungsi pinMode(). Fungsi ini biasanya
dipanggil di dalam fungsi setup(). fungsi ini memerlukan dua parameter,
pinMode([nomorPin], [mode]). Parameter pertama diisi oleh nomor pin, dan
parameter kedua diisi oleh konstanta INPUT atau OUTPUT, sesuai dengan
mode yang ingin kita gunakan. Sebagai contoh, lihat pada kode berikut.
void setup()
{
pinMode(1, INPUT); // set pin 1 sebagai pin input
pinMode(2, OUTPUT); // set pin 2 sebagai pin
output
}

1.4.1. Digital Input

Pada dasarnya semua pin yang ada pada Arduino (ATMega) berada pada mode
input secara default. Jadi ketika kita ingin menggunakan suatu pin sebagai input,
maka kita tidak mesti menuliskan pinMode(nomorPin, INPUT);.
Untuk menerima input digital yang masuk ke pin, kita gunakan fungsi
digitalRead(nomorPin). Fungsi ini menerima satu parameter, yaitu nomor pin
mana yang akan dibaca nilai inputnya. Fungsi ini akan mengembalikan nilai 1 dan
0, atau HIGH dan LOW (HIGH adalah konstanta dengan nilai 1 dan LOW adalah
konstanta dengan nilai 0). Supaya lebih paham, silakan coba contoh berikut.
Skenarionya adalah kita akan menghubungkan pushbutton ke pin 2 dan
menyalakan LED yang ada pada board Arduino Uno ketika pushbutton tersebut
ditekan.
Bahan-bahan yang diperlukan untuk percobaan ini diantaranya:
 Arduino Uno board
 Kabel jumper
 1 buah resistor 10K ohm
 Breadboard
 Pushbutton/switch
Buat rangkaian seperti
berikut:
Gambar 2.4. Rangkaian Pushbutton

Pada gambar di atas, kita menghubungkan salahsatu satu kaki pushbutton ke pin 2
(kabel biru) dan GND (kabel hitam), dan menghubungkan kaki pin yang lain ke
5V (kabel merah) pada Arduino. Kaki pin yang terhubung ke GND harus
melalui pull-down resistor. Pada saat button terbuka (tidak ditekan), maka kedua
kaki button tidak terhubung sehingga pin 2 akan terhubung dengan GND dan nilai
yang dibaca pin 2 adalah LOW. Ketika button ditekan, maka kedua kaki pin akan
terhubung, menghubungkan pin 2 dengan 5V sehingga nilai yang diterima pin
adalah HIGH.
Sekarang kita tuliskan program untuk membaca nilai pin 2 dan menyalakan LED
pada Arduino ketika pin 2 bernilai HIGH. LED pada Arduino Uno terhubung
dengan pin 13, maka untuk menyalakan LED tersebut, kita akan memberikan
sinyal digital HIGH pada pin 13. Kalo Kamu menggunakan board yang lain, cari
tau pin mana yang digunakan untuk LED pada board tersebut.
// kita buat variabel untuk nomor pin supaya lebih mudah
merujuknya const int pinButton = 2;
const int pinLed = 13;

// variabel untuk menyimpan nilai input pin


button int nilaiButton = 0;

void setup() {
// set mode input pada pin untuk button, ga
wajib pinMode(pinButton, INPUT);

// set pin untuk LED ke mode


output pinMode(pinLed,
OUTPUT);
}

void loop() {
// baca nilai pin untuk button
nilaiButton = digitalRead(pinButton);
// cek apakah button ditekan
if (nilaiButton == HIGH) {
// nyalakan LED
digitalWrite(pinLed, HIGH);

} else { // kalo nilai pin LOW


// matikan LED
digitalWrite(pinLed, LOW);
}
}
Hubungkan Arduino ke komputermu dan upload program di atas. Apabila
rangkaian yang Kamu buat sudah sesuai dengan gambar di atas dan kode program
terupload dengan sukses, maka mestinya LED pada board Arduinomu akan
menyala ketika pushbutton ditekan, dan LED akan mati begitu pushbutton dilepas.

1.4.2. Digital Output

Sebenarnya pada bagian pembahasan Digital Input di atas, kita sudah


mempraktekkan digital output. Untuk mengirimkan sinyal digital, kita gunakan
fungsi digitalWrite(nomorPin, nilaiDigital). Fungsi ini dapat digunakan pada pin
yang sebelumnya sudah diset ke mode OUTPUT. Parameter kedua adalah set nilai
HIGH atau LOW. Apabila pin diset dengan nilai HIGH, maka voltase pin tersebut
akan diset ke 5V (atau 3.3V pada board bertipe 3.3V) dan bila pin diset ke LOW,
maka voltase pin tersebut akan diset ke 0V.
Untuk membantu pemahaman, mari kita coba pada skenario lain. Bahan yang
digunakan sama seperti pada bagian Digital Input di atas, dengan tambahan 1
buah LED dan 1 buah resistor 220 ohm. Buat rangkaian seperti pada gambar
berikut:

Gambar 2.5. Rangkaian Led

Rangkaiannya sama seperti percobaan pertama, dan kita hanya menambah LED
saja. LED atau Light Emitting Diode memiliki dua buah kaki yakni anoda (+) dan
katoda (-). Biasanya kaki anoda atau positif dibuat lebih panjang daripada kaki
negatif agar mudah dikenali. Kaki positif dihubungkan dengan pin 3 melalui
resistor 220 ohm. Kaki negatif dihubungkan dengan GND. Kesalahan pemasangan
posisi kaki membuat LED tidak menyala dan pemasangan LED tanpa
menggunakan resistor kemungkinan besar akan membuat LED kelebihan
arus yang menyebabkan LED terbakar dan rusak.
Sekarang kita akan menulis program supaya LED mengedipkan cahaya ketika
pushbutton ditekan dan mati ketika pushbutton
dilepas. const int pinButton = 2;
const int pinLed = 3;

// variabel untuk menyimpan nilai input pin button


int nilaiButton = 0;

void setup() {
// set mode input pada pin untuk button, ga
wajib pinMode(pinButton, INPUT);

// set pin untuk LED ke mode


output pinMode(pinLed,
OUTPUT);
}

void loop() {
// baca nilai pin untuk button
nilaiButton = digitalRead(pinButton);

// cek apakah button ditekan


if (nilaiButton == HIGH) {
// buat LED berkedip
digitalWrite(pinLed, HIGH);
delay(100);
digitalWrite(pinLed, LOW);
delay(100);

} else { // kalo nilai pin LOW


// matikan LED
digitalWrite(pinLed,
LOW);
}
}
Variabel pinLed kita set ke 3 karena LED kita terhubung dengan pin 3. Kemudian
pada baris 22-25, pada saat button ditekan, kita nyalakan LED dan kita beri jeda
selama 0,1 detik (100 milidetik), baru kemudian kita matikan LED dan beri jeda
lagi 0,1 detik sebelum mikrokontroller kembali mengulang pengecekan. Hal ini
akan membuat LED terus berkedip selama pushbutton terus ditekan.

1.5 Analog INPUT

Pin analog pada Arduino (dan mikrokontroller lain pada umumnya) dapat
digunakan untuk input dan output digital. Hanya saja pin analog memiliki fitur
untuk dapat mengubah sinyal analog yang masuk menjadi nilai digital yang
mudah diukur. Pin digital hanya dapat mengenali sinyal 0 volt sebagai nilai LOW
dan 5 volt sebagai nilai HIGH. Sedangkan Pin analog dapat mengenali sinyal pada
rentang nilai voltase tersebut. Hal ini sangat berguna ketika kita hendak mengukur
sesuatu dari sensor dan menggunakan nilai masukan tersebut untuk keperluan lain.
Pin analog ini terhubung dengan converter pada mikrokontroller yang dikenal
dengan istilah analog-to-digital converter (disingkat ADC atau A/D). Converter
ini mengubah nilai analog berbentuk sinyal voltase ke dalam bentuk digital/angka
supaya nilai analog ini dapat digunakan dengan lebih mudah dan aplikatif. Pada
Arduino (mikrokontroller ATMega) converter ini memiliki resolusi 10 bit,
artinya nilai hasil konversi berkisar dari 0 hingga 1023. Pada Arduino UNO, pin
analog ditandai dengan label A0 sampai A5. Pada board lainnya, pin-pin yang
diberi tanda A, Analog, ADC adalah pin analog.
Fungsi yang kita gunakan untuk membaca nilai analog pada Arduino adalah
analogRead([nomorPin]). Pada contoh kasus berikut, kita akan menghubungkan
potensiometer pada pin analog A5 dan hasil konversi nilai analog akan
kita lihat pada jendela Serial Monitor pada Arduino IDE.
Adapun bahan-bahan yang diperlukan untuk percobaan ini diantaranya:
 Arduino Uno board
 Kabel jumper
 Potensiometer
 Breadboard
Buatlah rangkaian seperti berikut:

Gambar 2.6. Rangkaian Potensiometer

Potensiometer adalah kenop yang menghasilkan resistansi/hambatan variabel.


Potensiometer memiliki 3 kaki (ada yang memiliki lebih dari 3 kaki, tapi biasanya
kelipatan 3 dan pada dasarnya ada 3 jenis kaki), yakni dua kaki terluar yang
masing-masing dihubungkan dengan 5V dan GND, dan kaki tengah yang
menghasilkan keluaran nilai analog. Pada rangkaian di atas, kaki tengah
potensiometer dihubungkan ke pin A5. Pin A5 akan menerima sinyal voltase
dengan besaran sesuai dengan putaran kenop potensiometer. Semakin dekat
putaran ke arah 5V, maka nilai resistansi akan semakin kecil sehingga nilai
voltase yang keluar akan semakin besar mendekati 5V. Begitu pula
sebaliknya. Sinyal tersebut akan dikonversi ke nilai angka dan ditampilkan pada
jendela Serial Monitor.
Adapun kode yang harus kita upload adalah seperti berikut:
int pinPot = A5; // pin untuk menerima sinyal analog dari
potensiometer
int val = 0; // variabel untuk menyimpan nilai konversi
analog ke digital

void setup()
{
Serial.begin(9600); // setup koneksi serial
}

void loop() {
val = analogRead(pinPot); // baca nilai analog dari
potensiometer
Serial.println(val); // kirim nilai val ke koneksi
serial
delay(100); // beri jeda hingga pengulangan
selanjutnya
}
Upload kode program. Pastikan Kamu sudah mengeset board dengan Arduino
Uno dan memilih port yang sesuai dengan koneksi USBmu. Setelah proses upload
berhasil, buka jendela Serial Monitor dengan memilih menu Tools > Serial
Monitor atau mengklik tombol Serial Monitor yang ada di sebelah kanan atas
jendela Arduino IDE. Kamu dapat mengamati nilai analog yang masuk dan
melihat perubahannya sambil memutar-mutar kenop potensiometer.

1.6 Analog OUTPUT

Kita dapat mengirimkan sinyal HIGH dan LOW atau on dan off pada Arduino
untuk menyalakan dan mematikan sesuatu menggunakan digitalWrite().
Bagaimana kalo kita ingin mengaktifkan sesuatu dengan kekuatan tertentu dan
bisa diubah-ubah sesuai keperluan, seperti misalnya mengatur intensitas cahaya
LED atau mengatur kecepatan putaran motor? Dalam hal ini kita punya analog
output. Analog output pada Arduino berarti kita mengirimkan sinyal analog
dengan intensitas yang ditentukan sesuai kebutuhan.
Analog input dihasilkan oleh teknik yang dikenal dengan istilah PWM atau Pulse
Width Modulation. PWM memanipulasi keluaran digital sedemikian rupa
sehingga menghasilkan sinyal analog. Mikrokontroler mengeset output digital ke
HIGH dan LOW bergantian dengan porsi waktu tertentu untuk setiap nilai
keluarannya. Durasi waktu untuk nilai HIGH disebut pulse width atau panjang
pulsa. Variasi nilai output analog didapatkan dari perubahan panjang pulsa yang
diberikan pada satu periode waktu dan dilakukan berulang-ulang. Untuk lebih
jelasnya perhatikan ilustrasi berikut:Kondisi HIGH adalah kondisi ketika sinyal
berada di atas grafik (5V) dan LOW adalah ketika sinyal berada di bawah (0V).
Duty cycle adalah persentasi panjang pulsa HIGH dalam satu periode sinyal.
Ketika duty cyclenya 0% atau sinyal LOW penuh, maka nilai analog yang
dikeluarkan adalah 0V atau setara dengan GND. Ketika duty cyclenya 100% atau
sinyal HIGH penuh maka sinyal yang dikeluarkan adalaah 5V.
Untuk mengatur nilai duty cycle, kita gunakan fungsi analogWrite([nomorPin],
[nilai]). Nilai pada parameter kedia berkisar antara 0 hingga 255. Bila kita hendak
mengeset duty cycle ke 0%, maka kita set nilai parameter ke 0, dan untuk duty
cycle 100%, maka kita set nilai parameter ke 255. Jadi bila misalkan kita hendak
mengeset duty cycle ke 50%, berarti nilai yang harus kita set adalah 127 (50% x
255).
Sebenarnya berdasarkan konsep PWM di atas, kita dapat mensimulasikan PWM
pada semua pin digital. Tapi khusus penggunaan fungsi digitalWrite() kita hanya
bisa menggunakannya pada pin-pin PWM. Seperti pada Arduino Uno, pin yang
dapat menggunakan fungsi ini hanya pin 3, 5, 6, 9, 10 dan 11. Biasanya pin PWM
disimbolkan dengan karakter '~'.
Demikian sekilas tentang teori PWM. Supaya lebih paham tentang analog output,
kita coba implementasikan ke dalam rangkaian.
Bahan-bahan yang diperlukan untuk percobaan berikut diantaranya;
 Arduino Uno board
 Breadboard
 kabel jumper
 LED
 Resistor 220 ohm

Buat rangkaian seperti pada gambar di bawah ini:

Gambar 2.7. Rangkaian meredupkan LED


Pada rangkaian di atas, kita menghubungkan pin 3 ke kaki anoda (positif) LED
dengan melalui resistor 220 ohm dan menghubungkan kaki yang lain ke GND.
Alih-alih menyalakan dan mematikan LED menggunakan digitalWrite() seperti
pada artike Digital Input Output, kita akan menyalakan LED dengan intensitas
yang terus naik hingga titik maksimum dan kemudian menurunkan intensitasnya
terus hingga mati. Demikian seterusnya. Berikut adalah kode programnya:
int pinLed = 3; // LED terhubung dengan pin 3

void setup(){}

void loop() {
// buat iterasi dari 0 sampai 255 dengan kelipatan
5 for (int nilai = 0; nilai <= 255; nilai += 5) {
// set nilai analog menggunakan iterasi di atas
analogWrite(pinLed, nilai);
delay(30);
}
// buat iterasi mundur dari 255 ke 0 dengan kelipatan 5
for (int nilai = 255; nilai >= 0; nilai -= 5) {
// set nilai analog menggunakan iterasi di atas
analogWrite(pinLed, nilai);
// beri jeda waktu 3 milidetik
delay(30);
}
}

Upload program. Bila program berhasil diupload, Kamu akan melihat LED
menyala perlahan dari redup ke terang lalu kemudian meredup hingga mati.
Begitu seterusnya.
BAB 3. PENUTUP

3.1 Kesimpulan

Pemrograman merupakan sesuatu yang tidak terpisahakan dari pembuatan robot


karena dengan pemrogramanlah kita dapat memberikan suatu perintah dan
menerapkan suatu rancangan artificial Intellegent kedalam hardware berupa robot.
Bahasa program yang digunakan juga beragan tergantung dengan kebutuhan kita.

3.2 Saran

Tantang dan asah diri anda dengan membuat berbagai macam project sederhana
maupun kompleks, karena dengan melakukan itu kita dapat terus mengasah
algoritma menjadi semakin baik.
DAFTAR PUSTAKA

Oxer J, Blemings H. 2009. Practical Arduino: Cool for Source Hardware


(Technology in Action). Washington: Apress

Haryanto T. 2016. Analog Input Pada Arduino. Website:


https://www.codepolitan.com/analog-input-pada-arduino, diakses pada
tanggal 6 november 2018

Haryanto T. 2016. Analog Output Arduino Menggunakan PWM (Pulse Width


Modulation). Website: https://www.codepolitan.com/analog-output-
arduino-menggunakan-pwm-pulse-width-modulation, diakses pada
tanggal 6 november 2018

Haryanto T. 2016. Digital Input dan Output Pada Arduino. Website:


https://www.codepolitan.com/digital-input-output-pada-arduino, Diakses
pada tanggal 6 november 2018

Rahmat A. 2015. Belajar Dasar Pemrograman Arduino. Website:


https://kelasrobot.com/belajar-pemrograman-dasar-arduino/, diakses
pada tanggal 7 november 2018

Shofiyuddin. 2015. Dasar-dasar Pemrograman Komputer. Website: http://materi-


dasar-dan-pemrograman-komputer.blogspot.com/2015/10/dasar-dasar-
pemrograman-komputer.html, diakses pada tanggal 7 november 2018

Anda mungkin juga menyukai