2.2.2.1 Mode Text
Mode ini merupakan cara termudah untuk mengirim pesan SMS. Pada mode teks pesan SMS yang kita kirim tidak dilakukan konversi. Teks yang dikirim tetap dalam bentuk aslinya dengan panjang mencapai 160 (7 bit default alphabet) atau 140 (8 bit) karakter. Sesungguhnya, mode teks adalah hasil encodingyang direpresentasikan dalam format PDU. Kelemahan mode ini kita tidak dapat menyisipkan gambar dan nada dering ke dalam pesan yang akan dikirim serta terbatasnya tipe encoding.
2.2.2.2 Mode PDU (Protocol Data Unit)
PDU mode adalah format pesan (message) dalam bentuk heksadesimal oktet dan semi-desimal oktet dengan panjang mencapai 160 (7 bit default alphabet) atau 140 (8 bit) karakter. Data yang mengalir dari atau ke SMS Center (SMSC) haruslah berbentuk PDU. PDU ini berisi bilangan-bilangan heksadesimal yang mencerminkan bahasa I/O.
A. SMS Deliver PDU(Mobile Terminated)
SMS deliver PDU ialah terminal menerima pesan SMS yang datang atau masuk dari SMSC dalam format PDU.

SMS DeliverPDU terdiri dari delapan header, yaitu sebagai berikut:
1. Service Center Address (SCA)
SCA memiliki tiga komponen utama, yaitu len, type of number dan BCD digits. Keterangan sebagai berikut:
· Panjang informasi SMSC dalam oktet (pasangan heksadesimal)
· Type alamat dari SMSC
- Untuk Nasional/lokal kodenya yaitu 81h
- Untuk Internasional kodenya yaitu 91h
· Nomor SMSC
2. PDU (Protocol Data Unit) Type
Nilai default dari PDU untuk SMS-Deliver adalah 04h.
3. Originator Address (OA)
Sama seperti SCA, OA juga memiliki 3 komponen utama, yaitu len, type of number, BCD digits. Keterangan sebagai berikut:
· Len merupakan panjang nomor handphonepengirim (Originator Address) dalam oktet (pasangan heksadesimal)
· Type dari nomor handphonepengirim (Originator Address)
- Untuk Nasional/lokal yaitu 81h
- Untuk Internasional yaitu 91h
· Nomor Handphone Pengirim (Originator Address)
4. Protocol Indentifier (PID)
Merupakan bentuk pesan yang diterima oleh handphone.
5. Data Encoding Scheme (DCS)
Ada dua skema encoding data I/O, yaitu:
· Skema 7 bit
· Skema 8 bit
6. Service Centre Time Stamp (SCTS)
Merupakan tanggal dan waktu SMS di-stamp di SMSC.

Gambar 2.5 Skema Format Waktu
7. User Data Lenght (UDL)
UDL menunjukkan panjang User Data atau panjang dari pesan SMS yang diterima oleh handphone.
8. User Data (UD)
Merupakan isi dari SMS itu sendiri. Pesan “SMS deliver” yang dikodekan menjadi 7 bit default alphabet harus di encoding menjadi 8 bit (oktet) untuk SMS-Transfer.
Ada dua langkah yang harus kita lakukan untuk mengkonversikan sebuah UD menjadi sebuah SMS, yaitu:
· Langkah pertama : mengubah kode 8 bit menjadi 7 bit, yang diwakili oleh pasangan heksadesimal.
· Langkah kedua : mengubah kode 7 bit tersebut menjadi sebuah karakter.
B. SMS Submit PDU (Mobile Originated)
SMS Submit PDU ialah pesan dikirim dari terminal ke SMSC dalam format PDU.

Gambar 2.6 Skema format SMS Submit PDU[2]
1. Service Centre Address (SCA)
SCA memiliki tiga komponen utama, yaitu len, type of number dan BCD digits. Keterangan sebagai berikut:
· Panjang informasi SMSC dalam oktet (pasangan heksadesimal)
· Type alamat dari SMSC
- Untuk Nasional/lokal kodenya yaitu 81h
- Untuk Internasional kodenya yaitu 91h
· Nomor SMSC
2. Protocol Data Unit (PDU) Type
Nilai default dari PDU untuk SMS Submit adalah 11h.
3. Message Reference (MR)
Nomor referensi ini dibiarkan terlebih dulu 0, jadi bilangan heksanya 00. Baru kemudian nomor referensi akan diberikan secara otomatis oleh handphone atau SMS gateway.
4. Destination Address (DA)
Merupakan nomor penerima/yang dituju pesan yang akan dikirimkan. Format penulisan sama seperti halnya penulisan Originator Address (OA) yang terdiri dari 3 bagian, yaitu len, type of number, BCD digits. Keterangan sebagai berikut:
· Len merupakan panjang dari nomor handphone penerima atau nomor handphone yang dituju (Destination Address) dalam oktet (pasangan heksadesimal).
· Type dari nomor handphone yang dituju.
- Untuk Nasional/lokal kodenya yaitu 81h.
- Untuk Internasional kodenya yaitu 91h.
· Nomor handphone yang dituju (Originator Address)
5. Data Coding Scheme (DCS)
Ada dua skema encoding data I/O,yaitu
· Skema 7 bit
· Skema 8 bit
6. Validity Period (VP)
Merupakan jangka waktu sebelum SMS expired/ time out.
Berikut merupakan cara menentukan jangka waktu validitas SMS, sebagai berikut:
Tabel 2.1 Menentukan VP
Nilai VP | Nilai validitas periode |
0 – 143 | (VP + 1) * 5 menit (interval 5 menit s/d 12 jam) |
144 –167 | 12 jam + ((TP – VP – 143) * 30 menit) |
168 – 196 | (VP – 166) * 1 hari |
197 – 255 | (VP – 192) * 1 minggu |
7. User Data Length (UDL)
Menunjukkan panjang pesan SMS yang akan dikirimkan.
8. User Data (UD)
Merupakan isi pesan SMS yang akan dikirimkan. Ada dua langkah yang harus kita lakukan untuk mengkonversikan isi SMS yang akan dikirimkan, yaitu:
· Langkah pertama : mengubah isi pesan SMS dalam bentuk karakter 7 bit.
· Langkah kedua : mengubah kode 7 bit menjadi kode 8 bit, yang diwakili oleh pasangan heksadesimal.
2.3. AT Command
AT Command adalah semua perintah yang dikirimkan ke modem yang diawali dengan AT.[3]Kata AT berasal dari kata “attention” dikarenakan perintah ATdikirimkan lebih dulu atau di utamakan sebelum perintah lain untuk mendapat respon dari modem.[4]
AT Command diperkenalkan oleh Dennis Hayes pada tahun 1977 yang dikenal dengan “smart modem”.Modem bekerja pada baud rate 300 bps. Modem ini terdiri dari sederet instruksi yang mengatur komunikasi dan fitur-fitur di dalamnya. Salah satu contoh sederhana penggunaan AT Command misalnya komunikasi dua buah komputer menggunakan port COM (port R-232). AT Command mempunyai dua mode, yaitu mode data (data mode) dan mode perintah (command mode). Untuk berpindah dari mode data menuju mode perintah dipisahkan oleh tiga tanda plus dan jeda selama satu detik.
Dalam perkembangannya AT Command banyak diterapkan pada mobile handset (telepon sellular). Instruksi dasar AT Command digunakan hampir oleh semua merk telepon sellular. Namun demikian, ada beberapa instruksi yang ditambahkan sendiri pada handset tersebut oleh vendor pembuatnya.
Penggunaan AT Command pada handset telah mempermudah untuk mengetahui segala informasi yang terdapat pada handset tersebut. Dengan menggunkan instruksi tertentu kita akan dapat mengetahui merk, nomor IME dll. Selain itu dengan AT Command kita bisa menyetting instruksi atau mengaktifkan instruksi pada handset untuk melakukan fungsi tertentu, misalnya melakukan panggilan, mengirim sms, dsb.Pelu diketahui pula bahwa masing-masing vendor handset biasanya menyertakan AT Command yang mendukung produk tersebut.
Dibalik tampilan menu Message pada sebuah handphone sebenarnya ada AT Commandyang bertugas mengirim atau menerima data dari atau ke SMSC.
AT Command yang berhubungan dengan SMS yang dipakai sebagai berikut:
AT+CMGL | List SMS |
Test command AT+CMGL=? | Response +CMGL: (list of supported Parameter 0 ”REC UNREAD”: received unread messages (default) 1 ”REC READ”: received read messages 2 ”STO UNSENT”: stored unsent messages 3 ”STO SENT”: stored sent messages 4 ”ALL”: all messages |
Write command AT+CMGL [= | Parameter Response If PDU mode (+CMGF=0) and command are successful: +CMGL: +CMGL: [...]] Parameter GSM04.11), followed by the TPDU according to GSM03.40 in hexadecimal format |
Lanjutan Tabel 2.2 AT Command yang digunakan
AT+CMGR | Read in an SMS |
Test command AT+CMGR=? | Response OK |
Write command AT+CMGR= | Parameter Response If PDU mode (+CMGF=0) and command are successful: +CMGR: Parameter otherwise: +CMS ERROR: |
AT+CMGS | Send an SMS |
Test command AT+CMGS=? | Response OK |
Write command If PDU mode (+CMGF=0) +CMGS= | Parameter Response If sending is successful: +CMGS: If sending is not successful: +CMS ERROR: |
AT+CMGD | Delete an SMS in the SMS memory |
Test command At+CMGD=? | Response OK |
Write command AT+CMGD= | Parameter Response OK/ERROR/+CMS ERROR |
2.4 Dot Matrik Display
Dot matrik merupakan himpunan (array) dari titik-titik yang digunakan untuk menampilkan karakter, simbol, dan gambar. Display dot matrik adalah perangkat display yang dapat digunakan untuk menampilkan informasi yang memerlukan perangkat displaysederhana dengan resolusi terbatas. Tampilan terdiri dari matrik lampu yang disusun dalam konfigurasi persegi yang mana dengan switching pada lampu yang dipilih, teks atau gambar sederhana dapat ditampilkan. Sebuah kontroler dot matrik mengubah instruksi dari procesor menjadi sinyal pada sebagian lampu dalam matrik sehingga tampilan yang diperlukan dapat dihasilkan.
Display dot matrik umum disebut juga LED display. Kebanyakan LED bekerja di daerah inframerah dan cahaya tampak, meskipun sekarang ada UV LEDs. LED merupakan medium penunjuk yang lebih dapat dihandalkan daripada sumber cahaya lainnya seperti lampu neon dan bola lampu pijar.
LED displaymempunyai daya guna yang tinggi dan sangat cocok untuk berbagai aplikasi pengukuran. LED display dapat berupa display numerik atau display alpha numerik. Display numerik hanya menampilkan angka, sedangkan display alpha numerik dapat menampilkan angka dan huruf.
LED display dapat memiliki common anoda atau common katoda. Pada konfigurasi common anoda semua segment pada LED berbagi satu pin anoda. Dalam konfigurasi common katoda semua LED berbagi satu pin katoda. Common cathode adalah rangkaian standard dimana katodanya dihubungkan pada titik ‘umum’ pada rangkaian, biasanya ground.
Spesifikasi displayyang perlu dipertimbangkan ketika mencari digital LED display adalah jumlah baris dan jumlah karakter tiap barisnya. Pilihan warna standard untuk LED adalah merah standard, kuning, merah dengan efisiensi tinggi, oranye, hijau, dan biru. Spesifikasi display lainnya yang perlu dipertimbangkan antara lain panjang gelombang warna, dan jarak pandang. Panjang gelombang dari display ditentukan oleh warna dari LED. Jarak pandang ditentukan oleh kebutuhan ukuran minimum dari objek yang harus dapat dilihat oleh pengguna. Sudut pandang pada sumbu x dan y juga perlu untuk dipertimbangkan. Sudut pandang dari display adalah sudut antara garis normal ke permukaan displaydan sumbu visual/penglihatan pengguna.
2.5 Teori Penguat ( Buffer ) Transistor Darlington
Rangkaian penguat ( buffer ) yang berdasarkan teori Darlington sangat banyak kita temukan di dunia elektronika, salah satunya dengan menggunakan ULN 2003. Buffer (ULN2003) adalah suatu komponen yang berfungsi sebagai penguat Arus. Komponen ini dapat digunakan sebagai penguat input (data bergerak dari A menuju B) dan juga dapat dipakai sebagai penguat output (data bergerak dari B menuju A). Pengaturan untuk fungsi bufferini dipengaruhi oleh beberapa pin dimana pada ULN2003 pin ini terdapat pada kaki ke 1 dinamakan dengan DIR aktif high serta kaki ke 19 dinamakan dengan OE aktif low.
Agar bufferberfungsi sebagai input maka pin OE harus berada pada posisi low dan pin DIR juga berada pada posisi low. Namun jika buffer akan difungsikan sebagai outputmaka pin DIR harus berada pada posisi lowdan OE pada posisi low. Tabel 2.1 menunjukkan tabel kebenaran (Truth Table) dan gambar 2.1 menunjukkan diagram skematik dari ULN 2003.
Tabel 2.3 Truth Tabel IC ULN2003[6]


Gambar 2.7 Diagram skematik ULN 2003[7]
2. 6 Teori scanningkolom
Pada Tugas Akhir ini sistem scanning yang digunakan untuk display dot matrik adalah scanning kolom. Diantarnya salah satunya dengan menggunakan 74LS164atau SIPO (serial input parallel output).
Dengan menggunakan sistem ini tampilan akan dibuat dengan menampilkan tiap kolom dot matrik satu– persatu, dimana kolom – kolom dot matrik dihubungkan pada output 74LS164 dan 7 baris dot matrik dihubungkan pada port B mikrokontroler.
Untuk membuat scanning kolom maka input74LS164 diberi logika high kemudian pada pin clock diberi logika low – high – low untuk memberikan input clock dengan tetap memberi logika high pada pin input.
2.7 Mikrokontroler AT Mega16
2.7.1 Gambaran Umum ATmega16
AVR merupakan seri mikrokontroler CMOS 8-bit buatan Atmel,berbasis arsitektur ISC (Reduced Instruction Set Computer). Hampir semua instruksi dieksekusi dalam satu siklus clock. AVR mempunyai 32 register general-purpose, timer/counter fleksibel dengan mode compare, interrupt internal dan eksternal, serial UART, programmable Watchdog Timer, dan mode power saving. Mempunyai ADC dan PWM internal. AVR juga mempunyai In-System Programmable Flash on-chip yang mengijinkan memori program untuk diprogram ulang dalam sistem menggunakan hubungan serial SPI.
Atmega16 adalah mikrokontroler CMOS 8-bit daya-rendah berbasis arsitektur RISC yang ditingkatkan. Kebanyakan instruksi dikerjakan pada satu siklus clock, Atmega16 mempunyai throughput mendekati 1 MIPS per MHz membuat disainer sistem untuk mengoptimasi komsumsi daya versus kecepatan proses. Pada umumnya mikrokontroler terdiri dari bagian-bagian sebagai berikut: Alamat (address), Data, Pengendali, Memori (RAM atu ROM), dan bagian input-Output.
Arsitektural ATmega16 adalah sebagai berikut:


Gambar 2.8 Blok Diagram ATmega16
2.7.2 Konfigurasi pin-pin ATmega16
o VCC
Sebagai tegangan penyuplai.
o Ground
Sebagai ground.
o Port A (PA7..PA0)
Port A sebagai input analog ke A/D konverter. Port A juga sebagai 8-bit bi-directional port I/O, jika A/D konverter tidak digunakan. Pin-pin port dapat menyediakan resistor-resistor internal pull-up. Ketika port PA0…PA7 digunakan sebagai input dan pull eksternal yang rendah akan menjadi sumber arus jika resistor-resistor pull-up diaktifkan. Pin-pin port A adalah tristate ketika kondisi reset menjadi aktif sekalipun clock tidak aktif.



Gambar 2.9 ATmega16
o Port B (PB7..PB0)
Port B adalah port I/O 8-bit bi-directional dengan resistor-resistor internal pull-up. Buffer output port B mempunyai karaketristik drive yang simetris dengan kemampuan keduanya sink dan source yang tinggi. Sebagai input, port B yang mempunyai pull eksternal yang rendah akan menjadi sumber arus jika resistor-resistor pull-up diaktifkan. Pin-pin port B adalah tri-state ketika kondisi reset menjadi aktif seklipun clock tidak aktif.
o Port C (PC7..PC0)
Port C adalah port I/O 8-bit bi-directional dengan resistorresistor internal pull-up. Buffer output port C mempunyai karaketristik drive yang simetris dengan kemampuan keduanya sink dan source yang tinggi. Sebagai input, port C yang mempunyai pull eksternal yang rendah akan menjadi sumber arus jika resistor-resistor pull-up diaktifkan. Pin-pin port C adalah tri-state ketika kondisi reset menjadi aktif seklipun clocktidak aktif. Jika antarmuka JTAG enable, resistor-resistor pull26 up pada pin-pin PC5(TDI), PC3(TMS), PC2(TCK) akan diktifkan sekalipun terjadi reset.
o Port D (PD7..PD0)
Port D adalah port I/O 8-bit bi-directional dengan resistorresistor internal pull-up. Buffer output port D mempunyai karaketristik drive yang simetris dengan kemampuan keduanya sink dan source yang tinggi. Sebagai input, port D yang mempunyai pull eksternal yang rendah akan menjadi sumber arus jika resistor-resistor pull-up diaktifkan. Pin-pin port D adalah tri-state ketika kondisi reset menjadi aktif seklipun clocktidak aktif.
o Reset
Input Reset, pulsa akan menjadi minimum sekalipun clock bekerja.
o XTAL1
Input ke Inverting Oscillator Amplifier.
o XTAL2
Output dari Inverting Oscillator Amplifier.
o AREF
AREF adalah referensi analog ke A/D converter.
2.7.3 Program Memori
2.7.3.1 Flash Memori
ATmega16 memiliki 16K byte flash memori dengan lebar 16 atau 32 bit. Kapasitas memori itu sendiri terbagi manjadi dua bagian yaitu bagian boot program dan bagian aplikasi program.

Gambar 2.10 Peta Memori Flash
Flash memori memiliki kemampuan mencapai 10.000 write danerase.
2.7.3.2 Memori SRAM
Penempatan memori data yang lebih rendah dari 1120 menunjukkan register, I/O memori, dan data internal SRAM. 96 alamat memori pertama untuk file register dan memori I/O, dan 1024 alamat memori berikutnya untuk data internal SRAM. Lima mode pengalamatan yang berbeda pada data memori yaitu direct, indirect, indirect dis-placement, indirect pre-decreament dan indirect post-increament . Pada file register, mode indirect mulai dari register R26-R31. Pengalamatan mode direct mencapai keseuruhan kapasitas data. Pengalamatan mode indirect dis-placement mencapai 63 alamat memori dari register X atau Y. Ketika meggunakan mode pengalamatan indirect dengan pre-decrement dan post increment register X, Y, dan Z akan di-dicrement-kan atau di-increment-kan. Pada ATMega16 memiliki 32 register, 64 register I/O dan 1024 data internal SRAM yang dapat mengakses semua mode-mode pengalamatan
![]() |
Gambar 2.11 Peta Memori SRAM
2.7.3.3 Memori EEPROM
Pada EEPROM ATmega16 memiliki memori sebesar 512 byte dengan daya tahan 100.000 siklus write/read.
Register-register pada memori EEPROM :
o Bit 15..9
Bit ini sebagai bit-bit bank pada Atmega16 dan akan selalu membaca zero.

Gambar 2.12 Bit 15..8
o Bit 8..0
Bit-bit ini sebagai alamat EEPROM.
o Bit 7..4
Bit-bit ini sebagai data EEPROM.

Gambar 2.13 Bit 7..0
o Bit 3
Bit ini sebagai Enable Interupt Ready pada EEPROM.
o Bit 2
Bit ini sebagai Enable Interupt Master pada EEPROM.
o Bit 1
Bit ini sebagai write enable pada EEPROM.
o Bit 0
Bit ini sebagai read enable pada EEPROM.
Tabel 2.4 Waktu pemrograman EEPROM

2.7.4 Port sebagai input/output digital
Seperti yang telah disebutkan ATmega16 mempunyai empat buah port yang bernama PortA, PortB, PortC, dan PortD. Keempat port tersebut merupakan jalur bidirectional dengan pilihan internal pull-up. Tiap port mempunyai tiga buah register bit, yaitu DDxn, PORTxn, dan PINxn. Huruf ‘x’mewakili nama huruf dari port sedangkan huruf ‘n’ mewakili nomor bit.
Bit DDxn terdapat pada I/O address DDRx, bit PORTxn terdapat pada I/O address PORTx, dan bit PINxn terdapat pada I/O address PINx. Bit DDxn dalam regiter DDRx (Data Direction Register) menentukan arah pin. Bila DDxn diset 1 maka Px berfungsi sebagai pin output. Bila DDxn diset 0 maka Px berfungsi sebagai pin input. Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin input, maka resistor pull-up akan diaktifkan. Untuk mematikan resistor pull-up, PORTxn harus diset 0 atau pin dikonfigurasi sebagai pin output.
Pin port adalah tri-state setelah kondisi reset. Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin output maka pin port akan berlogika 1. Dan bila PORTxn diset 0 pada saat pin terkonfigurasi sebagai pin output maka pin port akan berlogika 0. Saat mengubah kondisi port dari kondisi tri-state (DDxn=0, PORTxn=0) ke kondisi output high (DDxn=1, PORTxn=1) maka harus ada kondisi peralihan apakah itu kondisi pull-up enabled (DDxn=0, PORTxn=1)atau kondisi output low (DDxn=1, PORTxn=0). Biasanya, kondisi pull-up enabled dapat diterima sepenuhnya, selama lingkungan impedansi tinggi tidak memperhatikan perbedaan antara sebuah strong high driver dengan sebuah pull-up. Jika ini bukan suatu masalah, maka bit PUD pada register SFIOR dapat diset 1 untuk mematikan semua pull-up dalam semua port. Peralihan dari kondisi input dengan pull-up ke kondisi output low juga menimbulkan masalah yang sama. Kita harus menggunakan kondisi tri-state (DDxn=0, PORTxn=0) atau kondisi output high (DDxn=1, PORTxn=0) sebagai kondisi transisi.
Tabel 2.5 Konfigurasi pin port

Bit 2 – PUD : Pull-up Disable
Bila bit diset bernilai 1 maka pull-up pada port I/O akan dimatikan walaupun register DDxn dan PORTxn dikonfigurasikan untuk menyalakan pull-up (DDxn=0, PORTxn=1).
2.8 BAHASA C
Sejarah dan Standar C
Akar dari bahasa C adalah dari bahasa BCPL yang dikembangkan oleh Mrtin Richards pada tahun 1967. Bahasa ini memberikan ide kepada Ken Thomson yang kemudian mengembangkan bahasa yang disebut dengan B pada tahun 1970. Perkembangan selanjutnya dari bahasa B adalah Bahasa C oleh Dennis Ricthie sekitar tahun 1970-an di Bell Telephone Laboratories Inc. (sekarang adalah AT dan T Bell Laboratories). Bahasa C pertama kali digunakan di computer Digital Equipment Corporation PDP-11 yang menggunakan system opersi UNIX C adalah bahasa yang standar, artinya suatu program yang ditulis dengan bahasa C tertentu akan dapat dikonversi dengan bahasa C yang lain dengan sedikit modifikasi. Standar bahasa C yang asli adalah standar dari UNIX. Patokan dari standar UNIX ini diambil dari buku yang ditulis oleh Brian Kerningan dan Dennis Ritchie berjudul “The C Programming Language”, diterbitkan oleh Prentice-Hall tahun 1978. Deskripsi C dari Kerninghan dan Ritchie ini kemudian kemudian dikenal secara umum sebagai “K dan R C”.
Tipe Data
Didalam bahasa pemrograman computer, data yang digunakan umumnya dibedakan menjadi data nilai numerik dan nilai karakter. Nilai numerik dapat dibedakan lagi menjadi nilai numerik integer dan nilai numerik pecahan. Nilai numeric pecahan dapat dibedakan lagi menjadi nilai numerik pecahan ketetapan tungga dan nilai numerik pecahan ketetapan ganda. Bahasa-bahasa pemrograman computer membedakan
data ke dalam beberapa tipe dengan tujuan supaya data menjadi efisien dan efektif.
C menyediakan lima macam tipe data dasar, yaitu tipe data integer (nilai numerik bulat yang dideklarasikan dengan int), floatingpoint(nilai numerik pecahan ketetapan tunggal yang dideklarasikan dengan float), double-precision (nilai numerik pecahan ketetapan ganda yang dideklarasikan dengan double), karakter (dideklarasikan dengan char), dan kosong (dideklarasikan dengan void). Int, float, double dan char dapat dikombinasikan dengan pengubah (modifier) signed,unsigned, long dan short. Hasil dari kombinasi tipe data ini dapat dilihat pada table 2.6.
Tabel 2.6 Kombinasi Tipe Data

Statemen Bahasa C
Statemen if
- Bentuk if Tunggal Sederhana
Sintak dari bentuk if tunggal sederhana adalah sebagai berikut:
if(kondisi) statement;
- Bentuk if –else
Sintak dari bentuk statemen if –else adalah sebagai berikut:
if(kondisi) statemen;
Else statemen;
- Bentuk if –else-if…else
Bentuk ini disebut dengan if-else-if tangga,karena memiliki bentuk seperti tangga. Sintakdari bentuk ini adalah sebagai berikut:
if(kondisi1) statemen;
else if(kondisi2)
statemen;
ekse if(kondisi3)
statemen;
.
.
else
statemen;
- Bentuk if Bersarang
Statemen if bersarang (nested if) merupkan statemen if yang berada di dalam (merupakan bagian dari) statemen if lainnya. Bentuk dari sttemen ini adalah sebagai berikut:
If(kondisi1)
If(kondisi2)
.
.
if(kondisin)
statemen;
else
statemen;
.
else
statemen;
else
statemen;
Statemen switch
- Statemen switch Tunggal
Bentuk sintak dari statement switch tunggal adalah sebagai berikut:
switch(kondisi)
{
case konstanta1:
statemen-statemen;
break;
casekonstanta2:
statemen-statemen;
break;
.
.
default;
statemen-statemen;
}
- Statemen switch Bersarang
Statemen switch bersarang adalah statemen switch yang satu berada didalam statemen switch yang lain.
Perulangan
- Statemen for
Statemen for mempunyai bentuk umum sebagai berikut:
for(awal, akhir, peningkatan) statemen;
- Perulangan while
Bentuk umum dari statemen while adalah sebagai berikut:
while(kondisi) statemen;
- Perulangan do – while
Bentuk umum dari perulangan ini adalah sebagai berikut:
do statemen while (kondisi);
Lompatan
Statemen goto dapat digunakan untuk melompati dari suatu proses ke bagian proses yang lainnya di dalam program.Bentuk umum dari statemen goto adalah sebagai berikut:
goto label;