You are on page 1of 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 Ms al-Khwrizm. Bagi kalian yang sedang berkecimpung dalam dunia komputer maka seharusnya mengetahui siapa orang di samping ini. Dia adalah seorang ilmuwan Islam yang karyakaryanya 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 soalsoal 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 Deskripsi jumlah b1+b2 BAHASA PASCAL Jumlah := b1+b2 BAHASA C 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 Deskripsi b1, b2 BAHASA PASCAL Var b1, b2, int b1,b2,jumlah; BAHASA C

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 nilainilai yang dapat dipunyai variabel tersebut). b) Jenis operasi yang dapat dilakukan terhadap variabel bersangkutan.

1) Tipe data dasar a) Tipedata bilangan bulat Nama tipe Range nilai : integer : -32.768 sd 32.767

Operator binary : +,-,* / Mod, div : integer x integer = integer : integer x integer = real : 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 : interger x real c) Tipe data karakter real real

Nama tipe Range nilai

: char : 1 symbol/karakter dalam tanda petik

d) Tipe data boolean Nama tipe Range nilai Contoh Operator Contoh : string : rangkain dalam tanda petik. : suhu ruangan 550 C : +: string x string string

: saya + pergi = saya pergi

e) Tipe data boolean Nama tipe Range nilai 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) +, : boolean : true dan false

Jika 2 operator mempunyai prioritas sama, maka yang paling kiri didahulukan. Contoh : 7 + 5 * 6 10 (4 + 5) / (2 - 1) 7 + 30 - 10 9/3 37 - 10 3 27

(ekspresi yang terletak dalam tanda kurung harus didahulukan) ARITMATIKA + Div ARTI Penjumlahan Pengurangan Pembagian interger Modulo Sisa pembagian Modulo % PASCAL + Div C + /

Dalam bahasa pascal dan bahasa C, pernyataan yang berkaitan dengan operasi dasar adalah sebagai berikut : PERNYATAAN Input ALGORITMIK Read PASCAL Read atau Readln Output Write Write atau Writeln Printf C Scanf

Penugasan Akhir permyataan

:= ;

= ;

Fungsi yang sering digunakan : PASCAL Sqr Sqrt Ln Exp Pow Sqrt Log Exp C ARTI Kuadrat Akar kuadrat Logaritma alammi 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 If (kondisi) then Aksi End if If (kondisi) then Aksi1 Else Aksi2 End if Pernyataan majemuk Else

PASCAL If (kondisi) then Aksi;

C If (kondisi) Aksi;

If (kondisi) then Aksi1

If (kondisi) Aksi1; Else

Aksi2;

Aksi2;

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 Case (nama) PASCAL case (nama) of C Switch (nama) { case label1:aksi1; <label1>:aksi1; <label1>:aksi1; Break; case label2:aksi2; <label1>:aksi2; <label1>:aksi2; Break; ............ .......... .......... case labelN:aksiN;

Break; <label1>:aksiN; Else : aksix; Endcase <label1>:aksiN; Else : aksix; End; 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 :


While <kondisi> do Aksi endwhile

Penjelasan:

Aksi akan dijalankan berulangkali sepanjang <kondsi> boolean masih tetap bernilai true. Jika <kondisi> bernilai

false, badan penguklangan tidak akan dilaksanakan. Pengulangan selesai. c) Struktur repeat-until Bentuk umum Struktur repeat-until adalah :
Repeat Aksi until <kondisi>

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 :
For peubah nilai_awal to nilai_akhir do Aksi Endfor

Keterangan :

- 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 :
For peubah nilai_akhir to nilai_awal do Aksi Endfor

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_awalnilai_akhir +1

Study Kasus Mengguankan Algoritma


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

Title:

Author: Mahda, Mutia 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 Abstract: 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

You might also like