modul algoritma

18
Pengertian ALGORITMA ALGORITMA adalah urutan langkah-langkah logis penyelesaian masalahyang disusun secara sistematis dan logis. Perangko dari Rusia pada Gambar 5.1. di samping ini bergambar seorang pria dengan nama Muhammad ibn MźsŅ al-KhwŅrizmŝ. Bagi kalian yang sedang berkecimpung dalam dunia komputer maka seharusnya mengetahui siapa orang di samping ini. Dia adalah seorang ilmuwan Islam yang karya- karyanya dalam bidang matematika, astronomi, astrologi dan geografi banyak menjadi dasar perkembangan ilmu modern. Dan dari namanya istilah yang akan kita pelajari dalam bab ini muncul. Dari Al-Khawarizmi kemudian berubah menjadi algorithm dalam Bahasa Inggris dan diterjemahkan menjadi algoritma dalam Bahasa Indonesia. Standar kompetensi algoritma pemrograman dasar terdiri atas empat kompetensi dasar. Dalam penyajian pada buku ini, setiap kompetensi dasar memuat uraian materi, dan latihan. Ringkasan diletakkan pada setiap akhir bab. Kompetensi dasar pada bab ini adalah menjelaskan variabel, konstanta dan tipe data, membuat algoritma/logika alur pemrograman, menerapkan pengelolaan array, dan mengoperasikan file. Sebelum mempelajari kompetensi ini ingatlah kembali sistem operasi, prinsip pemecahan masalah, dan materi-materi pendukung dari mata pelajaran matematika. Pada akhir bab, tercantum soal-soal latihan yang disusun dari soal-soal yang mudah hingga soal-soal yang sulit. Latihan soal ini digunakan untuk mengukur kemampuan terhadap kompetensi dasar ini. Artinya setelah mempelajari kompetensi dasar ini secara mandiri dengan bimbingan guru

Upload: budi-slankissme

Post on 28-Oct-2015

302 views

Category:

Documents


8 download

DESCRIPTION

ALGORITMA

TRANSCRIPT

Page 1: MODUL ALGORITMA

Pengertian ALGORITMA

ALGORITMA adalah urutan langkah-langkah logis

penyelesaian masalahyang disusun secara sistematis

dan logis. Perangko dari Rusia pada Gambar 5.1. di

samping ini bergambar seorang pria dengan nama

Muhammad ibn MźsŅ al-KhwŅrizmŝ. Bagi kalian

yang sedang berkecimpung dalam dunia komputer

maka seharusnya mengetahui siapa orang di samping

ini. Dia adalah seorang ilmuwan Islam yang karya-

karyanya dalam bidang matematika, astronomi,

astrologi dan geografi banyak menjadi dasar

perkembangan ilmu modern. Dan dari namanya

istilah yang akan kita pelajari dalam bab ini muncul.

Dari Al-Khawarizmi kemudian berubah menjadi

algorithm dalam Bahasa Inggris dan diterjemahkan

menjadi algoritma dalam Bahasa Indonesia. Standar

kompetensi algoritma pemrograman dasar terdiri atas empat kompetensi

dasar. Dalam penyajian pada buku ini, setiap kompetensi dasar memuat

uraian materi, dan latihan. Ringkasan diletakkan pada setiap akhir bab.

Kompetensi dasar pada bab ini adalah menjelaskan variabel, konstanta dan

tipe data, membuat algoritma/logika alur pemrograman, menerapkan

pengelolaan array, dan mengoperasikan file. Sebelum mempelajari

kompetensi ini ingatlah kembali sistem operasi, prinsip pemecahan

masalah, dan materi-materi pendukung dari mata pelajaran matematika.

Pada akhir bab, tercantum soal-soal latihan yang disusun dari soal-soal

yang mudah hingga soal-soal yang sulit. Latihan soal ini digunakan untuk

mengukur kemampuan terhadap kompetensi dasar ini. Artinya setelah

mempelajari kompetensi dasar ini secara mandiri dengan bimbingan guru

Page 2: MODUL ALGORITMA

sebagai fasilitator, ukurlah sendiri kemampuan dengan mengerjakan soal-

soal latihan tersebut

Variabel, Tipe Data, Operator

Variabel

Variabel (perubah) meerupakan suatu nama yang

menyiratkan lokasi memeori komputer yang dapat

digunakan untuk menyimpan nilai, dimana isinya dapat

diubah-ubah. Variabel dapat dipandang sebagai abstraksi

dari lokasi. Hasil evaluasi dari vaiabel adalah nilai dari

variabel itu. Nilai dari suatu variabel dapat diubah dengan

assignment statement terdari dari sebuah variabel di

sebelah kirinya dan suatu ekspresi.

ALGORITMIK BAHASA PASCAL BAHASA C

Deskripsi

jumlah b1+b2

Jumlah := b1+b2 Jumlah := b1+b2

Varibel jumlah diubah menjadi nilai dari ekspresi b1+b2

setelah dievaluasi. Dalam suatu program pascal maupun C,

setiap variabel harus mempunyai tipe. Deklarasi variabel

berguna untuk memberi informasi kepada kompiler serta

membantu programer untuk berpikir secara jelas dan

berencana.

ALGORITMIK BAHASA PASCAL BAHASA C

Deskripsi

b1, b2

Var

b1, b2,

int b1,b2,jumlah;

Page 3: MODUL ALGORITMA

jumlah:integer

Aturan penamaan suatu variabel

a) Pada bahasa pascal penulisan dengan huruf besar dan

kecil tidak dibedakan, sedangkan pada bahasa C

dibedakan (case sensitive).

b) Beleh terdiri dari angka dengan syarat penulisannya

setelah huruf, misal :

Umur31

Speda3

c) Tidak boleh mengandung spasi, terdiri dari

underscore(_), misal :

Suhu_ruang (boleh)

Suhuruang (tidak boleh)

SuhuRuang (boleh)

d) Tidak boleh ada 2 atau lebih nama yang sama.

e) Tidak boleh mengandung resiverd word (kata kunci)

misal :

- Dalam pascal : program,end,begin, var, dll

- Dalam C : #Include, void, dll

TIPE DATA

Pada waktu suatu variabel dideklarasikan, maka tipenya

sekaligus ditentukan. Tipe dari suatu variabel menyatakan :

a) Jinis nilai yang dapat disimpan dalam lokasi memori

untuk variabel tersebut , (membatasi himpunan nilai-

nilai yang dapat dipunyai variabel tersebut).

b) Jenis operasi yang dapat dilakukan terhadap variabel

bersangkutan.

Page 4: MODUL ALGORITMA

1) Tipe data dasar

a) Tipedata bilangan bulat

Nama tipe : integer

Range nilai : -32.768 sd 32.767

Operator binary :

- +,-,* : integer x integer = integer

- / : integer x integer = real

- Mod, div : integer x integer = integer

Keterangan :

- Mod adalah sisa hasil bagi dari dua bilangan yang

bertipe interger.

- Div adalah hasil bagi dari dua bilangan yang bertipe.

Contoh :

15 div 3 = 5

15 mod 3 = 0

45 div 4 = 11

45 mod 4 = 1

Operato unary :

Interger interger

b) Tipe data real

Nama tipe : real

Range nilai : 2.9x10-39 s/d 1.7x1038

-7.7x1038 s/d -2.9x10-39

Operator : +,-,*/ : real x real

: real x interger real

: interger x real real

c) Tipe data karakter

Page 5: MODUL ALGORITMA

Nama tipe : char

Range nilai : 1 symbol/karakter dalam tanda petik

d) Tipe data boolean

Nama tipe : string

Range nilai : rangkain dalam tanda petik.

Contoh : ‘suhu ruangan 550 C’

Operator : +: string x string string

Contoh : ‘saya’ + ‘pergi’ = saya pergi

e) Tipe data boolean

Nama tipe : boolean

Range nilai : true dan false

Operator

sebuah ekspresi matematika yang terdiri dari beberapa

operator, beberapa operator dievaluasi terlebih dahulu

dibandingkan operator yang lain. Sebuah operator

didahulukan berarti mempunyai prioritas lebih tinggi.

Urutan prioritas :

a) Operator aritmatika

b) Operator logika dan perbandingan

Contoh : 2 + 5 <= 5 + 7

7 <=12

True

Urutan Prioritas Operator aritmatika :

a) *, /

b) +, -

Page 6: MODUL ALGORITMA

Jika 2 operator mempunyai prioritas sama, maka yang paling

kiri didahulukan.

Contoh :

7 + 5 * 6 – 10 7 + 30 - 10 37 - 10 27

(4 + 5) / (2 - 1) 9 / 3 3

(ekspresi yang terletak dalam tanda kurung harus

didahulukan)

ARITMATIKA ARTI PASCAL C

+ Penjumlahan + +

- Pengurangan - -

Div Pembagian

interger

Div /

Modulo Sisa pembagian Modulo %

Dalam bahasa pascal dan bahasa C, pernyataan yang

berkaitan dengan operasi dasar adalah sebagai berikut :

PERNYATAAN ALGORITMIK PASCAL C

Input Read Read atau

Readln

Scanf

Output Write Write atau

Writeln

Printf

Page 7: MODUL ALGORITMA

Penugasan := =

Akhir

permyataan

; ;

Fungsi yang sering digunakan :

PASCAL C ARTI

Sqr Pow Kuadrat

Sqrt Sqrt Akar kuadrat

Ln Log Logaritma alammi

Exp Exp eksponensial

Pemilihan Dan Perulangan

PEMILIHAN

Salah satu kemampuan komputer adalah dapat melakukan

proses pemilihan dari beberapa alternatif sesua dengan

kondisi yang diberikan. Dalam persoalan sehari-haripun

selalu ada londisi diamana kita harus memilih diantara

alternetif-alternatif yang ada. Sebagai contoh, seseorang

siswa memperoleh nilai 75. Apakah dengan nilai tersebut

siswa itu lulus ? jika batas kelulusan minimal 60 maka siswa

tersebut lulus ujian. Jika kurang dari 60 maka siswa tersebut

tidak lulus ujian. Bahasa pemrograman seperti pascal

maupun C juga mendukung pernyataan bersyarat. Tata cara

penulisannya tersaji sebagai berikut :

Page 8: MODUL ALGORITMA

ALGORITMIK PASCAL C

If (kondisi) then

Aksi

End if

If (kondisi) then

Aksi;

If (kondisi) Aksi;

If (kondisi) then

Aksi1

Else

Aksi2

End if

If (kondisi) then

Aksi1

Else

Aksi2;

If (kondisi)

Aksi1;

Else

Aksi2;

Pernyataan

majemuk

Begin .........end {..........}

Baik aksi, aksi1, maupun aksi2 bisa merupakan pernbyataan

tunggal maupun pernyataan majemuk, selain itu, bila

kondisi bertipe oridinal, seperti : integer, byte, atau yang

lain (kecuali real

atau string), bisa digunakan pernyataan ini :

ALGORITMIK PASCAL C

Case (nama)

<label1>:aksi1;

<label1>:aksi2;

..........

case (nama) of

<label1>:aksi1;

<label1>:aksi2;

..........

Switch (nama) {

case label1:aksi1;

Break;

case label2:aksi2;

Break;

............

case labelN:aksiN;

Page 9: MODUL ALGORITMA

<label1>:aksiN;

Else : aksix;

Endcase

<label1>:aksiN;

Else : aksix;

End;

Break;

Default : aksix; }

PERULANGAN

Salah satu kelebihan komputer adalah kemampuannya

untuk melaksanakan suatu intruksi berulangkali tanpa

mengenal lelah dan bosan. Didalam algoritma, pengulngan

atau kalang (repitition atau loop) dapat dilakukan sejumlah

kali, atau sampai kondisi berhenti pengulangan tercapai.

a) Struktur pengulangan

Struktur pengulangan terdiri atas dua bagian :

- Kondisi pengulangan, yaitu ekspresi bolean yang

harus dipenuhi untuk melakukan pengulangan.

Kondisi ini ada yang dinyatakan seeacara eksplisit

oleh pemrograman atau dikelola sendiri oleh

komputer (implisit).

- Badan (body) pengulangan, yaitu satu atau lebih

aksi yang akan diulang.

b) Struktur while-do

Bentuk Struktur while-do adalah :

Penjelasan:

Aksi akan dijalankan berulangkali sepanjang <kondsi>

boolean masih tetap bernilai true. Jika <kondisi> bernilai

While <kondisi> do Aksi

endwhile

Page 10: MODUL ALGORITMA

false, badan penguklangan tidak akan dilaksanakan.

Pengulangan selesai.

c) Struktur repeat-until

Bentuk umum Struktur repeat-until adalah :

Penjelasan :

Notasi ini mendasarkan pengulangan pada kondisi

berhenti. Aksi didalam badan kalang diulang sampai kondis

berhenti boolean bernilai true. Dengan kata lain, jika

kondisi berhenti masih salah, pengulangan masih terus,

pengulangan masih dilakukan. Karena pengulangan hatus

berhenti, maka didalam badan kalang harus ada aksi yang

mengubah harga aksi.

d) Struktur for

Struktur for digunakan untuk menghasilkan pengulangan

sejumlah kali tanpa penggunaan kondisi apapun.

Struktur ini menyebabkan aksi diulang sejumlah kali

(tertentu). Bentuk umum struktur for ada 2 macam :

menaik (ascanding) atau menurun (descanding).

For menaik :

Keterangan :

Repeat Aksi

until <kondisi>

For peubah nilai_awal to nilai_akhir do Aksi

Endfor

Page 11: MODUL ALGORITMA

- Aksi akan dialkukan berulang-ulang selama peubah

diberi nilai dari nilai_awal s/d nilai_akhir dengan step1.

- Peubah : bertiupe integer / karakter.

- Nilai_awal, nilai akkhir : hasilnya bertipe sama oleh

peubah.

- Nilai_akhir >=nilai_awal, jika tidak maka aksi tidak akan

dilakukan.

- Aksi : suatu aksi atau beberapa aksi dalam blok begin –

end.

For menurun :

Keterangan :

- Nilai_akhir harus lebih besar atau sama dengan

nilai_akhir . jika nilai_akhir lebih kecil dari oada

nilai_awal, maka badan pengulangan tidak dimasuki.

- Pada awalnya, peubah diinisialisasi dengan nilai_akhir.

Nilai peubah sama dengan nilai_awal

- Peubah : bertipe integer atau karakter.

- Jumlah pengulangan yang terjadi adalah nilai_awal-

nilai_akhir +1

For peubah nilai_akhir to nilai_awal do Aksi

Endfor

Page 12: MODUL ALGORITMA

Study Kasus Mengguankan Algoritma

Clustering data kategorik menggunakan algoritma K-histogram (studi kasus:

data PPMB IPB)

Title: Clustering data kategorik menggunakan algoritma K-histogram

(studi kasus: data PPMB IPB)

Author: Mahda, Mutia

Abstract:

Perkembangan teknologi mengakibatkan meningkatnya data

dalam jumlah besar. Namun sering kali data yang tersin~pan

belum dimanfaatkan secara maksimal sehingga terjadi

penumpukan data. Kasus ini terjadi di Panitia Penerimaan

Mahasiswa Barn Institut Pertanian Bogor (PPMB WB). Penelitian

ini bertujuan untuk mengimplementasikan algoritma k-histogram

dalam clustering data kategorik, dan unruk mendapatkan

karakteristik data dari hasil clzrstering. Data yang digunakan

adaIah data kategorik pelamar tahun 2004 dengan pilihan pelrama

program sarjana di Fakultas Pertanian, IPB. Data tersebut meliputi

data asal pelamar, pilihan pertama pelamar, kategori sekolah

pelamar, dan keputusan, sebanyak 1899 baris dan 4field yditu:

Propinsi, Pilihanl, Putusanl, dan Kategori. Penentuan inisialisasi

nilai awal k-histogram dilakukan dengan memilih nilai k record

pertama. Proses ciusfering dilakukan untuk 2 sampai dengan 10

ukuran cluster , dengan batasan iterasi 50 kali untuk setiap ukuran

cluster. HasiI clustering dari algoritma k-histogram dievaluasi

menggunakan nilai cohesion dm distinctness dari setiap hasil

cluster. Penelitian menunjukkan bahwa hasil clustering yang

Page 13: MODUL ALGORITMA

terbaik berada pada ukuran cluster 10 dengan 1 kali iterasi, dengan

nilai cohesion 1.2455000 dan distinctness 0.0652344, dengan

penyebaran yang tidak merata di setiap ciusternya. tJntuk setiap

cluster, dilakukan pengamatan terhadap niiai cohesion yang

menunjukkan keberagaman objek di dalarn cltrster tersebut dan

distinctness yang menyatakan ketidakmiripan objek antar-cluster.

Nilai cohesion yang lebih keciI menunjukkan keberagamnya objek

di dalam cluster tersebut semakin besar. Semakin besar niIai

cohesion, keragaman, semakin besar nilainya, maka sernakin besar

ketidakmiripan (dissimilar) antar-cluster (intercluster). Kata

Icunci: Clustering, Data Kategorik, K-Histogram, Cohesion,

Distinctness

PEMODELAN TRADE-OFF PENGOPERASIAN WADUK KASKADE

MENGGUNAKAN ALGORITMA GENETIKA (Studi Kasus: Waduk

Kaskade Saguling, Cirata, dan Djuanda)

TRADE-OFF MODELING FOR CASCADE RESERVOIR OPERATION

USING GENETIC ALGORITHM (Case Study: Cascade Reservoir

Saguling, Cirata, and Djuanda)

Keyword : Waduk Kaskade, Konflik Kepentingan, Optimasi, Trade-off,

RKE, RKAB, Algoritma Genetika, Sistem Penunjang Keputusan, Cascade

Reservoirs, Conflict of Interest, Optimizing, Trade-off, Energy Demand

Ratio (EDR), Downstream Water Demand Ratio (DWDR), Genetic

Algorithm, Decision Support System

Pengoperasian waduk kaskade dengan visi dan misi yang saling berbeda

serta pengelola yang juga berbeda, dapat menimbulkan konflik kepentingan

(conflict of interest). Seperti halnya Waduk Saguling, Cirata dan Djuanda

beroperasi secara kaskade pada tahun 1988, mulai timbul persoalan teknis

operasional dari masing-masing waduk. Berbagai perangkat lunak telah

Page 14: MODUL ALGORITMA

dicoba untuk menentukan sebuah pola pengoperasian waduk yang cocok

untuk ketiga waduk. Pola pengoperasian waduk yang dihasilkan antara

tahun 1988-1997, sangat rentan terhadap ketidakpuasan atau komplain dari

salah satu pengelola waduk. Demikian pula model RESOP (Reservoir

Operation) yang dikembangkan pada tahun 1998. Dari model tersebut tidak

dievaluasi kembali apakah pengoperasian telah memberikan tingkat layanan

yang sama antara kebutuhan energi dan kebutuhan air baku. Sehingga model

tersebut dinilai belum sepenuhnya menyajikan penyelesaian terhadap

konflik kepentingan yang selama ini terjadi.

Penelitian ini bertujuan mengembangkan model pengoperasian waduk

berupa perangkat lunak yang dapat dioperasikan secara interaktif (user

friendly) dengan menggunakan Algoritma Genetika (AG). Model AG sangat

potensial diaplikasikan untuk permasalahan sistem waduk kaskade, dimana

fungsi tujuannya yang kompleks dengan memasukkan keterkaitan antara

energi dan release untuk air baku. Lebih jauh lagi, AG dapat menyelesaikan

permasalahan untuk mencapai solusi global optimum.

Pengembangan model dilakukan dengan menerapkan fungsi tujuan

memaksimalkan rata-rata energi dan release untuk air baku. Pengembangan

faktor kendala (constraints) yang diterapkan berkaitan dengan kemampuan

turbin, keamanan waduk, karakteristik waduk, suddenly drawdown dan

upraising. Selanjutnya dilakukan analisa trade-off, dengan tujuan

menganalisa tingkat layanan terhadap masing-masing kebutuhan bagi

pengelola waduk, baik untuk kebutuhan energi maupun kebutuhan air baku

sehingga dapat meminimalkan konflik kepentingan yang selama ini terjadi.

Sedimen lereng memiliki pola yang tergantung dengan inflow, rule curve,

dan kondisi fisik waduk. Sedangkan sedimen DAS hanya tergantung dari

keadaan inflow. Akibat inflow yang relatif kecil pada Waduk Cirata dan

Djuanda, sehingga volume sedimen yang terjadi lebih dipengaruhi oleh

sedimen akibat longsoran lereng waduk. Sedimen lereng Waduk Cirata

Page 15: MODUL ALGORITMA

lebih besar 200-300 % dalam setahun dan Djuanda lebih besar 2*106-3*106

% dalam setahun dibandingkan sedimen DAS. Dengan inflow yang lebih

besar pada Waduk Saguling, sehingga volume sedimen dominan oleh

sedimen DAS dan lebih besar sampai 6*104-7*104 % dalam setahun

dibandingkan sedimen lereng.

Pada kurva trade-off berdasarkan tingkat layanan yang sama, bahwa tingkat

layanan terhadap kebutuhan energi semakin kecil seiring dengan

peningkatan tingkat layanan air baku. Berdasarkan analisa trade-off untuk

tahun kering dengan AG diperoleh tingkat layanan sebesar 82,4% dan

dengan PNL sebesar 82,2% untuk kedua kebutuhan tersebut. Dan analisa

trade-off pada tahun normal dengan menggunakan AG diperoleh sebesar

116,7% dan 116,5% dengan PNL untuk kedua kebutuhan tersebu. Maka

tahun kering RKE dalam kondisi aman, namun tahun kering RKAB dalam

kondisi kritis.

Trade-off berdasarkan tingkat layanan yang sama akibat akumulasi sedimen

terjadi pada tahun 40, untuk tahun selanjutnya tidak terjadi trade-off.

Berdasarkan analisa trade-off dengan AG untuk tahun kering diperoleh

81,7%, dan dengan PNL sebesar 81,5% untuk kedua kebutuhan tersebut.

Tahun normal dengan AG diperoleh 116,1%, dan dengan PNL sebesar

115,6% untuk kedua kebutuhan.

Tingkat layanan pada tahun kering dan normal yang diperoleh dari

persentase trade-off dengan AG akan mengurangi waktu eksekusi 50%

sampai 54% dibandingkan PNL. Penghematan wakru eksekusi ini

merupakan kekuatan bagi AG. Di luar kekuatan tersebut, AG memiliki

kemampuan dalam penentuan nilai awal (initial value) yang dilakukan

secara random dan akan mengarahkan fungsi fitness kepada kekuatan utama

AG dalam menemukan solusi global optimum.

Page 16: MODUL ALGORITMA

Grafik trade-off yang dikembangkan dapat membantu pengambilan

keputusan (Decision Support System) khususnya dalam pengoperasian

Waduk Kaskade Citarum. Sehingga dapat diketahui secara tepat release air

yang akan ditetapkan untuk ketiga waduk tersebut agar dapat memenuhi

kebutuhan air di hilir Waduk Djuanda dan produksi energi optimal dari

sistem Waduk Kaskade Citarum. Selain itu optimasi pengoperasian waduk

kaskade, berikut analisa trade-off yang dikembangkan, memberikan

kontribusi dalam model optimasi dan model hidrologi yang telah ada selama

ini.

Page 17: MODUL ALGORITMA

Wali kelas Wali murid Guru mapel

(.........................)

(.........................)

(.........................)

Page 18: MODUL ALGORITMA

DISUSUN OLEH :

BUDI LAKSONO

X.RPL.2

07