Kamis, 11 Maret 2010

Konsep Dasar Algoritma

Konsep Dasar Algoritma
• Pengantar
• Definisi Algoritma
• Notasi Algoritma
• Aturan Penulisan Algoritma
• Tipe, nama dan nilai
• Urutan / runtunan
• Perulangan
• Fungsi
• Larik
Pengantar
Semua sepakat bahwa komputer merupakan alat bantu untuk menyelesaikan masalah. Agar komputer dapat menyelesaikan masalah maka perlu dirumuskan terlebih dahulu langkah-langkah dalam suatu rangkaian instruksi. Sekumpulan instruksi yang merupakan penyelesaian masalah dinamakan "Program".
Agar komputer dapat menjalankan program, maka harus ditulis dalam bahasa yang dapat dimengerti oleh komputer. Karena komputer adalah sebuah mesin maka program harus ditulis dalam bahasa yang khusus dibuat untuk berkomunikasi dengan komputer. Bahasa komputer yang digunakan dalam menulis program dinamakan bahasa pemrograman. Salah satu contoh bahasa pemrograman adalah Bahasa C.
Dalam menyelesaikan masalah dengan bantuan komputer, langkah pertama yang dilakukan adalah dengan membuat desain (rancangan). Desain menyajikan cara berfikir pemrogram dalam menyelesaikan masalah. Desain ini berisi urutan langkah-langkah pencapaian solusi yang ditulis dalam notasi-notasi deskriptif. Urutan langkah-langkah yang sistematis untuk menyelesaikan masalah dinamakan ALGORITMA.










Definisi Algoritma
ALGORITMA : urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis.
Algoritma menurut Kamus Besar Bahasa Indonesia adalah Urutan logis pengambilan keputusan untuk pemecahan masalah .
Contoh Algoritma dalam kehidupan sehari-hari :
Proses Algoritma Langkah dalam Algoritma
Membuat Kue Resep Kue ambil 3buah telur, ambil kuning telur dan kocok
Membuat baju Pola Baju Potong kain sesuai pola
Isi Voucher HP Panduan tekan nomor 555

Notasi Algoritma
Notasi algoritma bukan notasi bahasa pemrograman,sehingga siapapun dapat membuat notasi algoritma yang berbeda.Hal yang penting mengenai notasi tersebut adalah mudah dibaca dan dimengerti.Meskipun notasi algoritma bukan notasi baku namun kepatuhan terhadap notasi perlu diperhatikan untuk menghindari kekeliruan.
Beberapa notasi dalam penulisan algoritma :
1.Notasi I : menyatakan langkah-langkah algoritma dengan untaian kalimat deskriptif.
Dengan notasi bergaya kalimat deskriptif, deskripsi setiap langkah dapat dijelaskan dengan bahasa yang gamblang.Misalnya, proses diawali dengan kata kerja seperti 'baca', 'hitung' , 'ganti' dan sebagainya.Sedangkan pernyataan kondisional dinyatakan dengan 'jika....' , 'maka....'.
Notasi ini bagus untuk algoritma yang pendek ,namun untuk masalah yang besar notasi ini tidak mungkin dipakai.Selain itu,konversi dari notasi algoritma ke bahasa pemrograman cendrung relatif sukar.
2.Notasi II: menggunakan diagram alir(flow-chart).
Diagram alir populer pada awal-awal era pemrograman dengan komputer.Diagram alir lebih menggambarkan aliran instruksi didalam program secara visual ketimbang memperlihatkan struktur program.Notasi algoritma ini juga cocok untuk masalah kecil, tidak cocok untuk masalah besar karena akan memerlukan berlembar halaman kertas untuk menggambarkan aliran proses program.
3. Notasi III: menggunakan pseudo-code
Pseudocode (pseudo artinya semu atau tidak sebenarnya) adalah notasi yang menyerupai notasi bahasa pemrograman tingkat tinggi seperti bahasa C.Hasil pengamatan memperlihatkan bahwa bahasa pemrograman umumnya mempunyai notasi yang hampir mirip untuk beberapa instruksi, seperti notasi if-then-else, while-do,repeat-until,read, write dan sebagainya. Berdasarkan pengamatan tersebut, maka didefinisikan bahwa notasi algoritma yang dapat menjelaskan perintahnya dengan bahasa yang jelas tanpa membingungkan pembaca bisa disebut dengan notasi algoritma menggunakan pseudo-code. Tidak seperti bahasa program yang direpotkan dengan tanda titik koma dan sebagainya, kata-kata khusus,indeks,format, dan lainnya, maka dengan pseudo-code ini akan lebih memudahkan dan menguntungkan. Keuntungan penggunaan notasi pseudo-code ini adalah kemudahan mengkonversinya kebahasa pemrograman, karena terdapat korespondensi antara setiap pseudo-code dengan notasi bahasa program.Korespondensi ini dapat diwujudkan dengan tabel translasi dari notasi algoritma ke notasi bahasa program


Aturan Penulisan Algoritma
Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah.Deskripsi tersebut dapat ditulis alam bentuk notasi apapun , asalkan mudah dibaca dan dimengerti. Tidak ada notasi yang baku dalam penulisan teks algoritma. Tiap orang dapat membuat aturan penulisan dan algoritma sendiri.Namun, agar notasi algoritma dapat dengan mudah ditranslasi ke alam notasi bahasa pemrograman, maka sebaiknya notasi algoritma itu berkoresponden dengan notasi bahasa pemrograman secara umum.
Contoh perintah :Tulis nilai x dan y
Dalam notasi algoritma menjadi : write (x,y)
Dalam Bahasa Turbo C ditulis : printf("%d %d",x,y);

Kembali Ke Atas

Tipe, Nama, dan Nilai
Tipe
Pada umumnya program komputer bekerja dengan memanipulasi objek (data) di dalam memori. Objek yang akan diprogram bermacam-macam tipenya, misalnya tipe numerik,karakter,string, dan record(rekaman).
Tipe data dapat dikelompokan menjadi 2, yaitu: tipe dasar dan tipe bentukan. Tipe dasar adalah tipe yang langsung dapat dipakai, sedangkan tipe bentukan dibentuk dari tipe dasar atau dari tipe bentukan lain yang sudah didefinisikan.
Suatu tipe diacu dari namanya.Nilai-nilai yang dicakup oleh tipe tersebut dinyatakan didalam ranah (domain)nilai. Operasi-operasi (beserta operator) yang dapat dilakukan terhadap tipe tersebut juga didefinisikan. Dengan kata lain suatu tipe dinyatakan dengan namanya,ranah nilai yang dikandungnya,cara menuliskan konstantanya, dan operasi yang dapat dilakukan padanya.
Tipe Dasar
Dalam bahasa pemrograman yang termasuk tipe dasar adalah :
1. bilangan logika
2. bilangan bulat
3. karakter atau string
4. bilangan riil
Tipe Bentukan
Tipe bentukan adalah tipe yang didefinisikan sendiri oleh pemrogram (user define). Tipe bentukan disusun oleh satu atau lebih tipe dasar. Ada dua macam tipe bentukan yaitu:
1.Tipe dasar yang diberi nama dengan nama tipe baru contoh : tipe BilanganBulat : integer
Variabel BilanganBulat adalah tipe bilangan bulat yang sama saja dengan tipe integer. Misalkan kita mempunyai sebuah variabel yang bernama X dan bertipe BilanganBulat, maka artinya variabel X tersebut juga bertipe integer.
2.Rekaman (rekord).
Rekaman disusun oleh satu atau lebih field.Tiap field menyimpan data dari tipe dasar tertentu atau dari tipe bentukan lain yang sudah dideinisikan sebellumnya.Nama record itentukan oleh pemrogram. Karena stukturnya yang diusun atas field-field, maka rekaman inamakan juga tipe terstruktur(stuctured type).
Nama
Setiap objek dialam mempunyai nama.Nama diberikan agar objek tersebut mudah diidentifikasi, diacu, dan dibedakan dari objek lainya.Di dalam algoritma nama dipakai sebagai pengidentifikasi "sesuatu" dan pemrogram mengacu "sesuatu" itu melalui namanya. Karena itu tiap nama haruslah unik, tidak boleh ada dua buah nama yang sama.
Di dalam algoritma "sesuatu" yang diberi nama dapat berupa :
1.Variabel
2.Konstanta
3.Tipe Bentukan
4.Nama Fungsi
5.Nama Prosedur
Suatu hal yang penting untuk diperhatikan adalah, nama sebaiknya interpretatif, yaitu mencerminkan nilai intrinsik atau fungsi yang dikandungnya.Pemrogram sangat dianjurkan untuk memberikan penjelasan terhadap nama yang didefinisikan.
Semua nama yang digunakan dalam algoritma harus didefinisikan atau dideklarasikan dibagian deklarasi .Bagian deklarasi dipakai sebagai tempat mengacu suatu kata untuk diketahui makna atau terjemahannya.Tempat untuk menjelaskan nama dan tipe dari nama tersebut.
Nilai
Nilai adalah besaran dari tipe data yang sudah didefinisikan.Nilai dapat berupa isi yang disimpan oleh nama variabel atau nama konstanta,nilai dari hasil perhitungan, atau nilai yang dikirim oleh fungsi.Algoritma pada hakikatnya adalah memanipulasi nilai yang disimpan didalam elemen memori. Nilai yang dikandung oleh variabel dimanipulasi antara lain dengan cara : mengisikannya ke variabel lain yang bertipe sama, dipakai untuk perhitungan, atau dituliskan ke piranti keluaran.
Contoh algorima : mencetak stirng "Halo, apa kabar?" ke piranti keluaran.
Versi 1. String "Halo, apa kabar?" langsung dicetak tanpa menggunakan variabel.
Algoritma :
Deklarasi
(tidak ada)
Deskripsi
write ("Halo,apa kabar?")
Versi 2.String "Halo,apa kabar?" disimpan di dalam sebuah variabel bertipe string.
Algoritma :
Deklarasi
ucapan : string
Deskripsi
ucapan <------ 'Halo,apa kabar?'
write (ucapan)
Versi 3.String "Halo,apa kabar?" disimpan sebagai konstanta
Algoritma:
Deklarasi
const ucapan = 'Halo,apa kabar?'
Deskripsi
write (ucapan)

Keluaran yang dihasilkan oleh algoritma versi 1, 2, dan 3 adalah :
Halo, apa kabar?
URUTAN / RUNTUNAN
Algoritma merupakan runtunan(sequence) satu atau lebih instruksi,yang berarti bahwa :
1. Tiap instruksi dikerjakan satu persatu.
2. Tiap instruksi dilaksanakan tepat sekali, tidak ada instruksi yang diulang.
3. Urutan instruksi yang dilaksanakan pemroses sama dengan urutan instruksi yang tertulis di algoritma.
4. Akhir instruksi merupakan akhir dari algoritma.
Urutan instruksi didalam algoritma sangat penting.Urutan instruksi menunjukan urutan logika penyelesaian masalah.
PENGULANGAN
Salah satu kelebihan komputer dibandingkan manusia adalah kemampuannya untuk melaksanakan suatu instruksi berulangkali tanpa mengenal lelah dan bosan.Pengulangan prose atau kalang(repetition atau loop) dapat dilakukan ejumlah kali atau sampai suatu kondisi tercapai.
Struktur Pengulangan
Secara umum terdiri atas 2 bagian:
1. Kondisi pengulangan, yaitu ekspresi boolean yang harus dipenuhi untuk melaksanakan pengulangan.Kondisi ini ada yang secara eksplisit oleh pemrogram atau dikelola seniri oleh komputer (implisit).
2. Badan pengulangan, yaitu bagian algoritma yang diulang.
Struktur pengulangan biasanya disertai dengan bagian:
1. Inisialisasi, yaitu aksi yang dilakukan sebelum pengulangan dilakukan pertama kali.
2. Terminasi, yaitu aksi yang dilakukan setelah pengulangan selesai dilaksanakan.
Inisialisasi dan terminasi tidak selalu harus ada(optional), namun pada berbagai kasus inisialisasi umumnya diperlukan.
Struktur pengulangan secara umum :

awal pengulangan
badan pengulangan
akhir pengulangan

Di dalam algoritma terdapat beberapa macam struktur pengulangan yang berbeda.Beberapa struktur dapat dipakai untuk masalah yang sama,namun ada notasi pengulangan yang hanya cocok untuk masalah tertentu saja.Pemilihan struktur pengulangan yang tepat bergantung pada masalah yang akan diprogram.Banyak sekali notasi struktur pengulangan, seperti :
1.Struktur For
Struktur For dipakai untuk menghasilkan pengulangan sebanyak n kali yang sudah dispesifikasikan.Jumlah pengulangan diketahui atau dapat dipastikan sebelum eksekusi program.Bentuk umumnya ada 2 macam
a.Menaik (ascending)
for pencacah <------------- nilai_awal to nilai_akhir do
aksi
endfor
b.Menurun(descending)
for pencacah <-------------nilai_akhir downto nilai_awal do
aksi
endfor

2. Struktur While
Bentuk umum struktur While adalah :
while kondisi do
aksi
endwhile
Aksi (runtunan aksi) akan dilaksanakan berulangkali selama konii bernilai true.Jika kondisi bernilai false maka pengulangan akan selesai.Agar kondisi yang mula-mula bernilai true menjadi bernilai false maka harus ada suatu nilai pengubah kondisi.
3. Struktur Repeat
Bentuk umum struktur Repeat adalah :
repeat
aksi
until kondisi
Pengulangan ini mendasarkan pada kondisi boolean.Aksi didalam badan kalang diulang sampai konisi boolean bernilai true.Jika masih false maka pengulangan akan terus berlangsung untuk itu diperlukan atau aksi yang mengubah nilai pengubah kondisi. Struktur repeat memiliki makna yang sama dengan while, dan dalam beberapa masalah kedua struktur tersebut komplemen satu sama lain.
Yang harus diperhatikan adalah bahwa pengulangan harus berhenti. Pengulangan yang tidak pernah berhenti menunjukan algoritma yang salah.

FUNGSI
Apakah fungsi itu?
Fungsi adalah modul program yang memberikan/mengembalikan (return) sebuah nilai dari tipe tertentu. Fungsi diakses dengan memanggil namanya, nama fungsi harus unik.Fungsi dapat mengandung daftar parameter formal.Parameter pada fungsi selalu merupakan parameter masukan.Jenis parameter masukan pada fungsi merupakan masukan yang digunakan oleh fungsi tersebut untuk menghasilkan nilai.
Struktur fungsi sama dengan struktur algoritma
- bagian header yang berisi nama fungsi dan spesifikasi fungsi,
- bagian deklarasi
- badan fungsi
Notasi algoritma untuk mendefinisikan fungsi adalah:
function NamaFungsi(input daftar parameter formal)-----> tipe hasil
{ spesifikasi fungsi, menjelaskan apa yang dilakukan dan yang dikembalikan fungsi }
Deklarasi
{ semua nama yang dipakai dialam algoritma fungsi dideklarasikan disini.Nama yang didefinisikan di dalam deklarasi lokal hanya dikenal dan dipakai di dalam fungsi ini saja }
Deskripsi:
{ badan fungsi, berisi instruksi-instruksi untuk menghasilkan nilai yang akan dikembalikan oleh fungsi }
return hasil ( pengembalian nilai yang dihasilkan fungsi }

LARIK
Apakah Larik?
Larik adalah struktur data yang menyimpan sekumpulan elemen yang bertipe sama. setpa elemen diakses langsung melalui indeksnya.
Mendefinisikan Larik
Larik adalah struktur data yang statik, artinya, jumlah elemen larik harus sudah diketahui sebelum program dijalankan. Mendefinisikan banyaknya elemen larik berarti memesan sejumlah tempat di memori.
Contoh deklarasi larik:
Deklarasi
L : array[1..50] of integer
nama : array['a'..'j'] of string

Tidak ada komentar: