Wednesday, April 9, 2014

Perbedaan For, While dan Do-While di Java


Pembahasan perulangan di Java mulai dari While, Do-while dan For sudah kita bahas satu persatu. Sekarang saatnya membandingkan untuk mengetahui perbedaan utama dari ketiga perulangan tersebut.

  1. Perulangan For, program hanya akan menjalankan inisialisasi sebanyak satu kali kemudian akan dicek pada pernyataabn kondisi, bila kondisi bernilai benar maka modifier akan dijalankan diikuti dengan pernyataan. Setelah itu program akan kembali melakukan pengecekan kondisi dan apabila masih bernilai benar akan dilanjutkan dengan menjalankan modifier dan pernyataan. Program akan berputar mengecek kondisi, modifier dan pernyataan. Lalu sampai kapan ? Tentunya sampai kondisi tidak terpenuhi atau bernilai salah. Makanya kita kadang menemukan program yang outputnya tidak berhenti karena perulanganya berjalan terus. hal itu disebabkan karena kondisi selalu bernilai benar.
  2. Perulangan While, Pada perintah While  pengecekan dilakukan pada awal blok.
  3. Perulangan Do-While, Pengecekan dilakukan di akhir blok.  
  4. Persamaan Perulangan While dan Do-While adalah hanya menggunakan 1 parameter. Meskipun demikian tetap menghasilkan perulangan yang sama dengan for yang menggunakan  3 buah parameter . Hal ini dikarenakan bagian inisialisasi dan modifiernya kita masukkan dalam baris program biasa sehingga hasil outputnya pun tetap sama dengan menggunakan for.

8 Tipe Data Primitif Java

Tipe data adalah hal yang penting dalam konsep pemrograman. Tipe data ini akan membantu kita dalam membedakan setiap variabel yang kita buat. Java memiliki tipe data primitif,yaitu tipe data yang tidak diturunkan dari objek manapun. Java memiliki 8 tipe data primitif diantaranya boolean, char, byte, short, int, long, float, dan double. Berikut penjelasan mengenai 8 tipe data diatas.

  • Boolean adalah tipe yang mengharuskan operannya bernilai boolean (true atau false). Boolean literal tidak boleh berharga 0 atau 1. Boolean tidak memiliki range dan nilai default-nya adalah false. Tipe boolean adalah tipe yang menjadi hasil dari operator logika. Panjang tipe boolean adalah 16 bit.
  •  Char adalah tipe data yang memilik panjang 16 bit sama dengan boolean. Panjang karakter sebesar ini karena berada pada rentang 0 sampai dengan 65.536. Kumpulan  karakter standar (yang biasa disebut dengan karakter ASCII) berada pada rentang nilai 0 sampai 127, dan perluasan sekumpulan karakter 8-bit (ISO-Latin-1) rentang nilainya 0 sampai 255. Nilai karakter ini diapit dengan tanda petik tunggal. Nilai default dari tipe data ini adalah ‘\u0000’.
  • Byte adalah tipe data integral 8 bit. Memiliki rentang nilai antara -27 sampai 27 – 1 atau dari -128 sampai 127. Nilai default dari tipe data byte adalah 0.
  • Short adalah tipe data integral 16-bit. Tipe Memiliki rentang nilai antara -215 sampai 215 – 1 atau dari -32768 sampai 32767. Nilai default dari short adalah 0.
  • Int adalah tipe data Integral 32-bit. Memiliki rentang nilai antara -231 sampai 231 – 1 atau dari -2,147,483,648 sampai 2,147,483,647. Nilai default dari tipe data int adalah 0.




  •  Long adalah tipe data  Integral 64-bit. Memiliki rentang nilai antara -263 sampai 263 – 1 atau dari -9,223,372,036,854,775,808 sampai 9,223,372,036,854,775,807. Nilai default dari tipe data long adalah 0L, jika tidak diberi akhiran L memiliki default litral int.
  • Float adalah tipe data  Floating Point 32-bit. Nilai literalnya mengandung pecahan (dipisahkan dengan tanda titik ‘.’). Nilai default dari tipe data float adalah 0.0F, jika tidak diberi akhiran F memiliki default nilai literal double.
  • Double adalah tipe data  Floating Point  64-bit. Nilai default dari ipe data double adalah 0.0.

   
Spesifikasi panjang bit,  range, dan nilai default tipe data primitif

tipe data priitive

Thursday, April 3, 2014

Queue Dalam Bahasa Pemrograman C

Queue (antrian) adalah barisan elemen yang apabila elemen ditambah maka penambahannya berada di posisi belakang (rear) dan jika dilakukan pengambilan elemen dilakukan di elemen paling depan (front). Oleh karena itu, queue bersifat FIFO (first in first out).

Operasi-operasi dasar dari sebuah queue adalah :
1. Enqueue : proses penambahan elemen di posisi belakang
2. Dequeue : proses pengambilan elemen di posisi depan
Selain operasi dasar di atas, ada pula operasi-operasi lain yang dapat dilakukan terhadap sebuah queue yaitu :
1. Operasi pemeriksaan queue kosong (fungsi kosong)
2. Operasi pemeriksaan queue penuh (fungsi penuh).
3. Operasi inisialisasi queue (fungsi inisialisasi)

Adapun presentasi queue dapat dilakukan dengan 2 cara yaitu :
Dengan menggunakan array statis
Operasi-operasi yang dapat dilakukan dalam queue yang menggunakan representasi array statis adalah :

- Pendeklarasian sebuah queue
Setiap queue memiliki elemen-elemen (field) berupa posisi depan, posisi belakang, elemen antrian, dan maksimal elemennya.

Adapun pendeklarasian queue dalam bahasa C adalah :

#define maks 5
struct TQueue{
int depan,belakang;
int maks_queue;
int antrian[maks];
};
TQueue Q,Queue,Q2;//deklarasi variable bertipe TQueue

- Inisialisasi Queue
Inisialisasi queue adalah proses pemberian nilai 0 untuk field depan dan belakang dari queue dan juga pemberian nilai maks ke maks_queue yang menunjukan banyaknya maksimal data dalam queue.
Karena dalam bahasa C elemen sebuah array dimulai dengan 0 maka proses inisialisasi nilai depan dan belakang bukan 0 tetapi -1 sehingga ketika ada proses penambahan elemen (enqueue) akan bernilai 0 sehingga elemen tersebut akan disimpan dalam elemen antrian pada posisi 0.
Implementasi fungsi inisialisasi queue dalam bahasa C adalah
void inisialisasi(TQueue *Q)
{
Q->maks_queue=maks;
Q->depan=-1;
Q->belakang=-1;
}
Cara pemanggilannya adalah :
Inisialisasi(&Q);

- Fungsi Kosong
Fungsi kosong digunakan untuk memeriksa apakan keadaan queue tidak memiliki elemen. Fungsi kosong didapatkan dengan memeriksa field belakang dari queue. Jika field belakang bernilai 0 maka berarti queue kosong dan jika tidak 0 maka berarti queue mempunyai elemen.
Implementasi dalam bahasa C agak berbeda karena elemen array dimulai dari 0 sehingga pemeriksaan nilai belakang dilakukan dengan membandingkannya dengan nilai -1. Jika nilai belakang bernilai -1 maka queue kosong (true) dan jika lebih dari -1 berarti queue tidak kosong (false). Sehingga implementasinya dalam bahasa C adalah :
int kosong(TQueue Q)
{
if (Q.belakang==-1)
return 1;
else
return 0;
}
Cara pemanggilannya adalah :
if(kosong(Q))// jika queue Q kosong
……
- Fungsi Penuh
Fungsi penuh berguna untuk memeriksa apakah suatu queue telah penuh. Fungsi ini diperlukan ketika proses enqueue. Fungsi ini akan bernilai benar (true) jika field belakang sama dengan nilai maks_queue jika tidak sama dengan berarti queue belum penuh.
Dalam bahasa C perbandingan yang dilakukan adalah bukan dengan maks_queue tetapi dengan nilai maks_queue-1 karena elemen array dalam bahasa C dimulai dari posisi 0. Implementasi dalam bahasa C adalah :
int penuh(TQueue Q)
{
if(Q.belakang==Q.maks_queue-1)
return 1;
else
return 0;
}
Cara pemanggilannya adalah :
If(!penuh(Q)) //if queue Q tidak(!) penuh
.....

- Operasi Enqueue
Proses enqueue adalah proses untuk penambahan di posisi belakang. Penambahan ini dilakukan jika kondisi queue tidak penuh. Jika keadaan masih kosong, maka field depan dan belakang bernilai 1 tetapi jika sudah mempunyai elemen maka yang nilai belakang harus bertambah 1. Kemudian data baru disimpan di array pada posisi belakang.
Implementasi dalam C harus melakukan penyesuaian karena elemen array C dimulai dari 0 sehingga ketika queue masih kosong pemberian nilai depan dan belakang adalah 0 bukan 1. Untuk lebih jelasnya perhatikan potongan program di bawah ini :
void enqueue(TQueue *Q, int data)
{
if(!penuh(*Q))
{
if(empty(*Q)
{
Q->depan=0;
Q->belakang=0;
}
else
Q->belakang++;
Q->antrian[Q->belakang]=data;
}
else
printf("Queue Telah Penuh\n");
}
Cara penggunaannya :
int data=7
enqueue(&Q,data);

- Operasi Dequeue
Operasi dequeue adalah proses pengambilan elemen queue. Tentunya elemen yang diambil selalu dari elemen pertama (1). Setelah elemen pertama diambil, maka akan diperlukan proses pergeseran elemen data setelah elemen data yang diambil (dari posisi ke-2 sampai posisi paling belakang), dan kemudian posisi belakang akan dikurangi 1 karena ada data yang diambil.
Implementasi dalam bahasa C dilakukan dengan pengambilan elemen pada posisi 0, sehingga fungsi dequeue-nya menjadi :

int dequeue(TQueue *Q)
{
int data,i;
if(!kosong(*Q))
{
data=Q->antrian[Q->depan];
for(i=0;i<=Q->belakang-1;i++)
Q->antrian[i]=Q->antrian[i+1];
Q->belakang--;
return data;
}
else
{
printf("Queue Kosong.\n");
return 0;
}
}
Cara penggunaan fungsi tersebut adalah :
int data;
data=dequeue(&Q); //ambil data dari dequeue pada queue Q
printf(“%d”,data);

2. Dengan menggunakan linked list.
Proses penyimpanan elemen queue dalam linked list mirip dengan operasi pada single linked list yang menggunakan penyimpanan tambah akhir dan hapus awal.

Operasi Enqueue
Proses enqueue dalam queue linked list adalah dengan menambahkan elemen baru ke posisi paling belakang (sambungkan field berikutnya dari field belakang ke posisi pointer baru). Setelah itu, pointer penunjuk belakang harus berpindah ke posisi baru tersebut. Proses ini seperti proses penambahan di belakang pada single linked list.

Operasi Dequeue
Proses dequeue untuk queue linked list adalah dengan mengambil data yang ditunjuk pointer depan dan kemudian pointer yang depan tersebut diambil dan kemudian dihapus. Pointer depan harus berpindah ke elemen antrian berikutnya. Proses tersebut dilakukan hanya jika linked list tidak kosong. Proses ini mirip dengan proses penghapusan data awal pada single linked list.

QUEUE DENGAN CIRCULAR ARRAY
Jika kita menggunakan array untuk queue seperti di atas, maka ketika ada proses pengambilan (dequeue) ada proses pergeseran data. Proses pergeseran data ini pasti memerlukan waktu apalagi jika elemen queue-nya banyak. Oleh karena itu solusi agar proses pergeseran dihilangkan adalah dengan metode circular array.Atau agar lebih jelas, array di atas dapat dibayangkan ke dalam bentuk seperti lingkaran di bawah ini. Aturan-aturan dalam queue yang menggunakan circular array adalah :

1. Proses penghapusan dilakukan dengan cara nilai depan (front) ditambah 1 : depan=depan + 1.
2. Proses penambahan elemen sama dengan linear array yaitu nilai belakang ditambah 1 : belakang=belakang + 1.
3. Jika depan = maks dan ada elemen yang akan dihapus, maka nilai depan = 1.
4. Jika belakang = maks dan depan tidak 1 maka jika ada elemen yang akan ditambahkan, nilai belakang=1

5. Jika hanya tinggal 1 elemen di queue (depan = belakang), dan akan dihapus maka depan diisi 0 dan belakang diisi dengan 0 (queue kosong).

Operasi-operasi yang dapat terjadi dalam queue yang menggunakan circular array adalah :

1. Pendeklarasian Queue
Setiap queue memiliki elemen-elemen (field) berupa posisi depan, posisi belakang, elemen antrian, dan maksimal elemennya.

2. Inisialisasi Queue
Inisialisasi queue adalah proses pemberian nilai 0 untuk field depan dan belakang dari queue dan juga pemberian nilai maks ke maks_queue yang menunjukan banyaknya maksimal data dalam queue.
Karena dalam bahasa C elemen sebuah array dimulai dengan 0 maka proses inisialisasi nilai depan dan belakang bukan 0 tetapi -1 sehingga ketika ada proses penambahan elemen (enqueue) akan bernilai

3. Fungsi Kosong
Suatu queue yang menggunakan circular array dapat dikatakan kosong jika nilai yang menunjuk posisi depan atau belakang mempunyai nilai 0.
Implementasi dalam bahasa C, perbandingan posisi depan atau belakang dilakukan bukan dengan angka 0 tetapi angka -1 karena angka 0 menunjukan elemen pertama dari array.

4. Fungsi Penuh
Suatu queue akan disebut penuh jika terjadi 2 hal yaitu jika nilai depan mempunyai nilai 1 dan posisi belakang sama dengan maks_queue atau jika posisi depan sama dengan posisi belakang +1. Jika salah satu dari 2 hal tersebut terjadi maka fungsi penuh mempunyai nilai true dan jika tidak terjadi 2 hal tersebut maka fungsi bernilai false.
Implementasi dalam bahasa C agar beda karena posisi awal array bukan 1 tapi 0 dan posisi terakhir data adalah maks_queue-1 bukan maks_queue.

5. Operasi Enqueue
Proses enqueue data hanya bisa dilakukan jika queue tidak kosong. Ada beberapa hal yang harus diperhatikan ketika akan melakukan enqueue pada circular array, diantaranya adalah :

- Kondisi ketika queue masih kosong. Jika ini terjadi, maka posisi depan dan belakang bernilai 0.
- Ketika ketika nilai belakang sama dengan maks_queue, maka posisi belakang adalah 0. Ini terjadi ketika posisi depan lebih besar dari 0 (pernah ada dequeue).
- Ketika nilai belakang masih lebih kecil dari maks_queue maka posisi belakang ditambah 1 : belakang=belakang+1;

Dari ketentuan-ketentuan di atas dapat diimplementasikan dalam bahasa C dengan mengganti beberapa hal yaitu posisi perbandingan/pengisian dengan nilai 0 diganti dengan perbandingan/pengisian dengan nilai -1 dan perbandingan dengan nilai maks_queue diganti dengan maks_queue-1. Itu disebabkan karena dalam bahasa C array dimulai dari 0.

6. Operasi Dequeue
Proses dequeue hanya bisa dilakukan jika queue dalam keadaan tidak kosong. Ada beberapa kondisi yang harus diperhatikan ketika dequeue elemen queue yaitu :

- Kondisi ketika posisi depan sama dengan posisi belakang (queue hanya memiliki 1 elemen) maka nilai depan dan belakang diisi dengan 0 (queue kosong).
- Jika posisi depan sama dengan posisi maks_queue maka posisi depan berpindah ke 1.
- Selain itu, posisi depan ditambah dengan 1 : depan=depan+1

Ketika kita mengimplementasikannya dalam bahasa C, maka ada beberapa hal yang harus diganti adalah semua pengisian/perbandingan dengan angka 1 diganti dengan 0 (karena elemen array dalam bahasa C adalah 0), serta ketika ada perbandingan/pengisian dengan nilai 0 diganti dengan -1 dan perbandingan/pengisian dengan nilai maks_queue diganti dengan maks_queue-1.

Encapsulasi pada Java






A. TUJUAN

• Memahami konsep Encapsulasi

B. DASAR TEORI
Encapsulasi atau Pengkapsulan adalah cara “membungkus” data dan method yang menyusun kelas sehingga kelas dapat dipandang sebagai suatu modul dan menyembunyikannya dari dunia luar. Dunia luar disini adalah data, method, kelas, interface, atau package lain yang mungkin akan berinteraksi dengan modul tersebut. Dengan kata lain enkapsulasi adalah suatu cara untuk menyembunyikan implementasi detail dari suatu class.

contoh :
class PBO
{
public String kapsul = “Pemrograman Berbasis Objek”;
}
public class enkapsulasi

{
public static void main(String[] args)
{
PBO program = new PBO();
System.out.print(“hasil encapsulasi : “ + program.kapsul);
}
}

Enkapsulasi mempunyai dua hal mendasar, yaitu :
1. Information Hiding
Sebelumnya kita dapat mengakses anggota class baik berupa atribut maupun method secara langsung dengan menggunakan objek yang telah kita buat. Hal ini dikarenakan akses kontrol yang diberikan kepada atribut maupun method yang ada di dalam class tersebut adalah ‘public’. Kita dapat menyembunyikan informasi dari suatu class sehingga anggota class tersebut tidak dapat diakses dari luar, caranya adalah hanya dengan memberikan akses kontrol ‘private’ ketika mendeklarasikan atribut atau method. Proses ini disebut dengan information hiding.
2. Interface to access data
Jika kita telah melakukan information hiding terhadap suatu atribut pada suatu class, lalu bagaimana cara melakukan perubahan terhadap atribut yang kita sembunyikan tersebut, caranya adalah dengan membuat suatu interface berupa method untuk menginisialisasi atau merubah nilai dari suatu atribut tersebut.
Keuntungan menerapkan Encapsulasi adalah :
1. Bersifat independen
Suatu modul yang terencapsulasi dengan baik akan bersifat independen dari modul yang lainnya sehingga dapat digunakan pada bagian manapun dari program. Ia tidak akan terikat pada bagian tertentu dari program.
2. Bersifat transparan
Bila melakukan modifikasi pada suatu modul, maka perubahan tersebut akan dirasakan juga oleh bagian program yang menggunakan modul tersebut.
3. Menghindari efek diluar perencanaan
Modul yang terencapsulasi dengan baik hanya akan berinteraksi dengan bagian program lainnya melalui variable-variabel input/output yang telah didefinisikan sebelunnya. Dengan demikian, akan mereduksi kemungkinan adanya hasil imbas pemrosesan yang di luar perencanaan semula.
4. Melindungi listing program
Saat program didistribusikan pada khalayak, untuk melindungi listing program. Anda dapat menerapkan prinsip enkapsulasi. Di sini pengguna hanya dapat menggunakan program melalui variable input atau output yang didefinisikan tanpa disertai bagimana proses yang terjadi di dalam modul tersebut.
Implementasi UML
Berikut ini kita akan coba untuk lebih memahami penggunaan konsep enkapsulasi dengan mengimplementasikan UML berikut :
UML Vehicle class tidak dengan hiding
BAHAN PRETEST –PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK
Vehicle class berisi atribut yang mempunyai modifier public(+), sehingga TestVehicle1 sebagai test program mempunyai akses langsung terhadap atribut pada Vehicle.
1. Accessor Methods
Untuk mengimplementasikan enkapsulasi, kita tidak menginginkan sembarang object dapat mengakses data kapan saja. Untuk itu, kita deklarasikan atribut dari class sebagai private. Namun, ada kalanya dimana kita menginginkan object lain untuk dapat mengakses data private. Dalam hal ini kita gunakan accessor methods. Accessor Methods digunakan untuk membaca nilai variabel pada class, baik berupa instance maupun static. Sebuah accessor method umumnya dimulai dengan penulisan get. Method ini juga mempunyai sebuah return value. Contoh penggunaan accessor method adalah getAverage,
public class Studentrecord
{
private string name;
..
..
public double getAverage()
{
double result = 0;
result=(mathGrade+englishGrade+scienceGrade)/3;
return result;
}
}
Method getAverage() menghitung rata – rata dari 3 nilai siswa dan menghasilkan nilai return value dengan nama result
2. Mutator Method
Bagaimana jika kita menghendaki object lain untuk mengubah data? Yang dapat kita lakukan adalah membuat method yang dapat memberi atau mengubah nilai variable dalam class, baik itu berupa instance maupun static. Method semacam ini disebut dengan mutator methods. Sebuah mutator method umumnya tertulis set. Mari kita perhatikan salah satu dari implementasi mutator method :
public class StrudentRecord
{
private string name;
..
..
public void setNama (String temp)
{
nama = temp;
}
}
Dimana, public – Menjelaskan bahwa method ini dapat dipanggil object luar class void – Method ini tidak menghasilkan return value setName – Nama dari method (String temp) – Parameter yang akan digunakan pada method Pernyataan berikut : name = temp; mengidentifikasi nilai dari temp sama dengan name dan mengubah data pada instance variable name. Perlu diingat bahwa mutator methods tidak menghasilkan return value. Namun berisi beberapa argumen dari program yang akan digunakan oleh method

Tuesday, April 1, 2014

LCD 16×2: Pemrograman LCD Karakter (16×2) Menggunakan CV AVR



LCD (Liquid Crystal Display) adalah modul penampil yang banyak digunakan karena tampilannya menarik. LCD yang paling banyak digunakan saat ini ialah tipe LCD 16×2 M1632 karena harganya cukup murah. LCD 16×2 M1632 merupakan modul LCD dengan tampilan 2×16 (2 baris x 16 kolom) dengan konsumsi daya rendah. Modul tersebut dilengkapi dengan mikrokontroler yang didesain khusus untuk mengendalikan LCD.







LCD 16x2
Image: LCD 16×2
Untuk rangkaian interfacing, LCD 16×2 tidak banyak memerlukan komponen pendukung. Hanya diperlukan satu variable resistor untuk memberi tegangan kontras pada matriks LCD.
Dengan menggunakan CodeVision AVR, pemrograman untuk menampilkan karakter atau string ke LCD 16×2 sangat mudah karena didukung library yang telah disediakan oleh CodeVision AVR itu sendiri. Kita tidak harus memahami karakteristik LCD secara mendalam, perintah tulis dan inisialisasi sudah disediakan oleh library dari CodeVision AVR.

Pemrograman LCD 16×2 Menggunakan CV AVR

Buat proyek baru pada CV AVR. Setting chip AVR ATmega8535 dan clock 11.059200 MHz, kemudian setting bagian LCD seperti gambar berikut:
CV AVR
Setelah itu Generate file, save, and exit.
Perhatikan blok-blok program berikut:
...
// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>
...
Arti dari blok instruksi diatas adalah setting LCD di PORT C yang kemudian akan me-link ke library lcd.h yang didalamnya terdapat instruksi-instruksi untuk akses LCD secara langsung.
Untuk inisialisasi cukup dengan instruksi berikut:
...
// LCD module initialization
lcd_init(16);
...
Instruksi-Instruksi Di Library LCD
unsigned char lcd_init(unsigned char lcd_columns);
Instruksi ini berfungsi untuk inisialisasi LCD kemudian dilanjutkan dengan penghapusan tampilan LCD dan menempatkan posisi kursor di kolom 0 baris 0. lcd_columns harus memiliki nilai yang sesuai dengan tipe LCD, missal 16. Fungsi ini harus dipanggil pertama kali sebelum memanggil fungsi-fungsi LCD yang lain.
Contoh:
lcd_init(16);
unsigned char lcd_read_byte(unsigned char addr);
Instruksi ini membaca karakter dari RAM LCD.
Contoh:
Ch=lcd_read_byte(0x10);
void lcd_clear(void);
Instruksi ini akan menghapus tampilan LCD dan menempatkan kursor di kolom 0 dan baris 0
Contoh:
lcd_clear();
void lcd_gotoxy(unsigned char x, unsigned char y);
Instruksi ini untuk menempatkan posisi kursor pada kolom x dan baris y.
Contoh:
lcd_gotoxy(4,1);//menempatkan kursor pada kolom 4 dan baris 1
void lcd_putchar(char c);
Instruksi ini untuk menampilkan karakter pada posisi kursor saat itu.
Contoh:
lcd_gotoxy(5,0);
lcd_putchar(0x41); //menampilkan karakter A
                   //lihat tabel karakter LCD
                   //dapat juga ditulis lcd_putchar(‘A’);
void lcd_putsf(char flash *str);
Instruksi ini berfungsi untuk menampilkan string pada posisi kursor saat itu.
Contoh:
lcd_gotoxy(0,1);
lcd_putsf(“Halo Eko”); //menampilkan string Halo Eko
void lcd_puts(char *str);
Instruksi ini berfungsi untuk menampilkan string yang sebelumnya disimpan di SRAM. Sebelum memanggil instruksi ini, sebelumnya string sudah ditempatkan di SRAM. Instruksi ini memerlukan pustaka stdio.hex .
Contoh:
...
#include <mega8535>
#include <stdio.h> //tambahkan library
...
//Declare your global variable here
char buf[33];//deklarasi variable untuk menyimpan data string
//LCD module initialization
lcd_init(16);
lcd_gotoxy(0,1);
sprint(buf,”Angka %d”, 14);//menyimpan string ke SRAM
lcd_puts(buf);             //menampilkan ke LCD
Contoh aplikasi program yang disimulasikan di software Proteus:
lcdproteus