Minggu, 03 Juli 2011

JAWABAN No. 3

#include
#include
#include
#include

struct pegawai
{
char nik[20];
char nama[20];
char kode[5];
char gaji[5];
char tunj[5];
char tunjkel[5];

}peg[30];

void main()
{
char lg='Y';
int hasil,i,n=0;
long gaji=0;
long tunj=0;
while(lg=='Y'||lg=='y')
{
clrscr();
cout<<"input data pegawai\n";
n++;
cout<<"nik :";
gets(peg[n].nik);
cout<<"Nama Pegawai :";
gets(peg[n].nama);
cout<<"kode jabatan :";
gets(peg[n].kode);
cout<<"gaji :";
gets(peg[n].gaji);
cout<<"tunjangan :";
gets(peg[n].tunj);
cout<<"Input lagi[Y/T] :";
lg=getche();
}


clrscr();
gotoxy(1,3);cout<<" = LAPORAN GAJI PEGAWAI =\n";
gotoxy(1,4);cout<<"----------------------------------------------------------------------";
gotoxy(1,5);cout<<"NIK NAMA KODE GAJI TUNJANGAN TOTAL GAJI";
gotoxy(1,6);cout<<"______________________________________________________________________";
for(i=1;i<=n;i++)
{
gotoxy(1,7+i);cout< gotoxy(9,7+i);cout< gotoxy(20,7+i);cout< gotoxy(40,7+i);cout<

hasil=strcmp(peg[i].kode,"1");
if (hasil==0)
gaji=2500000;

hasil=strcmp(peg[i].kode,"2");
if (hasil==0)
gaji=2000000;

hasil=strcmp(peg[i].kode,"3");
if (hasil==0)
gaji=1500000;

gotoxy(28,7+i);cout<

gotoxy(52,7+i);cout<
long tgaji= gaji + tunj + tunjkel;
gotoxy(63,7+i);cout<
}
getch();
}

PERKULIAHANKU

Bicara soal perkuliahan, tidak ada bedanya sih,, dengan masa SMA.
bedanya, SMA wajib pakai seragam putih abu-abu. nah... kalau di perkuliahan, bebas pake busana apa ajah...
eitsss.... tapi tidak sembarang ajah loh...
harus sopan tapinya...

Tips Rambut Indah

Sebagai mahkota wanita, rambut merupakan bagian penting dari penampilan. Rambut yang indah dan terawat tentu akan menambah daya tarik seseorang. Itulah sebabnya rambut perlu mendapat perhatian khusus. Salah perawatan pada rambut, akan mengakibatkan rambut menjadi kusam dan rusak. Bagaimana cara untuk menjaga rambut tetap indah dan menawan?

Lakukan pola hidup sehat

Pola hidup sehat mencakup tidak merokok, rajin berolahraga secara teratur, mengkonsumsi makanan bergizi, juga melakukan refreshing dan relaksasi agar pikiran tidak menjadi stress. Untuk makanan, Anda dapat mengkonsumsi makanan yang mengandung vitamin A, C, E, selenium karena zat ini yang sangat baik menjaga kesehatan rambut.

Usahakan tidur cukup dan nyenyak setiap hari

Bila tidur Anda terganggu, hal ini dapat menyebabkan sirkulasi darah tidak lancar. Akibatnya rambut tidak mendapat nutrisi yang cukup dan menyebabkan rambut kusam. Oleh karena itu, jangan bebani pikiran Anda dengan hal-hal yang dapat mengganggu tidur Anda.

Gunakan produk perawatan rambut yang sesuai

Bila menggunakan produk perawatan rambut, perhatikan komposisi produk. Hindari produk yang berbahan alkohol dalam konsentrasi tinggi karena kandungan tersebut dapat merusak rambut. Saat menggunakan produk tersebut, jangan langsung dikenakan di kulit kepala karena menyebabkan pori-pori kepala tertutup dan dapat merusak kulit kepala yang selanjutnya merusak rambut.

Bila berenang, olesi dengan air basa atau penutup rambut

Tujuan dari hal ini adalah agar rambut tidak terkontaminasi dengan air kolam yang kandungan kimianya dapat merusak rambut Anda.

Gunakan sisir dari kayu

Sisir yang terbuat dari kayu dapat mengurangi kerontokan rambut. Kebersihan sisir juga perlu dijaga agar kotoran yang ada dalam sisir tidak melekat pada rambut Anda.

Pilih shampoo yang sesuai

Setelah memperhatikan jenis rambut, hal ini menjadi dasar bagi Anda untuk memilih shampo yang akan dipakai. Pilih shampo yang berkualitas yang sesuai dengan kondisi rambut.

Jawaban No.3

#include
#include
#include
#include

struct karyawan
{
char nik[5];
char nama[20];
char kode[5];
char status[5];

}kar[20];

void main()
{
char lg='Y';
int hasil,i,n=0;
long gaji=0;
char jabatan[20];
long tunjangan=0;
long tj_kel=0;
while(lg=='Y'||lg=='y')
{
clrscr();
cout<<"input data karyawan\n";
n++;
cout<<"NIK\t\t:";
gets(kar[n].nik);
cout<<"Nama Pegawai\t:";
gets(kar[n].nama);
cout<<"Kode Jabatan\t:";
gets(kar[n].kode);
cout<<"Status (M/BM)\t:";
gets(kar[n].status);
cout<<"Input lagi[Y/T] :";
lg=getche();

}


clrscr();
gotoxy(1,4);cout<<"Informasi Data Gaji Karyawan\n";
gotoxy(1,5);cout<<"---------------------------------------------------------------------------";
gotoxy(1,6);cout<<"NIK NAMA KODE JABATAN GAJI TUNJANGAN Tunj.KELUARGA TOTAL GAJI";
for(i=1;i<=n;i++)
{
gotoxy(1,7+i);cout< gotoxy(8,7+i);cout< gotoxy(18,7+i);cout<
hasil=strcmp(kar[i].kode,"1");
if (hasil==0)
{
strcpy(jabatan,"Persediaan");
gaji=2500000;
tunjangan=gaji*0.35;
}

hasil=strcmp(kar[i].kode,"2");
if (hasil==0)
{
strcpy(jabatan,"Administrasi");
gaji=2000000;
tunjangan=gaji*0.10;
}

hasil=strcmp(kar[i].kode,"3");
if (hasil==0)
{
strcpy(jabatan,"Keuangan");
gaji=1500000;
tunjangan=gaji*0.05;
}

gotoxy(22,7+i);cout< gotoxy(35,7+i);cout< gotoxy(45,7+i);cout<
hasil=strcmp(kar[i].status,"M");
if (hasil==0)
tj_kel=gaji*0.15;

hasil=strcmp(kar[i].status,"BM");
if (hasil==0)
tj_kel=0;

gotoxy(55,7+i);cout<
long tgaji=gaji + tunjangan + tj_kel;
gotoxy(68,7+i);cout< }

getch();
}

JAWABAN NO.4

#include
#include
#include
#include
#include
#include

struct budidarma {
char kode[5];
char nama[40], pend[15], ahli[30];
char npm[8], jenjang[2], tahun[4];
char jurusan[20];

}rbudidarma[10];

void menu();
void data_dosen();
void data_mhsw();
void output_ddosen();
void output_dmhsw();
void keluar();
void main (){
char pil='0';
while(pil !='6') {
menu();
pil=getch();
switch(pil){
case'1': data_dosen(); break;
case'2': data_mhsw(); break;
case'3': output_ddosen(); break;
case'4': output_dmhsw(); break;
case'5': keluar(); break;
}
}
}
void menu()
{
clrscr();
gotoxy(25,5); cout<<" MENU UTAMA ";
gotoxy(25,6); cout<<" ---------------------- ";
gotoxy(25,7); cout<<" [1] INPUT DATA DOSEN";
gotoxy(25,8); cout<<" [2] INPUT DATA MAHASISWA";
gotoxy(25,9); cout<<" [3] OUTPUT DATA DOSEN";
gotoxy(25,10); cout<<" [4] OUTPUT DATA MAHASISWA";
gotoxy(25,11); cout<<" [5] KELUAR PROGRAM";
gotoxy(25,12); cout<<" _______________________________";
gotoxy(25,13); cout<<" PILIHAN : ";
}

void data_dosen(){
FILE *coba;
float atof();
int i, n=0;
while(1)
{
clrscr();
gotoxy(35,5); cout<<" INFORMASI DATA DOSEN" ;
gotoxy(35,6); cout<<" _____________________________ " ;
gotoxy(35,7); cout<<"Kode Dosen[A, B, C] :";
gets(rbudidarma[n].kode);
gotoxy(35,8); cout<<"Nama Dosen :";
cin>>rbudidarma[n].nama;
gotoxy(35,9); cout<<"Pendidikan [S1, S2, Master] :";
gets(rbudidarma[n].pend);
gotoxy(35,10); cout<<"Keahlian:";
cin>>rbudidarma[n].ahli;
gotoxy(35,12); cout<<" ..................... " ;
++i;
}

gotoxy(35,6); cout<<" ....................... " ;
++i;
}
coba=fopen("c:\\budidarma.Dat","wb");

for (i=0; i {
fwrite(&rbudidarma[i], sizeof(rbudidarma[i]),1,coba);

fclose(coba);
}

void data_mhsw(){
FILE *coba;
float atof();
int i, n=0;
while(1)
{
clrscr();
gotoxy(35,5); cout<<" INFORMASI DATA MAHASISWA" ;
gotoxy(35,6); cout<<" _____________________________ " ;
gotoxy(35,7); cout<<"NPM : ";
cin>>rbudidarma[n].npm;
gotoxy(35,8); cout<<"NAMA :";
cin>>rbudidarma[n].nama;
gotoxy(35,9); cout<<"Jenjang [D3MI, D3KA, S1TI] :";
gets(rbudidarma[n].jenjang);
gotoxy(35,10); cout<<"Jurusan [Teknik Informatika, Manajemen Informatika] :";
gets(rbudidarma[n].jurusan);
gotoxy(35,11); cout<<"Tahun :";
cin>>rbudidarma[n].tahun;

coba=fopen("c:\\budidarma.Dat","wb");

for (i=0; i {
fwrite(&rbudidarma[i], sizeof(rbudidarma[i]),1,coba);
}
fclose(coba);
}



void output_ddosen(){
FILE *coba;
float atof();

clrscr();
coba = fopen("c:\\budidarma.Dat","rb");
if (coba==NULL)
{
gotoxy(20,10); cout<<" File Data.Dat belum ada ";
gotoxy(20,12); cout<<" Tekan Sembarang Tombol ";
getch();
return;
}
gotoxy(5,1); cout<<" Informasi Data Dosen ";
gotoxy(5,2); cout<<" --------------------------------------------------------- ";
gotoxy(5,3); cout<<"No Kode Nama Pendidikan Keahlian";
gotoxy(5,4); cout<<" -------------------------------------------------------- ";
while( (fread(&rbudidarma[n], sizeof(rbudidarma[n]),1,coba))==1)
{
++i;
gotoxy (6,4+i); cout<< i;
gotoxy (10,4+i); cout<
gotoxy (16,4+i);cout<
gotoxy (33,4+i);cout<
gotoxy (43,4+i);cout<
}
gotoxy (5,5+i); cout<< "________________________________________" ;
getch();
fclose(coba);
}

void output_dmhsw(){
FILE *coba;
float atof();

clrscr();
coba = fopen("c:\\budidarma.Dat","rb");
if (coba==NULL)
{
gotoxy(20,10); cout<<" File BUDIDARMA.Dat belum ada ";
gotoxy(20,12); cout<<" Tekan Sembarang Tombol ";
getch();
return;
}
gotoxy(5,1); cout<<" Informasi Data Mahasiswa ";
gotoxy(5,2); cout<<" ---------------------------------------------------------------------- ";
gotoxy(5,3); cout<<"No NPM NAMA JENJANG JURUSAN";
gotoxy(5,4); cout<<" ---------------------------------------------------------------------- ";
while( (fread(&rbudidarma[n], sizeof(rbudidarma[n]),1,coba))==1);
{
++i;
gotoxy (6,4+i); cout<< i;
gotoxy (10,4+i); cout<
gotoxy(16,4+i);cout<
gotoxy(33,4+i);cout<
gotoxy(43,4+i);cout<
}
gotoxy (5,5+i); cout<< "________________________________________" ;
getch();
fclose(coba);
}
}

Sabtu, 02 Juli 2011

MATAKULIAH YANG MEMBINGUNGKAN

Dari SD, SMP, SMA, sampai diperguruan tinggi pun, selalu dan selalu ada Mate-matika. Yang paling parahnya, Mate-matika yang aku dapat diperkuliahan, luar biasa parahnya. Sebenarnya gak parah-parah amat seh...
Pelajaran waktu SMAnya. (emang dasar aku gk suka. hehehe...)
udah 3 sks, dosennya buat ngantuk..
Gimana aku mau semangat belajaranya kalau dosennya ajah malas-malasan...
Yang kupikirlah gak ada MM diperkuliahan...
Oalah..... T.T

KEJENGKELAN DENGAN MATAKULIAH

Masa-masa sekolah dulu sangat berbeda dengan masa perkuliahan ku sekarang. Dulu sih sistemnya, 50% dari Guru. Nahhh.... Yang 50% nya lagi kita cari sendiri... Tapi diperkuliahan, kemungkinan cuma 10% yang dosen ajarkan. Selebihnya mahasisiwa yang bekrja dan usaha. beghh....
Sewaktu aku disemester 1, dosen yang kuhadapi lumayan baik, bisa dipahami. Tapi kalau disemester 2 nih... waduh... bawaanya tegang terus. Apalagi dengan dosen kiler cowok yang ada di Kampusku..
wah..wah..wah... Mau copot trus jantungku hanya melihat beliau. Yah... Mungkin beliau emang seperti itu orangnya... Biasalah... Seorang Pemimpin...
tau gak.. Kalau udah masuk Matakuliah dengan Beliau,, ughh... Serasa di dalam Goa api... Masuk kedalam Lab, Beliau kasih tugas, ciap atau enggak, ya wesss... udah waktunya matakul berkhir, ya kluar...
praahh....(hiks...sikss...)
udah aku gak paham dengan cara mengajarnya...
Pokoknya parah lah....
agghhh............

KEHIDUPANKU

Aku berbagi sedikit pengalaman hidupku..
Mulai dari aku kecil hingga dewasa sampai sekarang ini.
Ada sedih dan ada juga senangnya..
Semua itu ku jalani saja.
Aku dibesarkan oleh kedua orangtua ku hingga aku bisa bersekolah hingga diperguruan Tinggi.
Ayahku bekerja sebagai Guru di SMK Negeri.
Jabatannya lumayanlah disitu (wakasek) hehehe...
Sedangkan mama aku seorang ibu rumah tangga yang baik.
aku anak ke-3 dari 5 bersaudara..
Kehidupanku saat ini masih bisa dibilang lumayanlah..
Saudara-sausari ku udah ada yang jadi orang..(maksudnya berhasil Loh....)
Kakak aku udah PNS, dan Abangku udah jadi Tentara..
Nah... sekarang tinggal aku dan kedua adik ku yang masih dibiayai orangtuaku.. hiks..hikss..
Dulunya penghuni dirumahku lumayan banyak lah...
Eehh... Sekarang udah sepi. Soalnya kakak dan abangku udah pergi merantau...
Jadi sekarang, akulah yang diahapkan untuk mengerjai semua pekerjaan rumah...
Pagi-pagi sebelum berangkat kuliah, harus mengerjai pekerjaan dulu,, baru boleh pergi..
Cuci piring, masak nasi, buat sarapan dan teh manis, nyapu rumah...
Pokoknya, lengkaplah sudah penderitaan...hiks...hiks...
begitulah setiap harinya...







Selasa, 05 April 2011

BAHASA PASCAL

Sejarah singkat PASCAL

Nama PASCAL berasal dari nama seorang ilmuan Perancis Blaise pascal yang kemudian diberikan kepada bahasa program yang diciptakan oleh Niklaus Wirth sekitar tahun 70-an.

PASCAL kemudian menjadi bahasa popular dalam dunia pendidikan computer, menjadi bahasa standar dalam mengajarkan struktur dan disiplin program.
Pada computer mikro, versi yang popular adalah Turbo PASCAL , dan tahun 2000-an versi visual dari PASCAL muncul dengan nama DELPHI.

Algoritma dan PASCAL

Perbandingan antara Algoritma dan PASCAL disajikan sbb:
1. Seperti pada Algoritma, bahasa PASCAL memiliki suatu struktur utama sbb

PROGRAM nama_program

USES modul input-output, pustaka fungsi

VAR

{defenisi variabel yang sama dengan Deklarasi}

BEGIN
….intruksi pemograman
…sama dengan Deskripsi
END


2. Ada beberapa tipe data yang dikenal dalan PASCAL, adalah suatu keharusan untuk
mendefenisikan setiap variabel sebelum digunakan.
Tipe data utama yang dikenal dalan PASCAL adalah sbb:
a. integer: angka bulat antara -32768 s/d 32767
b. longint: bilngan bulat dengan nilai sangat besar
c. word: bilangan bulat positif antara 0 s/d 65535
d. byte: bilangan bulat positif antara 0 s/d 256
e. shortint: bilangan bulat kecil antara -128 s/d 127
f. real: bilangan biasa antara -2.9x10-39 s/d 1.7x10+38
g. single: bilangan biasa hampir sama dengan real
h. double: bilangan biasa yang jauh lebih besar dari real
i. extended: bilangan biasa yang sangat besar lebih dari double
j. char: karakter tunggal dalam tanda kutip (single quote)
k. string: deretan karakter dalam tanda kutip (double quote)

3. Semua variabel harus didefenisikan dalam VAR sebelum digunakan, misalnya sbb:

VAR umur: integer;
Gaji: real;
Nama: string;
Pemberin nilai pada variabel menggunakn tanda assignment “:= “,
Misalnya sbb:

Umur:=32;
Gaji:=350000.50;
Nama:= “Sultan Mahmud”;

4. Intruksi Input-Output adalah sebagai berikut:

Algoritma
Read(variabel);

Write(“teks…”,variabel)

Contoh:

Algoritma Hitung_Rata
{menghitung rata dari tiga angka}
Deklarasi
Real Num1,Num2,Num3,Rata;
String nama;

Deskripsi
Write(“Masukkan Nama anda:”);
Read(Nama);

Write(“Masukkan Angka 1:”);
Read(Num1);
Write(“Masukkan angka 2:”);
Read(Num2);
Write(“Masukkan angka 3:”);
Read(Num#);

Rata=(Num1+Num2+Num3)/3;
Write(“Rata-rata= “,Rata);
Write(“Terima kasih”,Nama);

BAHASA C / C++


SEJARAH SINGKAT BAHASA C/C++

Pada tahun 1969, pembuat computer PDP meminta Dennis Ritchie untuk membuat sebuah system operasi yang sesuai dengan versi baru computer PDP  pada masa itu. Bahasa assembly yang digunakan masa itu untuk membuat system operasi dirasakan kurang sesuai, sehingga dia membuat bahasa baru yang nantinya sangat fleksibel untuk membuat system operasi.

Bahasa C kemudian melahirkan system operasi UNIX, diumumkan oleh Brian Kernighan dan Dennis Ritchie sebagai bahasa pemograman baru pada tahun 1972. Sekitar tahun1983 lahirlah C++. Akibatnya, banyak software yang ditulis dengan C kemudian dikembangkan menjadi program C++ sehingga menjadi lebih efisien dan efektif.

Pada zaman visual ini, versi dari C dan C++  muncul dengan nama visual C atau visual C++, dan C builder.

Algoritma dan C/C++

Perbandingan antara algoritma dan bahasa C/C++ sebagai berikut:
  1. Konsep pemograman berstruktur yang telah diperkenalkan oleh Niklaus Wirth padaPASCAL dilanjutkan oleh C dan C++ sehingga bahasa ini memiliki struktur yang jelas sebagai berikut;
    /*Processor Directive */
    #include
    #defide
    /*Deklarasi Global*
    /*Fungsi Utama */
    Main()
    {
    …intruksi-intruksi
    }
    /*deskripsi fungsi yang didefenisikan*/
    ……
    ……
    File header adalah file yang memuat defenisi fungsi-fungsi yang telah disediakan, misalnya fungsi input-output dari bahasa C ada dalam file: dan pada bahasa C++ ada dalam file , sehingga file ini harus dimasukkan (include) di awal program yang menggunakan fungsi input-output.

    2. Beberapa tipe data yang dikenal dalam C/C++ adalah sbb:
    3. int: untuk bilangan bulat -32768 s/d 32767
    4. long int: untuk bilangan bulat yang jauh lebih besar
    5. char: untuk karakter tunggal, string dibentuk dari array karakter
    6. float: untuk bilangan real
    7. double: untuk bilangan real
    8. Cara mendeklarasikan variable-variabel sbb:

    Int umur;
    Float gaji;
    Char nama[20]]

    Pemberian nilai kepada variabel dilakukan sebagai berikut:
             
Umur=32
Gaji=456000.50;
trcpy(nama,”abdulsalam”);                                           

Pemberian nilai secara langsung kepada string seperti: nama= “Abdul Salam”; tidak
    diperkenankan, tetapi harus melalui fungsi “strcpy” yang ada dalam pustaka.

4. Intruksi Input-Output

Terdapat perbedaan besar dalam intruksi input-output pada bahasa C dan C++. Bahasa C cederung membuat proses input-output menjadi lebih mudah.




      Algoritma
Read(variabel);
           
Write(“teks…”,variabel)

Contoh:
Algoritma hitung_Rata
{menhitung rata dari tiga angka}
Deklarasi
     Real Num 1,Num2, Num3, Rata;
     String Nama;

Deskripsi
     Write(“masukkan nama anda:”);
     Read (Nama);

     Write(“Masukkan angka 1:”);
     Read(Num 1);
     Write(“Masukkan angka 2:”):
     Read(Num2);
     Write(“Masukkan angka 3:”);
     Read(Num3);

     Rata=(Num1 +Num2 +Num3)/3;
     Write(“Rata-rata=”,Rata);
     Write(“Terima kasih”,Nama);

PEMROGRAMAN TERSTRUKTUR

INSTRUKSI UTAMA

Intruksi Runtuhan (sequential)
Intruksi runtuhan adalah intruksi yang dikerjakan secara beruntun atau berurutan baris per baris mulai dari pertama hingga baris terakhir, tanpa ada loncatan atau perulangan.

1 Tiap intruksi dikerjakan satu per satu sebanyak satu kali
2 Urutan pelaksanaan intruksi sama dengan urutan penulisan algoritma
3 Intruksi terakhir merupakan akhir algoritma
4 Urutan penulisan intruksi bisa menjadi penting; bila diubah dapat menyebabkan hasil yang berbeda

Contoh algoritma yang menggambarkan intruksi runtuhan:
Deklarasi
Integer A,B;

Deskripsi
A__10
A__2*A;
B__A;
Write(B);
Algorima menghasilkan 20

Algoritma runtuhan_2
{menunjukkan urutan yang berbeda memberi hasil yang berbeda}
Deklarasi
Integer A,B;
Deskripsi
A__10;
B__A;
A__2*A;
Dengan urutan yang diubah maka algoritma diberi hasil : 10


INTRUKSI PEMILIHAN

Intruksi pemilihan adalah intruksi yang dipakai untuk memilih satu aksi dari beberapa kemungkinan aksi berdasarkan suatu persyaratan. Ada 2 bentuk intruksi pemilihan yang sering digunakan, yaitu if, then,else dan case.


Intruksi If/Then/else
Digunakan untuk memilih alternative apabila suatu syarat atau kondisi dipenuhi (1 kasus), atau memilih satu alternative dari dua kemungkinan berdasarkan apakah syarat terpenuhi atau tidak (2 kasus).

Bentuk 1 kasus:
if (syarat)
then aksi
endif

contoh: if (x >100)
then x___x+5
endif

Bentuk 2kasus
If (syarat)
Then aksi -1
Else aksi -2
Endif.

Contoh: if(a>0)
Then write (“bilangan ini positif”)
Else write (“bilangan ini negative”)
Endif.


INTRUKSI CASE

Digunakan sebagai intruksi pemilihan dimana aksi yang akan dilakukan hanya bergantung pada nilai dari satu macam variable.

Bentuk intruksi case:

Case (variable)
Nilai-1 : aksi-1;
Nilai-2 : aksi-2;
Nilai-3 : aksi-3;
………
Default: aksi-n;
Endcase.


INTRUKSI PERULANGAN (REPETITION)

Intruksi perulangan adalah intruksi yang dapat mengulang pelaksanaan sederetan intruksi lainnya berulana-ulang sesuai persyaratan yang ditetapkan.

Stuktur intruksi perulangan pada dasarnya terdiri atas:
- Kondisi perulangan: suatu kondisi yang harus dipenuhi agar perulangan dapat terjadi
- Badan(body) perulangan: deretan intruksi yang akan diulang-ulang pelaksanaannya
- Pencacah(counter) perulangan: suatu variable yang nilainya harus berubah dapat terjadi dan pada akhirnya membatasi jumlah perulangan yang dapat dilaksanakan

3 macam bentuk intruksi perulangan dalam program:
- while
- do,repeat
- until
- for


PERULANGAN WHILE-DO

Bentuk umum

While (kondisi) do
……..
Intruksi-intruksi
……..
Endwhile.

Algoritma Perulangan
{mencetak angka 1 hingga 100}

Deklarasi
Integer angka;
Deskripsi
Angka__1;
While(angka<101)do Write(angka); Angka__angka+1; Endwhile. PERULANGAN REPEAT – UNTIL Bentuk umum Repeat ………. Intruksi-intruksi …………. Until (kondisi). Contoh Algoritma Perulangan dengan menggunakan repeat-until untuk menhitung jumlah angka 1+2+3+….+N, dimana N adalah bilangan bulat yang dimasukkan lewat keyboard. Algoritma Perulangan {menhitung jumlah =1+2+3+….N,N dimasukkan lewat keyboard} Deklarasi Integer cacah,N,Jumlah; Deskripsi Write (“Masukkan nilai N :”); Read (N); Cacah__1; Jumlah__0; Repeat Jumlah__Jumlah + cacah; Cacah__cacah + 1; Until (cacah>N).
Write (“jumlahnya=”,jumlah);






PERULANGAN FOR

Bentuk umum

For (var=awal to akhir step n)
…………..
Intruksi-intruksi
…………..
Endfor.


Makna dari bentuk intruksi tersebut adalah ulangi intruksi-intruksi tersebut berdasarkan variabel perulangan mulai nilai awal hingga nilai akhir dengan perulangan nilai sebesar n.

Perhatikan:

1. Variabel perulangan (var) harus bertipe dasar (integer,real,atau char).
2. Nilai awal harus lebih kecil dari akhir bila n>0 (positif)
3. Nilai awal harus lebih besar dari akhir bila n<0 (negative)
4. Mula-mula variabel var bernilai awal, kemudian setiap satu kali putaran maka nilai var bertambah sebesar n.
5. Perulangan akan berhenti apabila nilai var sudah mencapai akhir

Contoh algoritma menampilkan “Halo...” sebanyak 10 kali dengan intruksi for

Algoritma perulangan
{menampilkan Halo…memakai intruksi for}

Deklarasi
Integer cacah;

Deskripsi
For (cacah=1 to 10 step 1)
Write (“halo….”);
Endfor.
ALGORITMA EUCLIDEAN

{Diberikan dua buah bilangan bulat tak-negatif m dan n (m>=n). Algoritma Euclidean mencari pembagi bersama terbesar, gcd, dari kedua bilangan tersebut, yaitu bilangan bulat positif terbesar yang habis membagi m dan n.}
1. Jika n= 0 maka
m adalah jawabannya;
stop.
tetapi jika n#0,
lanjutkan ke langkah 2.
2. Bagilah m dengan n dan misalkan r adalah sisanya.
3. Ganti nilai m dengan nilai n dan nilai n dengan nilai r, lalu ulang kembali ke langkah 1.

Dengan menggunakan algoritma Euclidean ini, kita dapat menhitung gcd dari dua buah bilangan bulat sembarang secara sistematis.

Contoh-contohalgoritma yang sudah dijelaskan di atas memberi dua pesan penting. Pertama, sebuah algoritma harus benar. Kedua, algoritma harus berhenti, dan setelah berhenti, algoritma memberi hasil yang benar.

Ciri-ciri Algoritma yang baik: Menurut Donald E.Knuth dalam bukunya yang berjudul the Art Of Computer Programming [KNU73], Algoritma mempunyai 5 ciri penting yaitu:
1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas Setiap langkah didefenisikan dengan tepat dan tidak berarti dua (ambiguous).
2. Algoritma memiliki nol atau lebih masukan(input). Masukan ialah besaran yang diberikan kepada algoritma untuk diproses.
3. Algoritma mempunyai nol atau lebih keluaran(output). Keluaran dapat berupa pesan atau besaran yang memiliki hubungan dengan masukan.
4. Algoritma harus sangkil (effective). Setiap langkah harus sederhana sehingga dapat dikerjakan dalam sejumlah waktu yang masuk akal.

Ciri-ciri Algoritma yana baik:
1. Tepat sasaran: memenuhi spesifikasi pekerjaan dan bekerja sesuai tujuan
2. Flexible dan portable:
• Flexible untuk dikembangkan lebih lanjut
• Portable untuk digunakan pada berbagai system dan mesin
3. Bersih dari kesalahan system atau lojik
4. Efektif: setiap langkah harus sederhana sehingga dapat dikerjakan dalam sejumlah waktu yang masuk akal.
5. Murah:
• Efisien dalam pengguna piranti memori dan penyimpanan lainnya
• Cepat waktu pelaksanaanya
6. Didokumentasi dengan baik untuk pengoperasian, pemeliharaan dan Pengembangan
7. Algoritma merupakan pemberian (description) pelaksanaan suatu proses
8. Tidak ambiguous: tidak bermakna ganda
9. Harus berhenti setelah mengerjakan sejumlah langkah terbatas

PENGERTIAN ALGORITMA

ALGORITMA


        I.      PENGERTIAN ALGORITMA

Algoritma adalah dasar dan pondasi untuk membuat suatu program komputer yang baik. Program komputer yang menggunakan algoritma dan flowchart akan menghasilkan program yang tersusun rapi. Tutorial berikut akan menjelaskan dasar dasar algoritma komputer.

Algoritma adalah metode untuk menyelesaikan suatu permasalahan secara bertahap. Contoh sederhana suatu algoritma adalah resep suatu masakan. Pada resep suatu masakan terdapat langkah langkah penyelesaian untuk membuat masakan itu. Misalkan untuk membuat telur rebus, maka diperlukan langkah langkah:

1.      Cuci bersih telur yang akan direbus.
2.      Siapkan air pada panci.
3.      Rebus air hingga mendidih.
4.      Masukkan telur yang sudah dicuci kedalam air yang telah direbus.
5.      Tunggu hingga matang dan sajikan

Komputer adalah suatu mesin. Untuk dapat melakukan pekerjaannya komputer membutuhkan instruksi yang diberikan pada komputer itu. Kumpulan instruksi umum untuk berbagai jenis komputer disebut algoritma.


      II.      KARAKTERISTIK ALGORITMA

Algoritma komputer memiliki beberapa karakteristik yang harus dipenuhi agar menjadi algoritma yang baik. Karakteristik itu antara lain:

  • Presisi. Langkah langkah penyelesaian masalah dalam algoritma haruslah secara presisi (tepat) dinyatakan, tidak mengandung ambiguitas.
  • Keunikan. Hasil pertengahan dalam tiap langkah eksekusi suatu algoritma didefinisikan secara khas dan merupakan pengolahan dari hasil eksekusi langkah sebelumnya.
  • Keterbatasan. Algoritma harus terbatas dan berhenti pada suatu titik setelah semua ekesekusi dilaksanakan.
  • Input. Algoritma menerima input.
  • Output. Algoritma menghasilkan output.
  • General. Algoritma berlaku untuk suatu kumpulan input tertentu.

Contoh algoritma:
Input: n
Output: 1/1 + 1/2+ ... +1/n

  1. jumlah = 0
  2. i= 0
  3. i=i+1
  4. jumlah = jumlah + 1/i
  5. ulangi langkah 3 dan 4 sehingga i==n

Algoritma pada contoh adalah algoritma untuk menghitung algoritma-1.

Pada langkah 1, nilai 0 diisikan pada variabel jumlah. jadi jumlah pada langkah pertama bernilai 0. Tanda = adalah operator penugasan dengan makna “kopikan 0 kepada jumlah” atau ” gantikan nilai tertentu jumlah dengan 0″.Langkah 2 juga menunjukkan hal yang sama namun dengan nama variabel yang berbeda. Langkah 3 menunjukkan instruksi “kopikan jumlah antara isi variabel i dan 1 kepada variabel i”. Langkah 4 menunjukkan instruksi “kopikan jumlah antara isi variabel jumlah dengan 1/isi variabel i pada variabel jumlah”. Langkah 5 menunjukkan instruksi untuk mengulangi langkah langkah 3 dan 4 sehingga terpenuhi syarat i = = n. Operator = = disebut operator equalitas yang bermakna benar dan salah. Jika i sama dengan n maka nilainya benar dan jika i tidak sama dengan n maka nilainya salah.

Algoritma ini dikatakan presisi karena tiap langkahnya didefinisikan secara tepat dan tidak mengandung pemahaman yang ambigu ketika instruksi instruksinya dilaksanakan semua orang atau mesin. Misalkan ada instruksi “jumlahkan i”. Instruksi ini mengandung ambigu karena tidak terdapat keterangan penjumlahnya. Algoritma ini dikatakan unik karena hasil pertengahan dalam tiap langkah eksekusi suatu algoritma didefinisikan secara khas dan merupakan pengolahan dari hasil eksekusi langkah sebelumnya.Misalkan pada langkah 3. Langkah 3 akan menghasilkan nilai tertentu jika nilai i telah diketahui. Pada proses pertama nilai i adalah hasil keluaran dari langkah 2 yaitu bernilai 0 sehingga nilai keluaran i pada proses pertama langkah 3 adalah 1. Algoritma ini dikatakan terbatas karena dimulai dari langkah 1 dan diakhiri jika syarat i = = n bernilai benar. Algoritma ini input berupa nilai yang dimasukkan pada variabel n dan memiliki output yang berupa hasil dari operasi 1/1 + 1/2+ … +1/n. Algoritma ini dikatakan general karena algoritma ini dapat diterapkan untuk setiap nilai real yang dimasukkan pada variabel n.