Sabtu, 05 Januari 2013

Pesan Singkat Tentang Algoritma



PESAN

MR.Dody Sanjaya.Itulah Dosen Terkocak yang pernah saya jumpai di C-121 (Kelas di Kampus STIMIK-STIKOM-BALI.Dosen yang pemurah hati dan humoris ini,mampu menarik perhatian sejumlah mahasiswa/i termasuk saya untuk belajar Algoritma sampai saat ini. MR.Dody Sanjaya memiliki kepercayaan diri yang sangat tinggi saat dia menyampaikan/mengajarkan mata kuliah kami semua.Dosen ini selain periang juga sangat baik hati. MR. Dody Sanjaya memberikan toleransi tiga absen berupa: yang pertama sakit,dan yang kedua dan ketiga ijin,selain daripada itu,alpha..
Dosen ini memiliki prioritas,yakni ramah kepada orang dan tidak langsung mewajibkan kita untuk ramah kepada semua dosen tanpa terkecuali. Sehingga mudah untuk naik Kelas dan disayangi oleh dosen,kakak senior,beserta staff dan pimpinan STIMIK STIKOM-BALI.. So.. you should smile with all of people in STIMIK STIKOM-BALI and don't forget IT!!!! STIKOM-BALI........ ALWAYS THE FIRST!!!!!!

Bagian Penting Belajar Algoritma





Menurut saya...,Bab yang diajarkan/disampaikan MR.Dody Sanjaya yang menurut saya sangat penting adalah Pengenalan Algoritma. Mengapa? Karena pada Bab ini kita dikenalkan cara awal untuk menuju tahap berikutnya yaitu Decision,Type data,Array,dan yang terakhir Void.Semua Bab tersebut saling kait-mengait mulai dari awal Bab sampai Bab terakhir Void jadi menurut saya yang sangat penting adalah Bab 1 yaitu Dasar dari Algoritma.

KESAN DAN PESAN Selama Menempuh Perkuliahan Algoritma di STIMIK STIKOM-BALI



KESAN

Kesan saya selama menempuh mata kuliah Algoritma yang diajarkan dengan dosen yang beratas namakan Dody Sanjaya. Berikut ulasan penjelasan saya mengenai pentingnya belajar Algoritma:
karena Algoritma sendiri tersebut mendefinisikan cara pandang,cara berfikir kita dan secara langsung memudahkan cara berfikir kita dalam memecahkan masalah dalam mata kuliah tersebut dan dapat pula memecahkan kasus" kehidupan dalam sehari-hari baik di dalam rumah,maupun di luar rumah.


 



Pengertian Void


Fungsi Void
Fungsi yang void sering disebut juga prosedur . Disebut void karena fungsi tersebut tidak mengembalikan suatu nilai keluaran yang didapat dari hasil proses fungsi tersebut.
Ciri:
1. Tidak adanya keyword return.
2. tidak adanya tipe data di dalam deklarasi fungsi.
3. menggunakan keyword void.
4. Tidak dapat langsung ditampilkan hasilnya
5. Tidak memiliki nilai kembalian fungsi
Fungsi non-void
Fungsi non-void disebut juga function. Disebut non-void karena mengembalikan nilai kembalian yang berasal dari keluaran hasil proses function tersebut .
Ciri:
1. ada keyword return
2. ada tipe data yang mengawali fungsi
3. tidak ada keyword void
4. Memiliki nilai kembalian . Dapat dianalogikan sebagai suatu variabel yang memiliki tipe datatertentu sehingga dapat langsung ditampilkan hasilnya.
Keyword void
Keyword void juga digunakan jika suatu function tidak mengandung suatu parameter apapun. Contohfungsi Faktorial
The main Function
. function main() dibutuhkan agar program C dapat dieksekusi!
. Tanpa function main, program C dapat dicompile tapi tidak dapat dieksekusi (harus
dengan flag parameter -c, jika di UNIX) . Pada saat program C dijalankan, makacompiler C pertama kali akan mencari function main() dan melaksanakan instruksi-instruksi yang ada di sana. Function main, sering dideklarasikan dalam 2 bentuk:
. int main()
. void main()
int main()
Berarti di dalam function main tersebut harus terdapat keyword return di bagian akhir fungsi dan mengembalikan nilai bertipe data int. Mengapa hasil return harus bertipe int juga? karena tipe datayang mendahului fungsi main() diatas dideklarasikan int. Tujuan nilai kembalian berupa integeradalahuntuk mengetahui status eksekusi program. jika “terminated successfully” (EXIT_SUCCESS) maka, akan dikembalikan status 0, sedangkan jika “terminated unsuccessfully” (EXIT_FAILURE) akan dikembalikan nilai status tidak 0, biasanya bernilai 1. Biasanya dipakai di lingkungan UNIX void main(). Berarti berupa function yang void sehingga tidak mengembalikan nilai status programsehingga nilai status program tidak bisa diketahui. Biasanya dipakai pada program C di lingkungan Windows Bentuk pemanggilan fungsi di C. Pada dasarnya fungsi dapat memanggil fungsi lain, bahkan fungsi dapat memanggil dirinya sendiri (rekursif)
1. Which is not a proper prototype?
A. int funct(char x, char y);
B. double funct(char x)
C. void funct();
D. char x();
2. What is the return type of the function with prototype: “int func(char x, float v, double t);”
A. char
B. int
C. float
D. double
3. Which of the following is a valid function call (assuming the function exists)?
A. funct;
B. funct x, y;
C. funct();
D. int funct();
4. Which of the following is a complete function?
A. int funct();
B. int funct(int x) {return x=x+1;}
C. void funct(int) {printf( “Hello” );
D. void funct(x) {printf( “Hello” ); }
Latihan
. Buatlah fungsi untuk menampilkan tulisan “Algoritma dan Pemrograman” sebanyak 30 kali!
. Ubahlah menjadi sebanyak n kali!
. Buatlah fungsi untuk menjumlahkan dua buah bilangan
. Tambahkanlah: mengurangi, membagi, mengkali dua buah bilangan
. Buatlah fungsi untuk menentukan bilangan terkecil dari 3 buah bilangan yang diinputkan
. Buatlah fungsi untuk mengubah nilai ke huruf (A, B, C, D, danE)
. Buatlah fungsi untuk mengubah nilai huruf ke bobotnya
. Buatlah fungsi untuk mengubah bilangan pecahan ke bilangan bulat!
. Buatlah fungsi untuk menjumlahkan deret: 1+3+5+7+… +n
. Buatlah fungsi untuk mengetahui kuadran suatu koordinat!
. Buatlah fungsi untuk menyederhanakan b/c menjadi Ab/c




Array


FUNGSI ARRAY DALAM ALGORITMA
Array adalah tipe data tersetruktur yang mempunyai komponen-komponen yang mempunyai tipe sama. komponen-komponen tersebut sebagai komponen type larik mempunyai yang komponennya tetep. array dapat bertype sederhana seperti BYTE,WORD,INTERGER,REAL,BOLEAN,CHAR,STRING dan type data SCALAR/SUBRAGE
Program Contoh_Array_Input;
Uses Crt;
Var
Bilangan : array[1..50] of Integer;
Begin
ClrScr;
Bilangan[1]:=3;
Bilangan[2]:=29;
Bilangan[3]:=30;
Bilangan[4]:=31;
Bilangan[5]:=23;
Writeln(‘nilai varibel bilangan ke 3 =’,Bilangan[3]);
Readln;
End.
============================
Program Contoh_Deklarasi_Array_Beragam;
Uses Crt;
Var
NPM : array[1..20] of string[10];
Nama : array[1..20] of string[25];
Nilai : array[1..20] of real;
Umur : array[1..20] of byte;
banyak,i : integer;
Begin
ClrScr;
Write(‘Isi berapa data array yang diperlukan :’);Readln(banyak);
For i := 1 to banyak Do
Begin
Write(‘NPM =’);Readln(NPM[i]);
Write(‘Nama =’);readln(Nama[i]);
Write(‘Nilai=’);readln(Nilai[i]);
Write(‘Umur =’);readln(Umur[i]);
End;
{cetak varibel array}
Writeln(‘NPM NAMA NILAI UMUR ‘);
For i:= 1 to banyak Do
Begin
Writeln(Npm[i]:10,Nama[i]:25,Nilai[i]:3:2,’ ‘,Umur[i]:3);
End;
Readln;
End.
================================================
Var
Nilai : Array[1..10] of Integer;
pada contoh ini array nilai mempunyai 10 buah elemen yaitu dari 1 sampai 10. Array tersebut dapat dideklarasikan dengan type seperti berikut ini :
Type
Skala = 1..10;
Var
Nilai : Array [skala] of Integer;
atau :
Type
Skala = 1..10;
Y = Array[skala] of Integer;
Var
Nilai : Y;
atau :
Type
Y = Array[1..10] of Integer;
Var
Nilai : Y;
atau :
Const
Atas =1;
Bawah = 5;
type
Y = Array[Atas..Bawah] of Integer;
Var
Nilai : Y;
=====================================================
Program Contoh_Deklarasi_Array_Konstan;
Uses Crt;
Const
Tetap : Array[1..4] of Integer=(7,10,21,20);
Var
i : Integer;
Begin
For i:= 1 to 4 Do
Writeln(‘Nilai Konstan array ke ‘,i:2,’ =’,Tetap[i]);
Readln;
End.
==============================================
Program Constanta_Array_String;
Uses Crt;
Type
A = Array [1..5] of String;
Const
Nama : A = (‘basic’,'pascal’,'cobol’,'paradox’,'dbase’);
Var
i : Integer;
Begin
For i:= 1 to 5 Do
Writeln(‘Nilai Array ke-’,i:2,’= ‘,Nama[i]);
readln;
end.
==================================
Program String_Adalah_Array_Tipe_Char;
Uses Crt;
Var
Nama : string;
i : Integer;
Begin
Nama:=’Turbo Pascal’;
For i:= 1 to Length(nama) Do
Writeln(‘Elemen ‘,i,’ dari ‘,Nama,’= ‘,Nama[i]);
Readln;
End.
=========================================
Program Mencari_Bilangan_Prima_Dengan_Array;
Uses Crt;
Var
Prima : Array[1..100] of Integer;
i,j : Integer;
bil : Integer;
Begin
ClrScr;
For i := 2 to 100 Do
Begin
Prima[i]:=i;
For j:= 2 to i-1 Do
Begin
bil := (i mod j); {* i dibagi j dicek apakah 0*}
If bil = 0 then Prima[i]:=0; {*jika habis dibagi,berarti bkn prima*}
End;
If Prima[i]<> 0 Then Write(Prima[i],’ ‘); {*cetak array yg prima*}
End;
Readln;
End.
================================================
Program Penggunaan_Array_Untuk_Sortir_Buble_Sort;
Uses Crt;
Var
nil1 : Array[1..100] of Integer;
n,i,j,dum : Integer;
Begin
ClrScr;
Write(‘mau isi berapa data acak (integer) =’); readln(n);
For i := 1 to n Do
Begin
Write(‘Data Ke ‘,i,’:');Readln(nil1[i]);
End;
{* penyapuan proses}
for i:= 1 to n-1 do
begin
for j:= i to n do
begin
if nil1[j]
begin
dum:=nil1[j];
nil1[j]:=nil1[i];
nil1[i]:=dum;
end;
end;
end;
writeln;
writeln(‘Hasil Sortir’);
for i := 1 to n do
write(nil1[i]:3);
readln;
end.
=================================================
Program Deklarasi_Array_Dua_Dimensi;
Uses Crt;
Var Tabel : Array[1..3,1..2] of Integer;
i,j : Integer;
Begin
ClrScr;
Tabel[1,1]:=1;
Tabel[1,2]:=2;
Tabel[2,1]:=3;
Tabel[2,2]:=4;
Tabel[3,1]:=5;
Tabel[3,2]:=6;
For I := 1 to 3 Do Begin For J:= 1 to 2 Do Begin Writeln(‘Elemen ‘,i,’,',j,’= ‘,tabel[i,j]);
End;
End;
Readln;
End.
=====================================================
Program Penjumlahan_Matrik;
Uses Crt;
Var
Matrik1,Matrik2, Hasil : Array[1..3,1..2] of Integer;
i,j : Integer;
Begin
ClrScr;
{ input matrik ke satu }
Writeln(‘ Elemen matrik satu’);
For i := 1 to 3 Do
Begin
For j := 1 to 2 Do
Begin
Write(‘Elemen baris -’,i,’ Kolom -’,j,’= ‘);
Readln(matrik1[i,j]);
End;
End;
{input matrik ke dua}
Writeln(‘input elemen matrik dua’);
For i:= 1 to 3 Do
Begin
For j:= 1 to 2 Do
Begin
Write(‘Elemen baris -’,i,’ kolom -’,j,’= ‘);
Readln(matrik2[i,j]);
End;
End;
{proses penjumlahan tiap elemen}
For i := 1 to 3 Do
Begin
For j:= 1 to 2 Do
Begin
Hasil[i,j]:=Matrik1[i,j]+Matrik2[i,j];
End;
End;
{proses cetak hasil}
For i:= 1 to 3 Do
Begin
For j:= 1 to 2 Do
Begin
Write(Hasil[i,j]:6);
End;
Writeln;
End;
Readln;
End.
===============================================
Program Contoh_Pengiriman_Parameter_Array_Di_Procedure;
Uses Crt;
Const
Garis =’—————————————————’;
Type
Untai = Array[1..10] of String[15];
Bulat = Array[1..10] of Integer;
Huruf = Array[1..10] of Char;
Var
i,Banyak : Integer;
Procedure Proses(Nama:Untai;Nilai:Bulat);
Var
Ket : String;
Abjad : Char;
Begin
Writeln(Garis);
Writeln(‘Nama Nilai Abjad Keterangan’);
Writeln(Garis);
For i := 1 to Banyak Do
Begin
If Nilai[i] > 90 Then
Begin
Abjad:=’A';
Ket :=’Istimewa’;
End;
If (Nilai[i]<90) And (Nilai[i]>70) Then
Begin
Abjad:=’B';
Ket :=’Memuaskan’;
End;
If (Nilai[i]<70) And (Nilai[i]>60) Then
Begin
Abjad:=’C';
Ket :=’Cukup’;
End;
If (Nilai[i]<60) And (Nilai[i]>45) Then
Begin
Abjad:=’D';
Ket :=’Kurang’;
End;
If Nilai[i]< 45 Then
Begin
Abjad:=’E';
Ket :=’Sangat kurang’;
End;
Writeln(Nama[i]:15,’ ‘,Nilai[i]:4,’ ‘,Abjad,’ ‘,Ket:15);
End;
Writeln(Garis);
End;
Procedure Masuk_Data;
Var
Nama : Untai;
Nilai : Bulat;
Begin
Write(‘Banyak data =’);Readln(Banyak);
For i:= 1 to Banyak Do
Begin
ClrScr;
Writeln(‘Data ke – ‘,i);
Write(‘Nama =’);readln(Nama[i]);
Write(‘Nilai =’);readln(Nilai[i]);
End;
Proses(Nama,Nilai);
End;
{modul Utama}
Begin
Masuk_Data;
Readln;
End.
JIKA SUDAH LANGSUNG SAJA DI RUNNING GENGAN MENEKAN CTRL+F9

Decision


Algoritma Decision Tree C4.5
Pohon Keputusan (Decision Tree) merupakan metode klasifikasi dan prediksi yang sangat kuat dan terkenal. Metode pohon keputusan mengubah fakta yang sangat besar menjadi pohon keputusan yang merepresentasikan aturan. Aturan dapat dengan mudah dipahami dengan bahasa alami. Aturan ini juga dapat diekspresikan dalam bentuk bahasa basis data seperti SQL untuk mencari record pada kategori tertentu. Pohon keputusan juga berguna untuk mengeksplorasi data, menemukan hubungan tersembunyi antara sejumlah calon variabel input dengan sebuah variabel target. Karena pohon keputusan memadukan antara eksplorasi data dan pemodelan, pohon keputusan ini sangat bagus sebagai langkah awal dalam proses pemodelan bahkan ketika dijadikan sebagai model akhir dari beberapa teknik lain(J R Quinlan, 1993).
Dalam situasi lain kemampuan untuk menjelaskan alasan pengambilan keputusan adalah sesuatu yang sangat penting. Misalnya pada perusahaan asuransi ada larangan resmi untuk mendeskriminasi berdasarkan variabel-variabel tertentu. Perusahaan asuransi dapat mencari sendiri keadaan yang mencerminkan bahwa mereka tidak menggunakan deskriminasi yang ilegal dalam memutuskan seseorang diterima atau ditolak. Sebuah pohon keputusan adalah sebuah struktur yang dapat digunakan untuk membagi kumpulan data yang besar menjadi himpunan-himpunan record yang lebih kecil dengan menerapkan serangkaian aturan keputusan. Anggota himpunan hasil menjadi mirip satu dengan yang lain dengan masing-masing rangkaian pembagian. Sebuah model pohon keputusan terdiri dari sekumpulan aturan untuk membagi sejumlah populasi yang heterogen menjadi lebih kecil, lebih homogen dengan memperhatikan pada variabel tujuannya. Sebuah pohon keputusan mungkin dibangun dengan seksama secara manual, atau dapat tumbuh secara otomatis dengan menerapkan salah satu atau beberapa algoritma pohon keputusan untuk memodelkan himpunan data yang belum terklasifikasi (Tan dkk, 2004).
Variabel tujuan biasanya dikelompokkan dengan pasti dan model pohon keputusan lebih mengarah pada perhitungan probabilitas dari masing-masing record terhadap kategori-kategori tersebut, atau untuk mengklasifikasi record dengan mengelompokkannya dalam satu kelas. Pohon keputusan juga dapat digunakan untuk mengestimasi nilai dari variabel kontinyu, meskipun ada beberapa teknik yang lebih sesuai untuk kasus ini.
Kelebihan dari metode pohon keputusan adalah:
1.      Daerah pengambilan keputusan yang sebelumnya kompleks dan sangat global, dapat diubah menjadi lebih simpel dan spesifik
2.      Eliminasi perhitungan-perhitungan yang tidak diperlukan, karena ketika menggunakan metode pohon keputusan maka sampel diuji hanya berdasarkan kriteria atau kelas tertentu
3.      Fleksibel untuk memilih fitur dari node internal yang berbeda, fitur yang terpilih akan membedakan suatu kriteria dibandingkan kriteria yang lain dalam node yang sama. Kefleksibelan metode pohon keputusan ini meningkatkan kualitas keputusan yang dihasilkan jika dibandingkan ketika menggunakan metode penghitungan satu tahap yang lebih konvensional
4.      Dalam analisis multivarian, dengan kriteria dan kelas yang jumlahnya sangat banyak, seorang penguji biasanya perlu mengestimasikan baik itu distribusi dimensi tinggi ataupun parameter tertentu dari distribusi kelas tersebut. Metode pohon keputusan dapat menghindari munculnya permasalahan ini dengan menggunakan kriteria yang jumlahnya lebih sedikit pada setiap node internal tanpa banyak mengurangi kualitas keputusan yang dihasilkan.
Kekurangan pada pohon keputusan adalah:
1.      Terjadi overlapping terutama ketika kelas-kelas dan kriteria yang digunakan jumlahnya sangat banyak. Hal tersebut juga dapat menyebabkan meningkatnya waktu pengambilan keputusan dan jumlah memori yang diperlukan
2.      Pengakumulasian jumlah kesalahan dari setiap tingkat dalam sebuah pohon keputusan yang besar
3.      Kesulitan dalam mendesain pohon keputusan yang optimal
4.      Hasil kualitas keputusan yang didapatkan dari metode pohon keputusan sangat tergantung pada bagaimana pohon tersebut didesain.
Pohon keputusan adalah model prediksi menggunakan struktur pohon atau struktur berhirarki. Contoh dari pohon keputusan dapat dilihat pada Gambar berikut :
Gambar Model Pohon Keputusan (Pramudiono,2008)
Setiap percabangan menyatakan kondisi yang harus dipenuhi dan tiap ujung pohon menyatakan kelas data. Contoh pada Gambar diatas adalah identifikasi pembeli komputer. Dari pohon keputusan tersebut diketahui bahwa salah satu kelompok yang potensial membeli komputer adalah orang yang berusia di bawah 30 tahun dan juga pelajar. Setelah sebuah pohon keputusan dibangun maka dapat digunakan untuk mengklasifikasikan record  yang belum ada kelasnya. Dimulai dari node root,  menggunakan tes terhadap atribut dari record yang belum ada kelasnya ini lalu mengikuti cabang yang sesuai dengan hasil dari tes tersebut, yang akan membawa kepada internal node (node yang memiliki satu cabang masuk dan dua atau lebih cabang yang keluar), dengan cara harus melakukan tes lagi terhadap atribut atau node leafRecord yang kelasnya tidak diketahui kemudian diberikan kelas yang sesuai dengan kelas yang ada pada node leaf. Pada pohon keputusan setiap simpul leafmenandai label kelas. Proses dalam pohon keputusan yaitu mengubah bentuk data (tabel) menjadi model pohon (tree) kemudian mengubah model pohon tersebut menjadi aturan (rule) (J R Quinlan, 1993).
Salah satu algoritma induksi pohon keputusan yaitu ID3 (Iterative Dichotomiser 3). ID3 dikembangkan oleh J. Ross Quinlan. Dalam prosedur algoritma ID3, input berupa sampel training, label training dan atribut. Algoritma Decision Tree C4.5 merupakan pengembangan dari ID3. Sedangkan pada perangkat lunak open source WEKA mempunyai versi sendiri dari C4.5 yang dikenal sebagai J48.
Generate_decision_tree (Training samples, Atribute) // decision tree function
Method :
(1) Create node N;
(2) If samples are all of the same class C then
(3)    Return N as a leaf node labeled with the class  C;
(4) if atribute-list is empty then
(5)         Return N as a leaf node labeled with the most common class in samples;     // majority voting
(6) else
(7)       select test-atribute, atribute among atribute-list with the highest information gain;
(8) label node N with test-atribute;
(9)       for each known value ai of test-atribute // partition the samples
(10)             grow a branch from node N for the condition test-atribute = ai;
(11)   let si be the set of samples in samples for which test-atribute = ai; // a  partition
(12)            if si is empty then
(13)     attach a leaf labeled with the most common class in samples;
         else attach the node returned by Generate_decision_tree(si, atribute-list-test-atribute);
Gambar Algoritma Decision Tree C4.5 (Han dan Khamber, 2001)
Secara umum algoritma Decision Tree C4.5 untuk membangun pohon keputusan adalah sebagai berikut (Kusrini, 2009) :
1.      Pilih atribut sebagai root
2.      Buat cabang untuk masing-masing nilai
3.      Bagi atribut terpilih dalam cabang
4.      Ulangi proses untuk masing-masing cabang sampai semua atribut terpilih pada cabang memiliki kelas yang sama.
Untuk menghitung gain diberikan rumus sebagai berikut:
Dimana
S = himpunan kasus
A = Atribut
n = jumlah partisi
|Si| = jumlah kasus pada partisi ke-i
|S| = jumlah kasus dalam S
Sedangkan untuk perhitungan nilai entropi adalah sebagai berikut:
Dimana,
S = himpunan kasus
n = jumlah pastisi S
pi = proposi dari Si terhadap S

Pengertian Type Data



Type Data

Jika kita membutuhkan suatu tipe data yang baru yang tidak terdapat pada tipe data standar, maka kita dapat membuat tipe data baru dengan menggunakan perintah struct. Perintah struct akan dijelaskan pada bab selanjutnya.
Setiap tipe data mempunyai jangkauan nilai yang berbeda.

1.   Tipe data karakter
Untuk tipe data karakter kita gunakan perintah char.
Contoh
char karakter;
char kar1,kar2,kar3;
char kar4=’A’;
char kar5=65;

Tipe data ini mempunyai jangkauan dari 0 sampai 255 atau karakter ASCII ke 0 sampai karakter ASCII 255. Tipe data karakter bisa ditampilkan sebagai suatu karakter atau sebagai suatu bilangan. Hal ini tergantung dari bagaimana penulisannya apakah dianggap sebagai karakter atau sebagai bilangan.
Untuk menuliskan isi dari data bertipe char adalah dengan menggunakan printf dengan format penulisannya menggunakan tanda %c kalau ingin ditampilkan sebagai suatu karakter atau dengan %i jika ingin ditampilkan sebagai suatu angka.
Pemberian nilai kepada suatu karakter digunakan perintah sebagai berikut :
karakter=’A’;
Atau
karakter=65;
Kedua cara tersebut menghasilkan suatu efek yang sama yaitu memberikan nilai 65 atau karakter A ke variabel karakter. Kalau pengisian variable ingin menggunakan karakter maka karakter yang akan dimasukan harus diapit dengan tanda apostrof.
Untuk melihat nilai yang ada dalam suatu variable yang bertipe char gunakan perintah berikut :

printf(“Karakter dilihat dalam bentuk karakter = %c.\n”,karakter);
printf(“Karakter dilihat dalam bentuk angka = %d.\n”,karakter);

Contoh program
//Program Ke-2 Nama File : Lat2.CPP
#include <stdio.h>
#include <conio.h>
main()
{
char k1,k2;
k1=’A’;
k2=k1;
printf(“Nilai variable K1 adalah %c\n”,k1);
printf(“Nilai variable K2 dalam bentuk angka = %d\n”,k2);
getch();
return 0;
}
Hasil dari eksekusi program adalah :

Nilai variable K1 adalah A
Nilai variable K2 dalam bentuk angka = 65

Keterangan program Lat2.CPP
Perintah “char k1,k2;” pada baris 6 berarti program memesan 2 buah tempat di memori untuk menyimpan data bertipe karakter dengan nama k1 dan k2.
Perintah “k1=’A’;” pada baris 7 adalah perintah untuk memasukan nilai karakter A kapital ke dalam variable k1 sehingga untuk baris berikutnya k1 berisi karakter A kapital atau angka 65.
Perintah “k2=k1;” pada baris 8 berarti bahwa nilai k2 diisi dari nilai k1 sehingga isi k2 sama dengan isi variable di k1.
atu bilangan. Hal ini tergantung dari bagaimana penulisannya apakah dianggap sebagai karakter atau sebagai bilangan.
Untuk menuliskan isi dari data bertipe char adalah dengan menggunakan printf dengan format penulisannya menggunakan tanda %c kalau ingin ditampilkan sebagai suatu karakter atau dengan %i jika ingin ditampilkan sebagai suatu angka.
Pemberian nilai kepada suatu karakter digunakan perintah sebagai berikut :
karakter=’A’;
Atau
karakter=65;
Kedua cara tersebut menghasilkan suatu efek yang sama yaitu memberikan nilai 65 atau karakter A ke variabel karakter. Kalau pengisian variable ingin menggunakan karakter maka karakter yang akan dimasukan harus diapit dengan tanda apostrof.
Untuk melihat nilai yang ada dalam suatu variable yang bertipe char gunakan perintah berikut :

printf(“Karakter dilihat dalam bentuk karakter = %c.\n”,karakter);
printf(“Karakter dilihat dalam bentuk angka = %d.\n”,karakter);

Contoh program
//Program Ke-2 Nama File : Lat2.CPP
#include <stdio.h>
#include <conio.h>
main()
{
char k1,k2;
k1=’A’;
k2=k1;
printf(“Nilai variable K1 adalah %c\n”,k1);
printf(“Nilai variable K2 dalam bentuk angka = %d\n”,k2);
getch();
return 0;
}
Hasil dari eksekusi program adalah :

Nilai variable K1 adalah A
Nilai variable K2 dalam bentuk angka = 65

Keterangan program Lat2.CPP
Perintah “char k1,k2;” pada baris 6 berarti program memesan 2 buah tempat di memori untuk menyimpan data bertipe karakter dengan nama k1 dan k2.
Perintah “k1=’A’;” pada baris 7 adalah perintah untuk memasukan nilai karakter A kapital ke dalam variable k1 sehingga untuk baris berikutnya k1 berisi karakter A kapital atau angka 65.
Perintah “k2=k1;” pada baris 8 berarti bahwa nilai k2 diisi dari nilai k1 sehingga isi k2 sama dengan isi variable di k1.
atu bilangan. Hal ini tergantung dari bagaimana penulisannya apakah dianggap sebagai karakter atau sebagai bilangan.
Untuk menuliskan isi dari data bertipe char adalah dengan menggunakan printf dengan format penulisannya menggunakan tanda %c kalau ingin ditampilkan sebagai suatu karakter atau dengan %i jika ingin ditampilkan sebagai suatu angka.
Pemberian nilai kepada suatu karakter digunakan perintah sebagai berikut :
karakter=’A’;
Atau
karakter=65;
Kedua cara tersebut menghasilkan suatu efek yang sama yaitu memberikan nilai 65 atau karakter A ke variabel karakter. Kalau pengisian variable ingin menggunakan karakter maka karakter yang akan dimasukan harus diapit dengan tanda apostrof.
Untuk melihat nilai yang ada dalam suatu variable yang bertipe char gunakan perintah berikut :

printf(“Karakter dilihat dalam bentuk 

Perintah printf pada baris 9 berarti perintah penulisan ke layar sesuai dengan format “Nilai variable k1 adalah %c\n”. Karakter %c tidak dicetak sebagai %c tetapi akan diganti dari variable yang sesuai dengan urutannya yaitu k1 dalam bentuk karakter. Perintah printf pada baris 10 cara kerjanya sama dengan perintah printf pada baris 9 bedanya hanya tanda %d berasal ditulis berdasarkan isi variable k2 yang dicetak dalam bentuk angka bukan karakter. Tanda %d digunakan untuk format pencetakan data dalam bentuk bilangan bulat.
Perintah getch() digunakan untuk menunggu sampai pengguna menekan sembarang karaker.
Perintah return digunakan untuk memberikan nilai kembalian dari fungsi main().

2.   Tipe data bilangan bulat
Ada beberapa tipe data standar yang digunakan untuk data bilangan bulat.
Tipe Data
Memori
Format
Jangkauan Nilai
int
2 byte
%d/%i
-32.768 s/d 32.767
unsigned int
2 byte
%u
0 s/d 65.535
char
1 byte
%d/%i
-128 s/d 127
unsigned char
1 byte
%u
0 s/d 255
unsigned long
4 byte
%lu
0 s/d 4.294.967.295
long
4 byte
%ld/%li
-2.147.483.648 s/d 2.147.483.647
Tipe-tipe data yang ada dalam table tersebut khusus untuk data yang nilai bilangannya bulat. Cara pendeklarasian tipe data ini sama seperti pendeklarasian lainnya, yaitu :

int a;
unsigned int b;
char c;
long d;

Contoh Program :
#include <stdio.h>
#include <conio.h>
main()
{
int a=1000,b=64000;
unsigned int c=64000;
printf(“Nilai yang telah dimasukan\na: %i dan b: %i\n”,a,b);
printf(“Nilai yang telah dimasukan : %u\n”,c);
getch();
return 0;
}
Perintah di atas akan menampilkan hasil seperti di bawah ini :
a: 1000 dan b: -1536
Nilai yang telah dimasukan : 64000

3.   Tipe data bilangan pecahan
Tipe data untuk bilangan pecahan terdiri dari beberapa jenis yaitu :
Tipe Data
Memori
Format
Jangkauan Nilai
float
4 byte
%f
3.4*(10^-38) – 3.4*(10^+38
double
8 byte
%f
1.7*(10^-308) – 1.7*(10^+308)
long double
10 byte
%lf
3.4*(10^-4932) – 1.1*(10^+4932)
Contoh Program
#include <stdio.h>
#include <conio.h>
main()
{
float  a=1234567890123456789;
double d=1234567890123456789;
printf(“Nilai a adalah : %30.20f\n”,a);
printf(“Nilai d adalah : %30.20f\n”,d);
getch();
return 0;
}
Hasil eksekusi program dapat dilihat di bawah ini :
Nilai a adalah :         1234567939550609410.00
Nilai d adalah :         1234567890123456770.00

4.   Tipe data string
Dalam pemrograman C, untuk variabel yang menampung data string tidak ada perintah khusus, karena dalam bahasa C, string adalah sebuah array karakter atau sebuah pointer ke sebuah variabel char.
Cara pendeklarasian adalah :

char nama[50];
char *alamat;

Contoh program :
#include <stdio.h>
#include <conio.h>
main()
{
char nama[50]; //deklarasi dengan cara array
char *alamat; //deklarasi dengan cara pointer
printf(“Nama : “);scanf(“%s”,nama);
printf(“Alamat : “);gets(alamat);
printf(“Data yang telah dimasukan adalah : \n”);
printf(“Nama : %s\nAlamat : %s\n”,nama,alamat);
getch();
return 0;
}

Catatan
Pemilihan tipe data harus hati-hati. Pertimbangkan jangkauan yang dimiliki oleh tipe data yang dipilih. Kesalahan dalam memilih tipe data akan menimbulkan suatu hasil yang tidak diperkirakan. Contoh :

int a=32000;
int b=769;
int c;
c=a+b;
printf(“%i + %i = %i\n”,a,b,c);

Jika program tersebut dijalankan, maka akan menghasilkan output seperti berikut :

32000 + 769 = -32767

Hal tersebut terjadi karena jangkuan nilai c sudah melebihi jangkauan nilai untuk sebuah tipe data int. Bila suatu variable telah melebihi jangkauan nilainya maka nilai variable tersebut akan berputar menjadi nilai minimalnya dan jika nilainya kurang dari minimal jangkauan nilainya maka variable tersebut akan terisi oleh bilangan maksimal tipe tersebut.

Nilai yang diharapkan
32767
32768
32769
Nilai pada variable C
32767
-32768
-32767



Operator-Operator Perhitungan
Untuk melakukan perhitungan-perhitungan data, maka diperlukan operator-operator perhitungannya. Operator-operator yang paling umum dipakai dalam pemrograman dengan bahasa C adalah :
Operator
Contoh
Arti
+
c=a+b
Variable c diisi dari isi variable a ditambah isi variable b
-
c=a-b
Variable c diisi dari isi variable a dikurangi isi variable b
*
c=a*b
Variable c diisi dari isi variable a dikali dengan isi variable b
/
c=a/b
Variable c diisi dari isi variable a dibagi oleh isi variable b
++
a++
Isi variable a ditambah 1. Perintah ini sama dengan a=a+1 atau a+=1
b–
Isi variable a dikurang. Perintah ini sama dengan a=a-1 atau a-=1
%
c=a % b
Variable c diisi dari sisa pembagian variable a dibagi variable b
+=
c+=a
Variable c ditambah dengan isi variable a. Sama dengan c=c+a
/=
c/=a
Variable c dibagi dengan isi variable a. Sama dengan c=c/a
-=
c-=a
Variable c dikurangi dengan isi variable a. Sama dengan c=c-a
*=
c*=a
Variable c dikali dengan isi variable a. Sama dengan c=c*a
%=
c%=a
Variable c diisi dari sisa pembagian c dibagi isi variable a. Sama dengan c=c%a

Contoh program :
#include <stdio.h>
#include <conio.h>
main()
{
int x=20, y=8, z;
clrscr();
printf(“X = %d dan Y = %d\n”,x,y);
printf(“X / Y = %d\n”,x/y);
printf(“X %% Y = %d\n”, x % y);
x+=2;
printf(“Nilai X sekarang : %i\n”,x);
x++;
printf(“Nilai X setelah X++ : %i\n”,x);
printf(“Nilai Y : %d\n”,y++);
printf(“Nilai Y setelahnya : %d\n”,y);
z=++x;
printf(“Nilai Z : %d\n”,z);
getch();
return 0;
}

Program di atas akan menampilkan hasil seperti berikut :
X = 20 dan Y = 8
X / Y = 2
X % Y = 4
Nilai X sekarang : 22
Nilai X setelah X++ : 23
Nilai Y : 8
Nilai Y setelahnya : 9
Nilai Z : 24

Opr.
Istilah
Keterangan
I++
Post increment
Nilai I dikeluarkan dulu, kemudian I ditambah 1
++I
Pre increment
Nilai I ditambah 1 dulu, kemudian nilainya dikeluarkan
I–
Post decrement
Nilai I dikeluarkan dulu, kemudian I dikurangi 1
–I
Pre decrement
Nilai I dikurangi 1 dulu, kemudian nilainya dikeluarkan