modul algoritma
DESCRIPTION
ALGORITMATRANSCRIPT
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
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;
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.
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
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) +, -
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
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 :
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;
<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
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
- 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
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
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
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
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.
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.
Wali kelas Wali murid Guru mapel
(.........................)
(.........................)
(.........................)
DISUSUN OLEH :
BUDI LAKSONO
X.RPL.2
07