Senin, 25 April 2011

pentingnya algoritma pada kehidupan sehari-hari

Dewasa ini, komputer digunakan di hampir semua bidang kehidupan manusia, mulai dari pendidikan, bisnis, sampai dengan permainan. Berbicara tentang komputer tidak lepas dari pemrogaman komputer. Hal ini karena komputer pada dasarnya merupakan mesin yang tidak bisa apa-apa. Kita harus memberikan serangkaian instruksi kepada komputer agar mesin ‘pintar’ ini dapat memecahkan suatu masalah. Langkah-langkah yang perlu dilakukan dalam memberikan instruksi kepada komputer untuk memecahkan masalah inilah yang dinamakan pemrogaman komputer.
Adapun langkah-langkah pemrogaman komputer adalah sebagi berikut: mendefinisikan masalah, menentukan solusi, memilih algoritma, menulis program, menguji program, menulis dokumentasi, serta merawat program.
Sebelum membuat program, hendaknya kita membuat Flow Chart atau Pseudocode, sehingga memudahkan kita untuk memahami algoritma serta memudahkan kita dalam membuat program. Program yang ditulis juga harus jelas, nyata, dan komplit.

Pengertian Algoritma

Algoritma adalah suatu prosedur yang tepat untuk memecahkan masalah dengan menggunakan bantuan komputer serta menggunakan suatu bahasa pemrogaman tertentu seperti bahasa Pascal, Visual Basic, Java, dan masih banyak lagi bahasa yang lain.Pranata (2002:8) dalam kehidupan sehari-hari, sebenarnya kita juga menggunakan algoritma untuk melaksanakan sesuatu. Sebagai contoh, ketika kita menulis surat, maka kita perlu melakukan beberapa langkah sebagai berikut:

1. Mempersiapkan kertas dan amplop.
2. Mempersiapkan alat tulis, seperti pena atau pensil.
3. Mulai menulis.
4. Memasukkan kertas ke dalam amplop.
5. Pergi ke kantor pos untuk mengeposkan surat tersebut.
B. Fungsi Algoritma

Dengan algoritma, kita dapat mengatasi masalah dari yang sederhana sampai yang kompleks sekalipun. Namun, seorang user harus mampu membuat suatu program dengan menggunakan bahasa yang difahami oleh komputer. Sebelum disajikan dalam bentuk bahasa pemrogaman, sebaiknya kita membuat diagram alir (Flow Chart) dan Pseudocode. Hal ini dimaksudkan agar dapat mempermudah kerja atau mempermudah dalam membuat program. Selain itu, algoritma dapat mengatasi masalah logika dan masalah matematika dengan cara berurutan, tetapi kadang-kadang algoritma tidak selalu berurutan, hal ini dikenal dengan proses percabangan

Kata Logis merupakan kata kunci dalam Algoritma. Langkah-langkah dalam Algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar.

Melaksanakan Algoritma berarti mengerjakan langkah-langkah di dalam Algoritma
tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya.
Juru masak membuat kue berdasarkan resep yang diberikan kepadanya, pianis memainkan lagu berdasarkan papan not balok. Karena itu suatu Algoritma harus dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses. Jadi suatu pemroses harus :
1. Mengerti setiap langkah dalam Algoritma
2. Mengerjakan operasi yang bersesuaian dengan langkah tersebut.

Referensi :
http://rudystrong.wordpress.com/2010/03/04/algoritma-dalam-kehidupan-sehari/
http://www.indogamers.com/showthread.php?t=199791&page=1

Jumat, 22 April 2011

Rekursi

Rekursi adalah konsep pengulangan yang penting dalam ilmu komputer. Konsep
ini dapat digunakan untuk merumuskan solusi sederhana dalam sebuah permasalahan
yang sulit untuk diselesaikan secara iteratif dengan menggunakan loop for, while do.
Pada saat tertentu konsep ini dapat digunakan untuk mendefinisikan permasalahan
dengan konsisten dan sederhana. Pada saat yang lain, rekursi dapat membantu untuk
mengekspresikan algoritma dalam sebuah rumusan yang menjadikan tampilan algoritma
tersebut mudah untuk dianalisa.

Rekursi Dasar
Rekursi mempunyai arti suatu proses yang bias memanggil dirinya sendiri. Dalam
sebuah rekursi sebenarnya tekandung pengertian sebuah prosedur atau fungsi.
Perbedaannya adalah bahwa rekursi bisa memanggil dirinya sendiri, kalau prosedur atau
fungsi harus diipanggil melalui pemanggil prosedur atau fungsi.
Untuk memulai bahasan rekursi, kita membahas sebuah masalah sederhana yang
kemungkinan kita tidak berpikir untuk menyelesaikan dengan cara rekursif. Yaitu
permasalahan faktorial, yang mana kita menghitung hasil faktorial dari sebuah bilangan,
yaitu n. Faktorial dari n (ditulis n!), adalah hasil kali dari bilangan tersebut dengan
bilangan di bawahnya, di bawahnya hingga bilangan 1. Sebagai contoh, 4! = (4)(3)(2)(1).
Salah satu cara untuk menghitung adalah dengan menggunakan loop, yang mengalikan
masing-masing bilangan dengan hasil sebelumnya. Penyelesaian dengan cara ini
dinamakan iteratif, yang mana secara umum dapat didefinisikan sebagai berikut:
39
n! = (n)(n-1)(n-2) … (1)
Cara lain untuk menyelesaikan permasalahan di atas adalah dengan cara rekursi, dimana
n! adalah hasil kali dari n dengan (n-1)!. Untuk menyelesaikan (n-1)! adalah sama
dengan n!, sehingga (n-1)! adalah n-1dikalikan dengan (n-2)!, dan (n-2)! adalah n-2
dikalikan dengan (n-3)! dan seterusnya sampai dengan n = 1, kita menghentikan
penghitungan n! Cara rekursif untuk permasalahan ini, secara umum dapat kita detailkan
sebagai berikut:
1 jika n=0, n=1
F(n) =
nF(n-1) jika n>1
Pada Gambar 5.1 dibawah ini digambarkan penghitungan 4! dengan menerapkan
konsep rekursi. Dalam gambar tersebut juga digambarkan dua fase dasar dari sebuah
proses rekursi: fase awal dan fase balik. Dalam fase awal, masing-masing proses
memanggil dirinya sendiri. Fase awal ini berhenti ketika pemanggilan telah mencapai
kondisi terminal. Sebuah kondisi teminate adalah kondisi dimana sebuah fungsi rekursi
kembali dari pemanggilan, artinya fungsi tersebut sudah tidak memanggil dirinya sendiri
dan kembali pada sebuah nilai. Sebagai contoh, dalam penghitungan faktorial dari n,
kondisi terminal adalah n = 1, n = 0. Untuk setiap fungsi rekursi, minimal harus ada satu
kondisi terminal. Setelah fase awal selesai, kemudian proses melanjutkan pada fase balik,
dimana fungsi sebelumnya akan dikunjungi lagi dalam fase balik ini. Fase ini berlanjut
sampai pemanggilan awal, hingga secara lengkap proses telah berjalan.
Gambar 5.1 Proses Komputasi Secara Rekursif dari 4!
F(4)=4x F(3) fase awal
F(3)=3x F(2) .
F(2)=2x F(1) .
F(1)=1 kondisi terminal
F(2)=(2)x(1) fase balik
F(3)=(3)x(2) .
F(4)=(4)x (6) .
24 rekursi lengkap
40
Dalam Program 5.1 ditampilkan sebuah fungsi dalam C, fact_rec, dengan
parameter sebuah bilangan n dan menghitung faktorial secara rekursi. Fungsi tersebut
bekerja sebagai berikut. Jika n kurang dari 0, maka fungsi kembali ke 0, menunjukkan
kesalahan. Jika n = 0 atau 1, fungsi kembali ke 1 karena 0! dan 1! hasilnya 1. Dan ini
adalah kondisi terminal. Selainnya itu, fungsi kembali dengan hasil n kali factorial dari n-1.
Faktorial dari n-1 adalah penghitungan kembali secara rekursif dengan memanggil fact
lagi. Perhatikan persamaan dari definisi rekursi dengan implementasi di bawah ini.
int fact_rec(int n)
{
/************************************************************
* Menghitung sebuah faktorial secara rekursif *
************************************************************/
if (n < 0)
return 0;
else if (n == 0)
return 1;
else if (n == 1)
return 1;
else
return n * fact(n-1);
}
Referensi : lecturer.eepis-its.edu/.../Data%20Structure%20-%20Bab%205.pdf

Subrutin

PROSEDURDANFUNGSI
Berikut ini adalah sintak penulisan prosedur secara umum:

Procedurnama_prosedur(parameter1;parameter2;…)
Begin
(pernyataan-pernyataan)
End.
Berikutiniadalahsintakpenulisanfungsisecaraumum:
function nama_fungsi(perameter1;parameter2;….).
tipe_kembalian
begin
(pernyataan-pernyataan)
end;
Nama procedure dan Nama_fungsi merupakan nama yang anda berikan ke prosedur atau fungsi.
Tipe kembalian adalah tipe data dari nilai yang dikembalikan oleh fungsi.
Parameter1,parameter2…… adalah merupakan informasi yang diberikan ke prosedur atau fungsi.
Berikut adalah sebuah contoh prosedur dengan nama procedurku dan sebuah fungsi dengan nama fungsiku:
Procedure prosedurku;
Begin
(pernyataan-pernyataan);
End;
Fungction fungsiku : integer;
Begin
(pernyataan-pernyataan);
End;
Kedua subrutin diatas belum memiliki paramter CONTOHSUBRUTINYANGMEMILIKIPARAMETER
Perhatikandalammemberikanparameter, andaharusmenentukantipeparameter :

procedurcoba(b : string);
begin
(pernyataan-pernyataan);
end;
Berikutadalahcontohprosedurdanfungsidenganbeberpaparameter, masing-masingperameterdipisahkandengantandatitikkoma(;)

procedure cobalagi(b:string ; x:string );
begin
(pernyataan-pernyataan)
end;
Untuk beberapa parameter dengan tipe yang sama, anda cukup menuliskan tipe satu kali, tetapi masing-masing parameter dipisahkan dengan tanda (,) contoh ;
function lagilagicoba (I,j : longint); longint;
begin
(pernyataan-pernyataan)

Referensi : teguh-cahyono.blog.unsoed.ac.id/files/2010/04/BAB-VII-subritun.pdf

pengulangan

MATERI 4

Pengulangan

Digunakan untuk mengulang suatu perintah sebanyak yang diinginkan tanpa harus menulis ulang. Bahasa PHP mengenal tiga jenis perintah pengulangan, yaitu:

1. for

Digunakan untuk mengulangi perintah dengan jumlah pengulangan yang sudah diketahui. Pada perintah ini tidak perlu menuliskan suatu kondisi untuk diuji. Kita hanya perlu menuliskan nilai awal dan akhir variabel penghitung. Nilai variabel

penghitung akan secara otomatis bertambah atau berkurang tiap kali sebuah pengulangan dilaksanakan. Sintaks penulisannya sebagai berikut :

for (nilai_awal; nilai_akhir; penambahan/penurunan)

{

pernyataan yang akan dijalankan

}

contoh struktur pengulangan dengan for

struktur pengulangan dengan for

for($i=3; $i<= 7; $i++)

{

print(" Indonesia Tanah Airku
");

}

?>

2. while

Perintah ini digunakan untuk mengulangi suatu perintah sampai jumlah tertentu. Pengulangan akan terus berjalan selama kondisi masih bernilai benar. Sintaks penulisannya sebagai berikut :

while (kondisi)

{

pernyataan yang akan dijalankan

}

contoh struktur pengulangan dengan while

struktur pengulangan dengan while

$i=1;

while ($i <= 5) {

print("$i
");

$i++;

}

?>

3. Pernyataan for bersarang

Kita juga bisa menuliskan pernyataan for di dalam
penyataan for. Kontruksi semacam ini sering disebut
dengan penyataan for bersarang. Perhatikan contoh
berikut:
for x := 1 to 3 do
for y :=1 to 2 do
writeln (x, ‘ ‘ y);
Kalang for yang luar (dengan pencacah variabel x)
akan menjalankan kalang yang dalam (dengan pencacah
10 9 8 7 6 5 4 3 2 1
Modul Pemrograman Komputer Dasar, Universitas Muhammadiyah Yogyakarta, 2006 44
y) sebanyak 3 kali. Dan pada setiap pengulangan di
layar akan dituliskan nilai x dan y. Berikut ini
adalah keluaran dari program di atas:
1 1
1 2
2 1
2 2
3 1
3 2
Pada saat x bernilai 1, y diulang sebanyak 2 kali.
Jadi pada layar akan tertulis 1 1 dan 1 2. Demikian
juga pada saat x bernilai 2, y diulang sebanyak 2
kali. Jadi pada layar akan tertulis 2 1 dan 2 2. Hal
yang sama terjadi pada saat x bernilai 3, y diulang
sebanyak 2 kali. Sehingga pada layar tertulis 3 1
dan 3 2.

4. Pernyataan repeat-until

Pernyataan repeat...until hampir sama dengan pernyataan while...do, tetapi dengan pernyataan repeat, akan terjadi paling tidak akan terjadi satu kali eksekusi statemen. Logika dari struktur ini adalah seperti berikut:

Sedangkan sintax-nya adalah sebagai berikut:

repeat
:
:
perintah;
:
:
until ;

dalam hal ini, kita tidak perlu menggunakan begin...end karena pernyataan di antara repeat...until diperlakukan oleh PASCAL sebagai sebuah blok.
contoh:

program REPEAT_UNTIL_DEMO ;
uses wincrt;
const

PI = 3.14;
var

XL, Frequency, Inductance : real ;
begin

Inductance := 1.0;
Frequency := 100.00;
Repeat
XL := 2 * PI * Frequency * Inductance;
writeln('XL at ',Frequency,' hertz = ', XL );
Frequency := Frequency + 100.00 ;
until Frequency = 1000.00 ;

end.

Referensi :

http://amiroh.web.id/Tutorial/Pascal/repeat%20until.htm

http://latifrudianto.blogspot.com/2010/10/b-pernyataan-for-bersarang.html

percabangan

MATERI 4

Struktur Percabangan

Percabangan (decision control / branching) adalah suatu kontrol untuk pengecekan yang dilakukan sebelum statemen-statemen dalam sebuah blok PL/SQL dieksekusi. Statemen-statemen tersebut hanya akan dilakukan apabilakondisi yang didefinikan terpenuhi (bernilai TRUE). Dan sebaliknya, statemen-statemen tersebut tidak akan dieksekusi apabila kondisi tidak terpenuhi(bernilai FALSE).Selain definisi di atas, percabangan juga bisa dikatakan sebagai pemilihan: blok PL/SQL akan memilih statemen-statemen yang akan dieksekusiberdasarkan kondisi yang terpenuhi.

Secara garis besar, terdapat dua cara untuk melakukan percabangan,yaitu dengan menggunakan statemen IF dan statemen CASE.

Pernyataan if …else

Struktur percabangan jenis ini sedikit lebih kompleks bila dibandingkan dengan struktur yang hanya memiliki satu buah kondisi.

Contoh strukturnya :

if (kondisi)

{statemen_jika_kondisi_terpenuhi;}

else

{statemen_jika_kondisi_tidak_terpenuhi;}

Pernyataan if …else if

Percabangan jenis ini merupakan perluasan dari struktur percabangan dengan satu dan dua kondisi.

Contoh strukturnya :

if (kondisi_1)

{statemen_jika_kondisi_1_terpenuhi;}

else if (kondisi_2)

{statemen_jika_kondisi_2_terpenuhi;}

else

{statemen_jika_semua_kondisi_diatas_tdk_terpenuhi;}

Pernyataan case

Alternatif dari pernyataan IF untuk masalah dengan pilihan ganda

Semua masalah yang bisa CASE pasti bisa ditangani oleh IF, tetapi tidak sebaliknya

Bentuk:

SELECT CASE

CASE

[CASE

[CASE ELSE]

END SELECT


tri_s.staff.gunadarma.ac.id/Downloads/.../4.+Teknik+percabangan.pdf

elearning.amikom.ac.id/.../20110328_Part%204%20(Selection%20%20Percabangan).ppt