Selasa, 15 Desember 2009

PENULISAN ALGORITMA

PENULISAN ALGORITMA


Penulisan algoritma dapat menggunakan 2 cara, yaitu:
a. Pseudocode (kode semu)
Dalam merancang sebuah algoritma menggunakan kode semu, komponenkomponen input, output dan proses harus terdefinisi secara jelas. Disamping itu beberapa ketentuan dan aturan pendefinisian memang secara baku tidak ditemukan dalam beberapa buku literatur, namun aturan-aturan yang di ajukan dibawah ini akan membantu mempermudah perancangan algoritma dan evaluasi serta analisis algoritma.
Aturan-aturan tersebut :
1.Kode semu harus dimulai dengan judul. Aturan ini secara mudah dapat dimengerti fungsi dan manfaatnya. Judul harus dapat menjelaskan spesifikasi masalah yang dirancang algoritmanya. Penulisannya dapat dengan huruf kapital semuanya atau tidak.
2.Kode semu harus ditulis dengan nomor yang menunjukkan urutan-urutan langkahlangkah dalam algoritma.
3.Pendeklarasian variabel, konstanta, parameter, rumus dan pernyataan harus sederhana.

Contoh: menghitung luas segitiga dengan menggunakan pseudocode
1.[masukkan/input alas dan tinggi segitiga]
read (alas, tinggi)
2.[menghitung luas segitiga]
L:= 12 * panjang * lebar.
3.[mencetak hasil]
Write (‘ Luas Segitiga : ‘, L)
4.[mengakhiri algoritma]
exit

b. Flowchart (diagram alir)
Flowchart adalah bagan yang menggambarkan arus logika dari data yang akan diproses dalam suatu program dari awal sampai akhir.



Menurut bentuknya flowchart dibedakan manjadi tiga jenis:
1.Flowchart berurut, yaitu bentuk flowchart yang bentuknya urut ke bawah dan biasanya hanya menyelesaikan satu persoalan dengan satu penyelesaian.
2.Flowchart memilih yaitu bentuk flowchart yang digunakan untuk menyelesaikan persoalan dengan penyelesaian lebih dari satu, biasa memilih satu diantara dua penyelesaian.
3.Flowchart berulang yaitu bentuk flowchart yang digunakan untuk menyelesaikan persoalan dengan bentuk berulang.
Masing –masing bentuk di atas dijelaskan secara rinci pada bab selanjutnya.

ALGORITMA

ALGORITMA

Pendahuluan

Algoritma memegang peranan penting dalam bidang pemrograman. Sebegitu pentingnya suatu algoritma, sehingga perlu dipahami konsep dasar algoritma. Apalagi untuk seorang programer, tentu diperlukan suatu algoritma sehingga dapat membuat program yang lebih efektif dan efisien. Bagi kebanyakan orang, algoritma sangat membantu dalam memahami konsep logika pemrograman.
Algoritma adalah kumpulan instruksi yang dibuat secara jelas untuk menunjukan langkah langkah penyelesaian suatu masalah. Pada umumnya algoritma kurang lebih sama dengan suatu prosedur yang sering dilakukan setiap hari, misalnya prosedur untuk mengganti ban bocor/pecah, prosedur pemakaian telepon umum, prosedur membuat kue dan lain-lain.
Dalam bidang komputer, misalnya EDP (Elektronik Data Processing) atau MIS (Management Information System), algoritma sering dimanfaatkan untuk menyelesaikan suatu masalah atau untuk proses pengambilan keputusan. Seorang sistem analisis (analisist system) tentunya menggunakan algoritma untuk merancang suatu sistem. Bagi seorang programer, algoritma digunakan untuk membuat modul-modul program. Guna memahami suatu algoritma, harus dimiliki pengetahuan dasar matematika karena pada dasarnya algoritma lahir dari konsep logika matematika. Disini yang perlu dilatih adalah kemampuan logikanya agar benar-benar bisa menyusun langkah-langkahn penyelesaian masalah dengan baik. Dalam buku ajar ini, disajikan konsep dasar dan analisis algoritma. Pada bagian konsep dasar dibahas komponen utama, desain, dan contoh pembuatan. Selanjutnya, untuk mendapatkan algoritma yang efisien serta mendapatkan rumusan matematika sebagai ukuran kerumitan (kompleksitas) maka dibahas analisis algoritma dengan menggunakan notasi O (big O).

Konsep Dasar Algoritma

Algoritma adalah kumpulan instruksi/perintah yang dibuat secara jelas dan sistematis berdasarkan urutan yang logis (logika) untuk penyelesaian suatu masalah. French,C.S. (1984) menyatakan sejumlah konsep yang mempunyai relevansi dengan masalah rancangan program yaitu kemampuan komputer, kesulitan dan ketepatan. Penerapan dari konsep tersebut biasanya digunakan dalam rancangan algoritma. Dalam merancang sebuah algoritma, Fletcher (1991) memberikan beberapa cara atau metode yaitu kumpulan perintah, ekspresi, tabel instruksi, program komputer, kode semu dan flow chart, sedangkan Knuth (1973) menyarankan algoritma fundamental. Untuk keperluan matematika dan program komputer metode yang sering digunakan yaitu :
1. Diagram Alir (Flow Chart)
2. Kode Semu (Pseudo Code)
3. Algoritma Fundamental
Knuth (1973) menyatakan 5 komponen utama dalam algoritma yaitu finiteness, definiteness, input, output dan effectiveness. Sehingga dalam merancang sebuah algoritma ada 3 (tiga) komponen yang harus ada yaitu:
1. Komponen masukan (input)
Komponen ini biasanya terdiri dari pemilihan variable, jenis variable, tipe variable,
konstanta dan parameter (dalam fungsi).
2. Komponen keluaran (output)
Komponen ini merupakan tujuan dari perancangan algoritma dan program.
Permasalahan yang diselesaikan dalam algoritma dan program harus ditampilkan dalam komponen keluaran. Karakteristik keluaran yang baik adalah benar (menjawab) permasalahan dan tampilan yang ramah (Frendly).
3. Komponen proses (processing)
Komponen ini merupakan bagian utama dan terpenting dalam merancang sebuah algoritma. Dalam bagian ini terdapat logika masalah, logika algoritma (sintaksis dan semantik), rumusan, metode (rekursi, perbandingan, penggabungan, pengurangan dan lain-lain).

BAHASA PEMOGRAMAN KOMPUTER

Bahasa Pemograman Komputer

Program  intruksi – intruksi yang diberikan kepada computer agar computer dapat melakukan tugas – tugas tertentu.
Pemograman  upaya untuk membuat program.
Bahasa pemograman  bahasa yang dipergunakan dalam pembuatan suatu program.
Langkah – langkah dalam pemograman
1.Menulis program
2.Menjalankan program untuk menguji kebenaran program.
Jika ada kesalahan (logika maupun kaidah), program akan diperbaiki dan kembali ke langkah sebelumnya. Lihat langkah – langkah pemograman pada gambar 1

WORD DAN EXCEL

Aplikasi untuk Pengolah Data ( Word dan Excel )

Aplikasi word digunakan antara lain untuk membuat surat, membuat artikel, membuat publikasi sampai pada membuat soal. Dalam aplikasi Word terdapat berbagai bantuan yaitu : Mail merge, penomoran(bullet and numbering), insert picture maupun inser from file, membuat table, mengatur letak tampilan agar ukuran printing sesuai dengan aturan yang di inginkan equation editor dan simbol-simbol, garis untuk membuat bidang / benda, serta fasilitas grouping.
Sedangkan aplikasi excel digunakan dalam hal ini untuk mengolah data yang berupa angka-angka, antara lain yang dipergunakan sebagai penunjang dalam perhitungan tabel, pembuatan diagram, serta formula.
Aplikasi word dan excel bisa bekerja secara bersama-sama misalnya, tentang pecahan dan gambar yang menunjukkan pecahan. Bila kita sedang menggunakan word untuk menggambar hal tersebut mempunyai kesulitan, kita bisa mencoba untuk membuat gambarnya melalui excel. Dengan bantuan Chart (pada menu Insert-Chart…), maka kita bisa pilih type chart nya pada “Pie” type chart. Kita isi dua data yang sama, untuk membuat setengah bagian, tiga data yang sama untuk membuat tiga bagian, dan bisa kita isi empat data yang sama untuk membuta 4 bagian. Chart yang kita buat langsung bisa lihat hasilnya di excel tersebut.
Bila ingin memindahkan ke word, tinggal lakukan copy paste (copy pada excel, kemudian di word klik kanan paste) maka gambar di excel tersebut sudah ada di word.
Untuk mengubah warna kita bisa menggunakan klik kanan —edit picture. Jangan lupa ketika sudah kita edit lakukan grouping ulang, supaya gambar tidak rusak kalau kita lakukan pemidahan.
Gambar:





Dengan aplikasi Excel tentukan dahulu berapa variabelnya, misalkan dua variabel. Lihat gambar, lalu blok data tersebut kemudian cari insert  chart. Pilih chart,misalkan pie. Maka akan terbentuk diagram lingkaran. Dalam gambar diagram tersebut terbagi 3 bagian yang sama. Data A mempunyai 1 bagian, sedangkan data B 2 bagian. Copy paste ke word, selanjutnya kita dapat mengubah warna, bentuk diagram, dapat juga menambah data yang diinginkan. Excel hanya untuk memudahkan kita dalam membuat saja.

Selasa, 08 Desember 2009

Algoritma

ALGORITMA

Pendahuluan

Algoritma memegang peranan penting dalam bidang pemrograman. Sebegitu pentingnya suatu algoritma, sehingga perlu dipahami konsep dasar algoritma. Apalagi untuk seorang programer, tentu diperlukan suatu algoritma sehingga dapat membuat program yang lebih efektif dan efisien. Bagi kebanyakan orang, algoritma sangat membantu dalam memahami konsep logika pemrograman.
Algoritma adalah kumpulan instruksi yang dibuat secara jelas untuk menunjukan langkah langkah penyelesaian suatu masalah. Pada umumnya algoritma kurang lebih sama dengan suatu prosedur yang sering dilakukan setiap hari, misalnya prosedur untuk mengganti ban bocor/pecah, prosedur pemakaian telepon umum, prosedur membuat kue dan lain-lain.
Dalam bidang komputer, misalnya EDP (Elektronik Data Processing) atau MIS (Management Information System), algoritma sering dimanfaatkan untuk menyelesaikan suatu masalah atau untuk proses pengambilan keputusan. Seorang sistem analisis (analisist system) tentunya menggunakan algoritma untuk merancang suatu sistem. Bagi seorang programer, algoritma digunakan untuk membuat modul-modul program. Guna memahami suatu algoritma, harus dimiliki pengetahuan dasar matematika karena pada dasarnya algoritma lahir dari konsep logika matematika. Disini yang perlu dilatih adalah kemampuan logikanya agar benar-benar bisa menyusun langkah-langkahn penyelesaian masalah dengan baik. Dalam buku ajar ini, disajikan konsep dasar dan analisis algoritma. Pada bagian konsep dasar dibahas komponen utama, desain, dan contoh pembuatan. Selanjutnya, untuk mendapatkan algoritma yang efisien serta mendapatkan rumusan matematika sebagai ukuran kerumitan (kompleksitas) maka dibahas analisis algoritma dengan menggunakan notasi O (big O).

Konsep Dasar Algoritma

Algoritma adalah kumpulan instruksi/perintah yang dibuat secara jelas dan sistematis berdasarkan urutan yang logis (logika) untuk penyelesaian suatu masalah. French,C.S. (1984) menyatakan sejumlah konsep yang mempunyai relevansi dengan masalah rancangan program yaitu kemampuan komputer, kesulitan dan ketepatan. Penerapan dari konsep tersebut biasanya digunakan dalam rancangan algoritma. Dalam merancang sebuah algoritma, Fletcher (1991) memberikan beberapa cara atau metode yaitu kumpulan perintah, ekspresi, tabel instruksi, program komputer, kode semu dan flow chart, sedangkan Knuth (1973) menyarankan algoritma fundamental. Untuk keperluan matematika dan program komputer metode yang sering digunakan yaitu :
1. Diagram Alir (Flow Chart)
2. Kode Semu (Pseudo Code)
3. Algoritma Fundamental
Knuth (1973) menyatakan 5 komponen utama dalam algoritma yaitu finiteness, definiteness, input, output dan effectiveness. Sehingga dalam merancang sebuah algoritma ada 3 (tiga) komponen yang harus ada yaitu:
1. Komponen masukan (input)
Komponen ini biasanya terdiri dari pemilihan variable, jenis variable, tipe variable,
konstanta dan parameter (dalam fungsi).
2. Komponen keluaran (output)
Komponen ini merupakan tujuan dari perancangan algoritma dan program.
Permasalahan yang diselesaikan dalam algoritma dan program harus ditampilkan dalam komponen keluaran. Karakteristik keluaran yang baik adalah benar (menjawab) permasalahan dan tampilan yang ramah (Frendly).
3. Komponen proses (processing)
Komponen ini merupakan bagian utama dan terpenting dalam merancang sebuah algoritma. Dalam bagian ini terdapat logika masalah, logika algoritma (sintaksis dan semantik), rumusan, metode (rekursi, perbandingan, penggabungan, pengurangan dan lain-lain).

Program Berurut

BERURUT
Program berurut, adalah menjalankan proses secara berurutan. dari proses satu dilanajutkan proses kedua dan dilanjutkan ke proses berikutnya. tidak ada percanbangan dan tidak ada perulangan..

1. luas daerah persegi panjang dan kelilingnya.

program Luas_Persegi_Panjang_dan_Kelilingnya;
uses wincrt;
var
panjang:real;
lebar:real;
luas:real;
keliling:real;
begin
write('masukkan panjang =');readln(panjang);
write('masukkan lebar =');readln(lebar);
luas:=panjang*lebar;
keliling:=2*(panjang+lebar);
writeln('Luas=',luas:10:5);
writeln('Keliling=',keliling:10:5);
end.

2. Volum Kubus dan luas permukaan kubus.

program Volume_Kubus_dan_Luas_Permukaan_Kubus;
uses wincrt;
var
alas:real;
volume:real;
luas_permukaan:real;
begin
write('masukkan alas =');readln(alas);
volume:=alas*alas*alas;
luas_permukaan:=6*(alas*alas);
writeln('volume=',volume:5:2);
writeln('luas_permukaan=',luas_permukaan:5:2);
end.

3. Luas daerah lingkaran dan keliling lingkaran.

Program Luas_Lingkaran_dan_Keliling_Lingkaran;
uses wincrt;
const
phi=3.141596;
var
r:real;
Luas:real;
Keliling:real;
Begin
write ('masukkan jari-jari lingkaran: ');readln(r);
Luas:=(phi*r*r);
Keliling:=(phi*2*r);
writeln ('luas:', Luas:10:3);
writeln ('keliling:', Keliling:10:3);
end.

4. Luas permukaan tabung dan kerucut.

program Luas_Permukaan_Tabung_dan_Kerucut;
uses wincrt;
const
phi=3.141596;
var
r:real;
t:real;
luas_permukaan_tabung:real;
luas_permukaan_kerucut:real;
begin
write('masukkan jari-jari =');readln(r);
write('masukkan tinggi =');readln(t);
luas_permukaan_tabung:=((2*phi*r*r)+(2*phi*r*t));
luas_permukaan_kerucut:=((2*phi*r*r)+(2*phi*r*t)/3);

writeln('luas_permukaan_tabung=',luas_permukaan_tabung:5:2);
writeln('luas_permukaan_kerucut=',luas_permukaan_kerucut:5:2);

end.

5. Penjumlahan, pengurangan, perkalian, pembagian, pembagian bulat, dan sisa hasil bagi dalam sebuah program.

Program Operasi_Tambah_Kurang_Kali_Bagi_Div_Mod;
Uses Wincrt;
Var
a,b:longint;
c,d,e,f,g,h:real;
Begin
Write ('Masukkan bilangan pertama=');readln (a);
Write ('Masukkan bilangan kedua=');readln (b);
c:=a+b;
d:=a-b;
e:=a*b;
f:=a/b;
g:=a div b;
h:=a mod b;
Writeln ('Hasil Penjumlahan adalah ',(c):5:0);
Writeln ('Hasil Pengurangan adalah ',(d):5:0);
Writeln ('Hasil Perkalian adalah ',(e):5:0);
Writeln ('Hasil Pembagian adalah ',(f):5:2);
Writeln ('Hasil Pembaian Bulat adalah ',(g):5:0);
Writeln ('Sisa Hasil Pembagian adalah ',(h):5:0);
End.

6. Meghitung gaji karyawan apabila diinput nama orang, gaji pokok, tunjangan istri 15 % dari gaji pokok, tunjangan tiap anak 20 % dari gaji pokok, pajak 15 % dari gaji keseluruhan.

Program Gaji_Karyawan;
uses wincrt;
var
nama_orang:string;
a:real;
gaji_pokok:real;
tunjangan_istri:real;
tunjangan_anak:real;
pajak:real;
total_gaji:real;
begin
write ('masukkan nama orang =');readln(nama_orang);
write ('masukkan gaji pokok =');readln(gaji_pokok);
write ('masukkan jumlah anak=');readln(a);
tunjangan_istri:=(0.15*gaji_pokok);
tunjangan_anak:=a*(0.2*gaji_pokok);
pajak:=(0.15*(tunjangan_istri+tunjangan_anak+gaji_pokok));
total_gaji:=(gaji_pokok+tunjangan_istri+tunjangan_anak-pajak);
writeln('tunjangan_istri=',tunjangan_istri:10:2);
writeln('tunjangan_anak=',tunjangan_anak:10:2);
writeln('pajak=',pajak:10:2);
writeln('total_gaji=',total_gaji:10:2);
end.

7. Koordinat titik tengah dari kedua titik yang diketahui.

Program Koordinat_Titik_Tengah;
uses wincrt;
var
x1:real;
x2:real;
y1:real;
y2:real;
titik_tengah_x:real;
titik_tengah_y:real;
begin
write('masukkan nilai x1 =');readln(x1);
write('masukkan nilai x2 =');readln(x2);
write('masukkan nilai y1 =');readln(y1);
write('masukkan nilai y2 =');readln(y2);
titik_tengah_x:=((x1+x2)/2);
titik_tengah_y:=((y1+y2)/2);
writeln('titik_tengah_x=',titik_tengah_x:10:5);
writeln('titik_tengah_y=',titik_tengah_y:10:5);
end.

8. Konversi dari jam ke detik.

Program Konversi_Jam_ke_Detik;
uses wincrt;
var jam:real;
detik:real;
begin
write('masukkan jam :');readln(jam);
detik:=jam*3600;
writeln('detik =',detik:10:2);
end.
10. Konversi detik ke jam
Program Konversi_Detik_ke_Jam;
uses wincrt;
var detik:real;
jam:real;
begin
write('masukkan detik :');readln(detik);
jam:=detik / 3600;
writeln('jam =',(jam):10:2);
end.

9. Apabila diketahui waktu mulai telepon(jam,menit,detik) dan waktu selesai telepon(jam,menit,detik), berapakah lamanya telepon dalam detik.

Program Menghitung_Lama_Waktu_Telepon_dalam_Detik;
Uses Wincrt;
Var
hh1,mm1,ss1,hh2,mm2,ss2,Total_Detik:real;
Begin
Writeln ('Waktu mulai telepon:');
Write ('Jam =');read (hh1);
Write ('Menit=');read (mm1);
Write ('Detik=');read (ss1);
Writeln ('Waktu selesai telepon:');
Write ('Jam =');read (hh2);
Write ('Menit=');read (mm2);
Write ('Detik=');read (ss2);
Total_Detik:=(hh2-hh1)*3600+(mm2-mm1)*60+(ss2-ss1);
Writeln ('Lama Waktu Telepon dalam Detik adalah ',(Total_Detik):2:0, (' detik.'));
End.

10. Biaya telepon apabila diinput mulai telepon dan selesai telepon, dan biaya pulsa per Rp 200,- dan 1 pulsa adalah 5 detik ( sisa < 5 detik diabaikan).

Program Menghitung_Biaya_Telepon;
Uses Wincrt;
Type Jam = record
hh:longint;
mm:longint;
ss:longint;
end;
Var
J1,J2:Jam;
Total_Detik:longint;
Biaya_Telepon:longint;
Begin
Writeln ('Waktu mulai telepon:');
Write ('Jam =');read (J1.hh);
Write ('Menit=');read (J1.mm);
Write ('Detik=');read (J1.ss);
Writeln ('Waktu selesai telepon:');
Write ('Jam =');read (J2.hh);
Write ('Menit=');read (J2.mm);
Write ('Detik=');read (J2.ss);
Total_Detik:=(J2.hh-J1.hh)*3600+(J2.mm-J1.mm)*60+(J2.ss-J1.ss);
Biaya_Telepon:=(Total_Detik div 5)*200;
Writeln ('Lama Waktu Telepon dalam Detik adalah ',(Total_Detik), (' detik.'));
Writeln ('Biaya Telepon adalah Rp ',Biaya_Telepon);
End.

11. Konversi Suhu dari Celcius ke Kelvin dan Fahrenhet.

program suhu;
uses wincrt;
var
celcius,kelvin:integer;
fahrenheit:real;
begin
write('masukkan suhu dalam celcius = ');readln(celcius);
fahrenheit:=(9/5*celcius)+32;
kelvin:=celcius+273;

writeln('suhu dalam fahrenheit=',fahrenheit:5:2);
writeln('suhu dalam kelvin=',kelvin);
end.

12. Menghitung umur seseorang apabila diasumsikan dalam 1 bulan ada 30 hari dan dalam 1 tahun ada 365 hari.
Program Menghitung_Umur_Seseorang;
Uses Wincrt;
Var
yy1,yy2,mm1,mm2,dd1,dd2,Total_Hari,Umur_Tahun,Umur_Bulan,Umur_Hari:longint;
Begin
Writeln ('Masukkan Tanggal Sekarang:');
Write ('Tanggal=');read (dd1);
Write ('Bulan =');read (mm1);
Write ('Tahun =');read (yy1);
Writeln ('Masukkan Tanggal Lahir:');
Write ('Tanggal=');read (dd2);
Write ('Bulan =');read (mm2);
Write ('Tahun =');read (yy2);
Total_Hari:=(yy1-yy2)*365+(mm1-mm2)*30+(dd1-dd2);
Umur_Tahun:=Total_Hari div 365;
Umur_Bulan:=(Total_Hari mod 365) div 30;
Umur_Hari:=(Total_Hari mod 365) mod 30;
Writeln ('Umur Anda Sekarang adalah ',(Umur_Tahun),(' tahun,'),(Umur_Bulan),(' bulan,'),(Umur_Hari),(' hari.'));
End.