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 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.
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
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:
. 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()
. 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)
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();
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
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();
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” ); }
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
. 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
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
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 leaf. Record 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 :
Contoh Program
Hasil eksekusi program dapat dilihat di
bawah ini :
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 :
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 :
Contoh program :
Program di atas akan menampilkan hasil
seperti berikut :
|
Langganan:
Postingan (Atom)