ARTIKEL
ARTIKEL
PEMROGAMAN BAHASA C
MATA KULIAH BAHASA PEMROGAMAN
Disusun untuk Memenuhi Tugas Mata Kuliah
DOSEN PENGAMPU
Yus Raka, ST
KELOMPOK 7
1. Yusuf Naufal (02421106)
2. Viki Pamungkas (02421096)
KELAS C
IDE yang akan kita gunakan adalah Codeblocks. Kamu bisa download di link
yang sudah tersedia http://www.codeblocks.org/downloads/26. Setelah itu install
seperti halnya aplikasi biasanya. Lalu jalankan IDE tersebut. Buatlah berkas proyek
baru dengan”New”–>”Empty file.”
E. Memulai Pemrograman
Untuk pertama kalinya buatlah kode program sederhana dengan menampilkan kata
“Hello World” seperti di bawah ini:
Kode Lab:
1#include <stdio.h>
Jalankalah
kode tersebut 2 dan lihatlah
bagian
3int main(){
4 printf("Hello World!");
5 return 0;
6}
terminal/console, maka hasilnya jadi seperti ini:
Hello World!
1#include <stdio.h>
2
3int main(){
4 printf("Hello World!");
5 return 0;
6}
Ini adalah struktur dasar yang wajib kamu pahami. Kalau kamu perhatikan, struktur
program tersebut dibagi menjadi dua bagian utama, yakni bagian include dan blok main.
1. #Include
Kamu telah mengimpor file stdio.h. File ini berisi deklarasi fungsi-fungsi
dasar yang kita butuhkan untuk membuat program, seperti printf(). File stdio.h
sudah ada dikomputer kita ketika menginstall gcc.
2. Fungsi Main
Fungsi main merupakan fungsi utama sebuah program. Fungsi ini juga akan
dieksekusi untuk pertama kalinya. Oleh karena itu, kamu harus selalu
menyertakan fungsi main() dalam sebuah program.
Maksud dari int di depan main adalah jenis tipe data yang akan dikembalikan
nilainya kembali. Di dalam fungsi main(), wajib kamu sertakan return 0. Artinya,
fungsi main akan mengembalikan nilai 0 setelah dieksekusi.
Cara lain kamu bisa gunakan void, yang artinya tidak ada (kosong). Jika
menggunakan void, maka kita tidak perlu menuliskan return di akhir fungsi.
Sebab, void tidak mengembalikkan nilai apapun.
Contoh :
1void main() {
2 //...
3}
Saat ini tim pengembangnya adalah Massimo Banzi, David Cuartielles, Tom Igoe,
Gianluca Martino, David Mellis, dan Nicholas Zambetti. Mereka mengupayakan 4 hal
dalam Arduino ini, yaitu:
1. Harga terjangkau
2. Dapat dijalankan diberbagai sistem operasi, Windows, Linux, Mac, dan
sebagainya.
3. Sederhana, dengan bahasa pemograman yang mudah bisa dipelajari orang
awam, bukan untuk orang teknik saja.
4. Open Source, hardware maupun software.
Sifat Arduino yang Open Source, membuat Arduino berkembang sangat cepat.
Sehingga banyak lahir perangkat-perangkat sejenis Arduino. Seperti DFRDuino atau
Freeduino, sedangkan untuk lokal ada SENTSOR Uno Plus yang dibuat oleh SENTSOR
Electronics Indonesia, CipaDuino yang dibuat oleh SKIR70, MurmerDuino yang dibuat
oleh Robot Unyil, ada lagi AViShaDuino yang salah satu pembuatnya adalah Admin
Kelas Robot.
Sampai saat ini pihak resmi, sudah membuat berbagai jenis-jenis Arduino. Mulai dari
yang paling mudah dicari dan paling banyak digunakan, yaitu Arduino Uno. Hingga
Arduino yang sudah menggunakan ARM Cortex, berbentuk Mini PC. Hingga saat ini
sudah ada ratusan ribu Arduino yang digunakan di dunia sejak tahun 2011. Arduino juga
sudah dipakai oleh perusahaan-perusahaan besar, contohnya Google menggunakan
Arduino untuk Accessory Development Kit, NASA memakai Arduino untuk prototypin,
ada lagi Large Hadron Colider memakai Arduino dalam beberapa hal untuk pengumpulan
data.
Salah satu komponen dari arduino (yakni text-editor) dibangun menggunakan Java.
Hal ini mengakibatkan banyak yang mengira bahasa arduino adalah bahasa baru turunan
dari Java. Arduino sebenarnya menggunakan bahasa C / C++, dengan compiler avr-
gcc yang sama dengan yang dipakai pada avr-studio.[2] Aturan proses kompilasi sudah
disediakan oleh aplikasi Arduino, dimana berkas kode utama dengan ekstensi ino akan
hubungkan dengan berkas-berkas lain. Telah disediakan pula rutin utama C++
(fungsi main) yang memanggil fungsi setup dan loop dari file kode utama berekstensi ino.
Kombinasi pustaka Arduino dengan aturan kompilasi (Makefile avr-gcc) ini memudahkan
siapa saja menggunakan Arduino tanpa harus faham tentang C++. Sehingga orang awam
pun bisa menjadi seniman digital, bisa mempelajari Arduino dengan mudahnya. Plugin
yang disediakan pada software Arduino memungkinkan komunitas untuk menambahkan
bermacam compiler lain selain avr-gcc, bahkan dukungan untuk prosesor lain selain
Atmel AVR.
B. Jenis-Jenis Arduino
Seperti Microcontroller yang banyak jenisnya, Arduino lahir dan berkembang,
kemudian muncul dengan berbagai jenis. Diantaranya adalah:
a. Arduino Uno
Jenis yang ini adalah yang paling banyak digunakan. Terutama untuk pemula
sangat disarankan untuk menggunakan Arduino Uno. Banyak sekali referensi yang
membahas Arduino Uno. Versi yang terakhir adalah Arduino Uno R3 (Revisi 3),
menggunakan ATMEGA328 sebagai Microcontrollernya, memiliki 14 pin I/O digital
dan 6 pin input analog. Untuk pemprograman cukup menggunakan koneksi USB type
A to To type B. Sama seperti yang digunakan pada USB printer.
SPESIFIKASI
MICROCONTROLLER ATmega328P
OPERATING VOLTAGE 5V
SRAM 2 KB (ATmega328P)
EEPROM 1 KB (ATmega328P)
LED_BUILTIN 13
LENGTH 68.6 mm
WIDTH 53.4 mm
WEIGHT 25 g
b. Arduino Due
Berbeda dengan saudaranya, Arduino Due tidak menggunakan ATMEGA, melainkan
dengan chip yang lebih tinggi ARM Cortex CPU. Memiliki 54 I/O pin digital dan 12
pin input analog. Untuk pemprogramannya menggunakan Micro USB, terdapat pada
beberapa handphone.
SPESIFIKASI
MICROCONTROLLER AT91SAM3X8E
OPERATING VOLTAGE 3.3V
INPUT VOLTAGE (RECOMMENDED) 7-12V
INPUT VOLTAGE (LIMITS) 6-16V
DIGITAL I/O PINS 54 (of which 12 provide PWM output)
ANALOG INPUT PINS 12
ANALOG OUTPUT PINS 2 (DAC)
TOTAL DC OUTPUT CURRENT ON ALL I/O LINES 130 mA
DC CURRENT FOR 3.3V PIN 800 mA
DC CURRENT FOR 5V PIN 800 mA
FLASH MEMORY 512 KB all available for the user applications
SRAM 96 KB (two banks: 64KB and 32KB)
CLOCK SPEED 84 MHz
LENGTH 101.52 mm
WIDTH 53.3 mm
WEIGHT 36 g
c. Arduino Mega
Mirip dengan Arduino Uno, sama-sama menggunakan USB type A to B untuk
pemprogramannya. Tetapi Arduino Mega, menggunakan Chip yang lebih tinggi
ATMEGA2560. Dan tentu saja untuk Pin I/O Digital dan pin input Analognya lebih
banyak dari Uno.
SPESIFIKASI
MICROCONTROLLER ATmega2560
OPERATING VOLTAGE 5V
SRAM 8 KB
EEPROM 4 KB
LED_BUILTIN 13
LENGTH 101.52 mm
WIDTH 53.3 mm
WEIGHT 37 g
d. Arduino Leonardo.
Bisa dibilang Leonardo adalah saudara kembar dari Uno. Dari mulai jumlah pin I/O
digital dan pin input Analognya sama. Hanya pada Leonardo menggunakan Micro
USB untuk pemprogramannya.
SPESIFIKASI
MICROCONTROLLER ATmega32u4
OPERATING VOLTAGE 5V
INPUT VOLTAGE (RECOMMENDED) 7-12V
INPUT VOLTAGE (LIMITS) 6-20V
DIGITAL I/O PINS 20
PWM CHANNELS 7
ANALOG INPUT CHANNELS 12
DC CURRENT PER I/O PIN 40 mA
DC CURRENT FOR 3.3V PIN 50 mA
FLASH MEMORY 32 KB (ATmega32u4) of which 4 KB used by bootloader
SRAM 2.5 KB (ATmega32u4)
EEPROM 1 KB (ATmega32u4)
CLOCK SPEED 16 MHz
LENGH 68.6 mm
WIDTH 53.3 mm
WEIGHT 20 g
e. Arduino Fio
Bentuknya lebih unik, terutama untuk socketnya. Walau jumlah pin I/O digital dan
input analognya sama dengan uno dan leonardo, tapi Fio memiliki Socket XBee.
XBee membuat Fio dapat dipakai untuk keperluan projek yang berhubungan dengan
wireless.
SPESIFIKASI
MICROCONTROLLER ATmega328p
OPERATING VOLTAGE 3.3V
INPUT VOLTAGE (RECOMMENDED) 3.35-12V
INPUT VOLTAGE (LIMITS) 3.7-7V
DIGITAL I/O PINS 14 (of which 6 provide PWM output)
ANALOG INPUT CHANNELS 8
DC CURRENT PER I/O PIN 40 mA
DC CURRENT FOR 3.3V PIN 50 mA
FLASH MEMORY 32 KB (of which 2 KB used by bootloader)
SRAM 2 KB
EEPROM 1 KB
CLOCK SPEED 8 MHz
LENGH 65 mm
WIDTH 28 mm
f. Arduino Lilypad
Bentuknya yang melingkar membuat Lilypad dapat dipakai untuk membuat projek
unik. Seperti membuat amor iron man misalkan. Hanya versi lamanya menggunakan
ATMEGA168, tapi masih cukup untuk membuat satu projek keren. Dengan 14 pin
I/O digital, dan 6 pin input analognya.
SPESIFIKASI
MICROCONTROLLER ATmega328p
OPERATING VOLTAGE 3.3V
INPUT VOLTAGE (RECOMMENDED) 3.8-5V
DIGITAL I/O PINS 9
PWM CHANNELS 4
ANALOG INPUT CHANNELS 4
DC CURRENT PER I/O PIN 40 mA
FLASH MEMORY 32 KB (of which 4 KB used by bootloader)
SRAM 2.5 KB
EEPROM 1 KB
CLOCK SPEED 8 MHz
g. Arduino Nano
Sepertinya namanya, Nano yang berukulan kecil dan sangat sederhana ini,
menyimpan banyak fasilitas. Sudah dilengkapi dengan FTDI untuk pemograman
lewat Micro USB. 14 Pin I/O Digital, dan 8 Pin input Analog (lebih banyak dari Uno).
Dan ada yang menggunakan ATMEGA168, atau ATMEGA328.
SPESIFIKASI
MICROCONTROLLER nRF52840 (datasheet)
EEPROM none
UART 1
SPI 1
I2C 1
LED_BUILTIN 13
LENGTH 45 mm
WIDTH 18 mm
h. Arduino Mini
Fasilitasnya sama dengan yang dimiliki Nano. Hanya tidak dilengkapi dengan Micro
USB untuk pemograman. Dan ukurannya hanya 30 mm x 18 mm saja.
SPESIFIKASI
MICROCONTROLLER ATmega328
OPERATING VOLTAGE 5V
INPUT VOLTAGE (RECOMMENDED) 7-9V
DIGITAL I/O PINS 14 (of which 6 provide PWM output)
ANALOG INPUT CHANNELS 8 (of which 2 KB used by bootloader)
DC CURRENT PER I/O PIN 40 mA
FLASH MEMORY 32 KB (of which 2 KB used by bootloader)
SRAM 2 KB
EEPROM 1 KB
CLOCK SPEED 16 MHz
LENGTH 30 mm
WIDTH 18 mm
i. Arduino Micro
Ukurannya lebih panjang dari Nano dan Mini. Karena memang fasilitasnya lebih
banyak yaitu; memiliki 20 pin I/O digital dan 12 pin input analog.
SPESIFIKASI
MICROCONTROLLER ATmega32U4
OPERATING VOLTAGE 5V
PWM CHANNELS 7
EEPROM 1 KB (ATmega32U4)
LED_BUILTIN 13
LENGTH 48 mm
WIDTH 18 mm
WEIGHT 13 g
j. Arduino Ethernet
Ini arduino yang sudah dilengkapi dengan fasilitas ethernet. Membuat Arduino kamu
dapat berhubungan melalui jaringan LAN pada komputer. Untuk fasilitas pada Pin I/O
Digital dan Input Analognya sama dengan Uno.
SPESIFIKASI
MICROCONTROLLER ATmega328
OPERATING VOLTAGE 5V
INPUT VOLTAGE (RECOMMENDED) 7-12V
DIGITAL I/O PINS 14 (of which 4 provide PWM output)
ANALOG INPUT CHANNELS 6
DC CURRENT PER I/O PIN 40 mA
DC CURRENT FOR 3.3V PIN 50 mA
FLASH MEMORY 32 KB (of which 0.5 KB used by bootloader)
SRAM 2 KB
EEPROM 1 KB
CLOCK SPEED 16 MHz
LENGTH 68.6 mm
WIDTH 53.3 mm
WEIGHT 28 g
k. Arduino Esplora
Rekomendasi bagi kamu yang mau membuat gadget sepeti Smartphone, karena sudah
dilengkapi dengan Joystick, button, dan sebagainya. Kamu hanya perlu tambahkan
LCD, untuk lebih mempercantik Esplora
SPESIFIKASI
MICROCONTROLLER ATmega32u4
OPERATING VOLTAGE 5V
FLASH MEMORY 32 KB (of which 4 KB used by bootloader)
SRAM 2.5 KB
EEPROM 1 KB
CLOCK SPEED 16 MHz
LENGTH 164.04 mm
WIDTH 60 mm
WEIGHT 53 g
l. Arduino Robot
Ini adalah paket komplet dari Arduino yang sudah berbentuk robot. Sudah dilengkapi
dengan LCD, Speaker, Roda, Sensor Infrared, dan semua yang kamu butuhkan untuk
robot sudah ada pada Arduino ini.
SPESIFIKASI
MICROCONTROLLER ATmega32u4
OPERATING VOLTAGE 5V
INPUT VOLTAGE (RECOMMENDED) 5V through flat cable
DIGITAL I/O PINS 5
PWM CHANNELS 6
ANALOG INPUT CHANNELS 4 (of the Digital I/O pins)
DC CURRENT PER I/O PIN 40 mA
FLASH MEMORY 32 KB (of which 4 KB used by bootloader)
SRAM 2.5 KB
EEPROM (INTERNAL) 1 KB
EEPROM (EXTERNAL) 512 Kbit (I2C)
CLOCK SPEED 16 MHz
KEYPAD 5 keys
KNOB potentiomenter attached to analog pin
FULL COLOR LCD over SPI communication
SD CARD READER for FAT16 formatted cards
SPEAKER 8 Ohm
I2C SOLDERING PORTS 3
PROTOTYPING AREAS 4
RADIUS 185 mm
HEIGHT 85 mm
Contoh Bahasa C yang Digunakan di Arduino beserta Keterangannya
void setup()
{
pinMode(13,OUTPUT); //mengset ‘pin’ 13 sebagai output
}
void loop()
{
digitalWrite(13, HIGH); //nyalakan ‘pin’ 13
delay(1000); //pause selama 1 detik
digitalWrite(13, LOW); //matikan ‘pin’ 13
delay(1000); ///pause selama 1 detik
}
int delayVal()
{
int v; //membuat variable ‘v’ bertipe integer
v = analogRead(pot); //baca harga potentiometer
v /= 4; //konversi 0-1023 ke 0-255
return v; //return nilai v
}
Pada contoh di atas fungsi tersebut memiliki nilai balik int (integer), karena kalau tidak
menghendaki adanya nilai balik maka type function harus void.
Sebagai gambaran dasar, berikut contoh penggunaan dari berbagai tipe data
dalam bahasa C:
1#include <stdio.h>
2
3int main(void)
4{
5 int var1 = 56;
6 double var2 = 0.543;
7 char var3 = 'A';
8 int var4[5] = {10, 20, 30, 40, 50};
9 char var5[11] = "Duniailkom";
10
11 printf("%d \n",var1);
12 printf("%f \n",var2);
13 printf("%c \n",var3);
14 printf("%d \n",var4[3]);
15 printf("%s \n",var5);
16
17 printf("\n");
18 return 0;
19}
#include <stdio.h>
int main(){
int usia = 19;
float berat = 65.3;
double tinggi = 178.43;
char jenis_kelamin = 'L';
return 0;
}
Hasilnya:
Mungkin kamu akan bertanya:
Kita bisa saja mencetakanya dengan format %f saja, akan tetapi akan dicetak
dengan angka yang panjang.
Tinggi: 178.430000 cm
Berat: 65.300003 Kg
Kita menggunakan %.2f untuk menentukan batas jumlah angka setelah koma.
Angka 2 sebelum f artinya dua angka di belakang koma.
Tinggi: 178.43 cm
Berat: 65.30 Kg
Memperbaiki Flowchart
Alogaritma:
- Mulai
- Button
- Jika ditekan maka lampu menyala
- Jika tidak ditekan makan lampu tidak menyala
- Selesai
Flowchart:
Mulai
Button
Apakah tidak
menyala?
ya
Menyala
Selesai