algoritma modul 2

38
ALGORITMA DAN PEMROGAMAN

Transcript of algoritma modul 2

ALGORITMADAN

PEMROGAMAN

Prosedur yang tidak memiliki sifat seperti tertera di dalam sub-bagian di bawah ini, bukanlah merupakan sebuah Algoritma, dan tidak dapat membuahkan hasil yang diinginkan. Jika Program penyajian dari Prosedur seperti ini dimasukan ke dalam komputer.

1.2 Sifat-sifat AlgoritmaModul 2

1.2.1 Banyaknya langkah instruksi yang hinggaPelaksanaan sebuah Algoritma yang terprogram harus dapat diselesaikan setelah pelaksanaan sejumlah langkah operasional yang hingga. Jika tidak demikian, kita tidak bisa mengharapkan bahwa pelaksanaan tersebut dapat membuahkan suatu hasil.Contoh soal yang terdapat dalam contoh 1-4 diatas hasilnya didasarkan pada sifat tersebut. Disini setiap langkah hanya dilaksanakan satu kali saja,

Di dalam Contoh 1-5, langkah ke 5 akan diulang sebanyak N-1 kali, karena N bersifat hingga; maka dapat ditarik kesimpulan bahwa pelaksanaan Prosedur tersebut akan selesai setelah dilaksanakan beberapa langkah yang hingga.Kita perlu pula memperhatikan hal-hal sebagai berikut:a. Jumlah langkah yang sesungguhnya

dibutuhkan, sebenarnya tergantung dari perincian isi (detail) dari Algoritma yang bersangkutan. Di dalam Contoh 1-5, langkah 5 dapat dipecah ke dalam beberapa langkah. Sementara itu langkah pertama dan kedua dapat digabungkan. Jumlah langkah yang dibutuhkan akhirnya adalah sesuai dengan jumlah instruksi yang dilaksanakan oleh mesin. Walaupun demikian, hal tersebut juga tergantung dari model komputer yang dipakai.

b. Diperlukan suatu Algoritma yang menuju kepada suatu Program dan dapat terpakai dalam waktu cukup lama, katakanlah 100 tahun. Hal yang pokok dari metode Algoritma ialah terdiri dari ulangan langkah-langkah yang sama mungkin dengan beberapa modifikasi, seringkali dilaksanakan selama suatu waktu tertentu. Program yang panjang sebenarnya tidak dapat memberikan petunjuk tentang kebutuhan waktu pelaksanaannya. Di dalam contoh terlihat bahwa satu langkah (ke-5) dilaksanakan N-1 kali.

c. Jumlah langkah operasional yang dilaksanakan biasanya jarang sesuai dengan jumlah langkah yang terdapat di dalam Algoritma (atau jumlah instruksi dalam Program. Jumlah langkah yang benar-benar dilaksanakan sesuai Program tergantung dari data masukan (input) dan tidak selalu dapat dipastikan sebelumnya.

1.2.2 Tidak ada keragaman (harus jelas)Penulisan dari setiap langkah yang terdapat di dalam sebuah Algoritma harus memliki arti yang khusus atas spesifik. Penulisan langkah bagi komputer dapat berbeda dengan penulisan bagi manusia. Manusia akan mudah mengerjakan Algoritma yang terdiri dari simbol (misalnya memakai kode tertentu atau Diagram Alur, sedangkan komputer membutuhkan sebuah Algoritma dengan kode yang dituangkan ke dalam Program. Hal tersebut berarti bahwa setiap kali suatu Algoritma dilaksanakan dengan data masukan yang sama, maka akan diperoleh hasil yang sama pula.

1.2.3 Batasan dari rangkaian proses

Rangkaian proses yang berisi langkah-langkah dan suatu Algoritma yang akan dilaksanakan harus ditetapkan dengan pasti. Sebuah Algoritma harus memiliki instruksi dasar tertentu (yang spesifik) dan setiap instruk harus memiliki unsur pelaksana yang memproses data masukan. Di dalam spesifikasi secara algoritmik, termasuk di sini spesifikasi Program, instruksi dilaksanakan dari atau ke bawah, kecuali apabila ada ketentuan lain, seperti alih kemdali bersyarat ataupun tidak bersyarat. Dalam Contoh 1-5, langkah ke-5 dapat dilaksanakan berulang-ulang kali tergantung dari nilai N-nya.

1.2.4 Batasan dari Inpu dan OutputInput merupakan data yang dimasukkan ke dalam Algoritma. Input tersebut harus sesuai dengan jenis Algorima yang bersangkutan. Di dalam Contoh 1-4, terlihat bahwa Algoritma tersembut memerlukan tiga input. Di dalam Contoh 1-5 Algoritma diancang untuk menerima N+1 input. Di dalam kedua contoh tersebut input harus terdiri dari interger (bilangan bulat). Output merupakan hasil yang dikeluarkan oleh komputer untuk kepentingan pihak diluar komputer sebagai hasil dari pelaksanaan Program. Algoritma haruslah menghaslkan suatu output.Algoritma yang terdapat di dalam contoh 1-4 dan 1-5 masing-masing memiliki satu output.

1.2.5 EfektivitasInstruksi dari sebuah Algoritma dapat memerintahkan komputer agar hanya melaksanakan penugasan yang mampu dilaksanakannya saja. Komputer tidak dapat melaksanakan instruksi, jika informasinya tidak lengkap atau jika hasil dari pelaksnaan perintah tidak diberi batasan yang jelas.Jika di dalam Contoh 1-5 langkah pertama di hilangkan, maka Algoritma tersebut tidak efektif lagi, karena terjadi kekurangan informasi. Di sini pada langkah ke-5 HITUNG tidak dapat dibandingkan dengan N yang tidak diketahu nilainya.

1.2.6 Batasan ruang lingkupSebuah Algoritma adalah diperuntukkan bagi suau masalah tertentu. Susunan input harus ditentukan terlebih dahulu. Susunan tersebut menentukan sifat umum dari Algoritma yang bersangkutan. Ruang lingkup Algoritma di dalam Contoh 1-5 bersifat lebih luas dari pada Algoritma di dalam Contoh 1-4. Di sini Algoritma pada contoh 1-4 merupakan suatu hal khusus dari Algoritma pada Contoh 1-5 untuk N=3.

1.3 DIAGRAM ALUR (FLOWCHART)Alat yang banyak dipakai untuk membuat Algoritma adalah Diagram Alur. Diagram Alur dapat menunjukan secara jelas arus pengendalian Algoritma, yaitu bagaiman rangkaian pelaksanaan kegiatan. Suatu Diagram Alur memberikan gambaran dua dimensi berupa simbol-simbol grafis. Masing-masing simbol telah ditetapkan terlebih dahulu fungsi dan artinya. Dan dipakai untuk menunjukkan berbagai kegiatan operasi dan jalur pengendalian. Simbol lainnya menjadi alur proses yang akan menentukan rangkaian penugasan yang harus dilaksanakan.

1.3 DIAGRAM ALUR (FLOWCHART)

Processing (pemrosesan) :Pengolahan data yang meliputi perhitungan, satu atau beberapa himpunan penugasan yang akan dilaksanakan secara berurutan.

Input/Output :Data yang akan di baca dan masukkan ke dalam memori komputer dari suatu alat input atau data dan harus melewati memori untuk dikeluarkan dari alat output.

Decision (keputusan) :Menentukan sebagai hasil keputusan YA atau TIDAK.Ada dua alternatif yang dapat ditentukan untuk melak-sanakan jalur Diagram Alur. Jalur yang harus di ikuti di pilih pada saat pelaksanaan Algoritma dengan menga-dakan percobaan apakah langkah-langkah yang di tetapkan di dalam bagan sudah terpenuhi atau belum.Terminal :Menunjukan awal dan akhir dari suatu proses.Tampil pada awal Diagram Alur (berisi kata “Start”) atatu pada akhir proses (berisi kata “Stop”)Annotation (anotasi) :Suatu catatan dalam diagram alur algoritma.Berisi keterangan agar mudah di mengerti isi/tujuan Algoritma atau uraian data yang akan di proses.

Connector (conektor) :Tanda untuk memisahkan Diagram Alur menjadi beberapa bagian (bersambung ke tempat lain) . Ditulis di tempat untuk menyambung bagian Diagram Alur yang terputus.

Flowline :Sebagai penunjuk arah atau menunjukkan bagan instruksi selanjutnya.

Tanda untuk menghubungkan Diagram Alur menjadi beberapa bagian (bersambung ke halaman lain) . Ditulis di halaman untuk menyambung bagian Diagram Alur yang terputus.

Connector (conektor) :

Diagram Alur dari Algoritma pada contoh 1-5.

START

INPUT N

INPUT NUM 1, LARGE

SET COUNT = 2

A

INTERGER N, NUM 1, LARGE, COUNT

?NUM > 1 LARGE

SET LARGE = NUM

A

LENGKAP ?

COUNT = N

INPUT N

STOP

INCREMENT COUNT BY 1

INPUT N

BILANGAN/DATA DIBACA SECARA SEKUENSIAL DARI ALAT INPUT

TRUE FALSE

TRUE FALSE

Komentar dalam ProgramKomentar merupakan bagian kode program yang tidak dieksekusi oleh compiler atau interpret saat program dijalankan. Komentar dianggap penting untuk memperjelas program agar lebih mudah dimengerti dan suatu memberikan informasi-informasi dari kode program yang diperlukan.

Pemrograman merupakan penuang sebuah ide untuk menyelesaikan masalah dengan menggunakan perangkat yang dinamakan komputer, oleh karena itu sering kali ide hanya muncul pada saat-saat tertentu dan tidak jarang ide yang baru saja kita temukan lalu kita lupakan, apalagi jika dalam kondisi sibuk dengan pekerjaan lainnya.Atau bahkan program yang kita buat perlu di baca orang lain agar dapat dikembangkan lebih lanjut. Biasanya tanpa komentar, orang lain akan susah memahami alur kode program yang dibuat. Untuk itulah, diperlukan komentar agar program kita dapat dikembangkan oleh orang lain dan tidak hanya menjadi “sampah”

Berikut adalah penulisan komentar dalam suatu kode program :

Keterangan Bahasa Algoritma Bahasa Pascal Bahasa C

Penulisan komentar yang hanya sau baris dimana dalam bahasa pemrograman C penulisannya diawali dengan tanda // dan diakhiri dengan enter

{ isi komentar } { isi komentar } // isi komentar

Penulisan komentar lebih dari satu baris

{Nama program :………………Tanggal pembuatan : 13 Januari 2013Fungsi : …………}

{Nama program:………………Tanggal pembuatan : 13 Januari 2013Fungsi : ……………}

/*Nama program :………………Tanggal pembuatan : 13 Januari 2013Fungsi : ……………*/

Berikut adalah fungsi-fungsi utama perlunya komentar dalam sebuah kode program.

Bahasa Pascal Bahasa C

(* * Nama Programmer : Naswa Khaennisa Nabil Ramadhana * Nama Progam : DataBuku * Versi Kode Program : 1.0 * Tanggal Pembuatan : 26 Januari 2012 * Fungsi Kelas : Menyimpan Buku*)

/* * Nama Programmer : Naswa Khaerunnisa Nabil Ramadhana * Nama Progam : DataBuku * Versi Kode Program : 1.0 * Tanggal Pembuatan : 26 Januari 2012 * Fungsi Kelas : Menyimpan Buku*/

• Memberikan informasi pembuatan kode program misalnya sebagai berikut:

Memberikan informasi tujuan dibuatnya prosedur, fungsi, atau metode, misalnya sebagai berikut:

Bahasa Pascal Bahasa C

(* * Nama Programmer : simpanNama * Keterangan Parameter Masukan : Nama -> nerupakan nama mahasiswa yang akan disimpan * Keadaan Awal : Nama belum disimpan ke basis data * Keadaan Akhir : Nama telah disimpan ke basis data *) procedure cariNama (nama : string)( ……………………………………………… )

/* * Nama Programmer : simpanNama * Keterangan Parameter Masukan : nama -> nerupakan nama mahasiswa yang akan disimpan * Keadaan Awal : Nama belum disimpan ke basis data * Keadaan Akhir : Nama telah disimpan ke basis data */ void cariNama (char* nama)( ……………………………………………… )

biasanya komentar ini diletakan di atas sebuah kode prosedur atau fungsi.

Memberikan informasi fungsi variabel atau konstanta, misalnya sebagai berikut :

Bahasa Pascal Bahasa C Var ( variabel/kotak untuk menyimpan nilai menit ) menit : integer;

// variabel/kotak untuk // menyimpan nilai menit int : integer;

biasnya komentar ini untuk mengetahui untuk apa variabel atau konstanta dibuat karena nama variabel atau konstanta sangat tergantung selera pembuat program, hal ini sangat penting agar orang lain dapat membaca program dan bila pembuat program telah lupa dengan pemikirannya saat membuat program, ada keterangan untuk mencoba mengingat kembali jalannya program (variabel dapat dilogikakan sebagai kotak penyimpanan sebuah nilai dengan tipe tertentu)

Memberikan informasi langkah-langkah jalannya program, misalnya sebagai berikut:

Bahasa Pascal Bahasa C Var ( melakukan proses pencarian nama ) while (ketemu = 0) do begin ………………………………… End;

/* melakukan proses pencarian nama */ while (ketemu == 0) { ………………………………… }

biasanya komentar ini digunakan untuk mengetahui jalannya proses alur kerja program dalam sebuah kode program.

3. TIPE DATATipe data adalah jenis data berdasarkan isi dan sifatnya. Dalam logika kita, tipe data adalah jenis dari sesuatu yang dapat dimasukan ke dalam kotak kosong yang khusus dibuat untuk jenis benda dengan jenis tertentu.Variabel merupakan tempat untuk menyimpan data dengan tipe tertentu yang biasanya bisa diubah-ubah sesuai dengan tipenya. Setiap variabel hanya dapat menyimpan satu buah nilai. Jika nilai itu diubah maka nilai sebelumnya diganti dengan nilai yang baru. Sedangkan konstanta sebenarnya adalah variabel yang ditentukan nilai standarnya (defaul) dari awal dan biasanya nilainya tidak diubah-ubah.

Misal, kita sedang membuat kotak kosong yang hanya dapat diisi dengan kertas bertuliskan bilangan bulat, tidak boleh jenis bilangan selain bilangan bulat, dan pada ilustrasi berikut:

Dalam Logika Pemikiran Dalam Bahasa Algoritma

Membuat kotak kosong yang memiliki jenis bilangan bulat, dan kotak itu kita beri nama bilbulat.

bilbulat : interger

Mengisi kotak kosong bilbulat dengan kertas berisikan bilangan bulat 9.

bilbulat < - 9

Setelah dibuat bahasa algoritmik maka dapat diubah menjadi bahasa pemrograman sebagai sebagai berikut :

Bahasa Algoritmik Bahasa Pascal Bahasa C

bilbulat : integerVarbilbulat : integer ;

int bilbulat ;

bilbulat < - 9 bilbulat : = 9; bilbulat < = 9;

Variabel dapat diberi nama sesuka hati pembuat kode program (sembarang), tapi sebaiknya menggunakan nama-nama yang akan mudah dimengerti orang lain jika membaca kode program yang dibuat.

3.1 Bilangan Bulat (Integer)Tipe bilangan bulat biasa disebut integer walaupun dalam aplikasinya pada bahasa pemrograman, tipe bilangan bulat tidak hanya dinyatakan dengan integer, masih ada tipe lain seperti short dan long yang juga merupakan bilangan bulat, yang membedakan tipe-tipe bilangan bulat itu adalah jangkauan bilangan. Jangkauan tipe bilangan bulat adalah sebagai berikut:

Tipe Data Bilangan Bukat Jangkauan Nilai pada Bahasa C

long -2147483648, …, +2147483647

integer / int -32768, …, +32768

short -128, …, +127

Berikut adalah contoh penulisan variabel dengan menggunakan bahasa algoritma, bahasa pemrograman Pascal, dan bahasa pemrograman C.

Bahasa Algoritmik Bahasa Pascal Bahasa C

cangkir : integervarcangkir : integer ;

int cangkir ;

cangkir < - 1 cangkir : = 1; cangkir < = 1;Sebuah variabel hanya dapat diisi dengan satu buah nilai, misalnya sebagai berikut:

Dalam Logika Pemikiran Dalam Bahasa AlgoritmaMembuat kotak kosong yang memiliki jenis bilangan bulat, dan kotak itu kita beri nama bilangan.

bilangan: interger

Mengisi kotak kosong bilangan dengan kertas berisikan bilangan bulat 79.

bilangan < - 79

Dalam Logika Pemikiran Dalam Bahasa AlgoritmaJika isi kertas yang dimasukan di dalam kotak diubah dengan angka lain, maka angka 79 akan diganti dengan angka yang baru, maka angka sebelumnya akan hilang, misal kotak bilangan diisi dengan kertas bertuliskan 89, maka angka 79 sebelumnya sudah tidak disimpan lagi.

bilangan < - 89

Bahasa Algoritmik Bahasa Pascal Bahasa C

bilangan : integervarbilangan : integer ;

int main(){ int bilangan ;

bilangan < - 79begin bilangan : = 79;

bilangan < = 79;

bilangan < - 89 bilangan : = 89;end.

bilangan = 89; return 1 }

Bilangan riil biasa digunakan untuk menyatakan bilangan yang membutuhkan ketelitian dengan adanya nilai di belakang koma. Berikut ada cara mendeklarasikan bilangan riil dengan menggunakan bahasa algoritmik, bahasa pemrograman Pascal dan bahasa pemrograman C:

3.2 Bilangan Riil (Floating-Point)

Bahasa Algoritmik Bahasa Pascal Bahasa C

kurs : real varkurs : real; float kurs;

kurs < -1.02 kurs := 1.02; kurs = 1.02;

Beda tipe data bilangan riil dan integer terletak pada nilai di belakang koma. Bilangan integer hanya dapat diisi dengan bilangan bulat tanpa koma, sedangkan jika bilangan riil diisi dengan bilangan integer maka nilai di belakang koma akan diisi dengan nol. Misal sebuah variabel dengan tipe bilangan riil akan diisi dengan bilangan integer sebagai berikut:Dalam Logika Pemikiran Dalam Bahasa AlgoritmaMembuat variabel/kotak dengan jenis atau tipe riil/float dengan nama bilRiil. bilRiil : realMembuat kotak kosong yang memiliki jenis bilangan bulat, dan kotak itu kita beri nama bilBulat.

bilBulat : interger

Mengisi kotak kosong bilBulat dengan kertas berisikan bilangan bulat 59 bilaBulat < - 59Mengisi kotak nilRiil dengan isi dari kotak bilBulat. Maka isi dari bilRiil akan menjadi 59.00

bilaRiil < - bilBulat

Bhs Algoritmik Bahasa Pascal Bahasa C

bilRiil : real

varbilRill : real;

int main(){ int bilRiil;

bilRiil : integer:

bilRiil : integer; Int bilBulat

bilBulat < - 59

begin bilBulat : = 59;

bilBulat < = 59;

bilRiil < - bilBulat

bilRill : = bilBulat;end.

bilBulat = bilBulat; return 1 }

bilBulat

59

59

bilRiil

59.00diubah menjadi dalam bentuk riil dan dimasukan ke kotak bilRiil.

Langkah/gambran:Mengisi kotak bilRiil dengan isi dari kotak bilBulat.

3.3 KarakterKarakter atau biasa ditulis char pada pemrograman merupakan tipe data untuk menyimpan sebuah karakter atau gabungan karakter yang mempersentasikan sebuah karakter misalnya karakter-karakter sebagai berikut:

Karakter Keterangan \ 0 karakter null (kosong) \ n karakter newline (pindah baris)

\ ”karakter tanda petik dua (“) agar tidak rancu dengan pernyata string maka diberikan tanda escape ‘\‘

\ ‘karakter tanda petik satu (‘) agar tidak rancu denganpernyataan karakter maka diberi tanda escape ‘\‘

\ \ karakter backslash agar tidak rancu dengan tanda escape ‘\’

\ ? karakter tanda tanya (?)

Penulisan nilai sebuah karakter dinyatakan di dalam dua buah tanda petik satu (‘) sebagai berikut:

Bahasa Algoritmik Bahasa Pascal Bahasa C

karakter : chart;varkarakterl : chart;

chart karakter ;

karakter <- ‘A’ karakter := ‘A”; karakter = ‘A”;

karakter <- ‘?’ karakter := ‘\?’ karakter = ‘\?’

karakter <- ‘9’ karakter := ‘9’; karakter = ‘9’;

Tipe data karakter sebenarnya merupakan tipe turunan dari integer, dan disimpan secara integer menggunakan kode angka ASCII (American Standard Code for Information Interchange). Misalnya karakter ‘A’ disimpan sebagai kode ASCII 65, maka jika diubah menjadi integer maka akan menjadi angka 65. Karakter ‘0’,’1’,’2’, dst mempunyai kode ASCII yang berbeda dengan angka tersebut misalnya karakter ‘1’ jika diubah menjadi integer maka akan menjadi angka 49. Dapat dilihat pada tabel ASCII.

3.4 StringString adalah tipe data yang berupa kumpulan karakter (satu atau lebih) yang berada di dalam dua buah tanda petik dua (“) dalam bahasa C dan dalam tanda petik sau (‘) dalam bahasa Pascal. Dalam aplikasinya bahasa pemrograman baisanya tipe string hanya dapat memuat karakter sebanyak 1 sampai 256 karakter.

Bahasa Algoritmik Bahasa Pascal Bahasa Ckata : string var

kata : string;chart kata[ 4];untuk mengisi variabel kata adalah sebagai berikut:kata[ 0] = ‘C’ ;kata[ 1] = ‘+’ ;kata[ 2] = ‘+’ ;kata[ 3] = ‘\0’ ;

Bahasa Algoritmik Bahasa Pascal Bahasa Ckata <- “ini adalah string”

kata := ‘ini adalah string’;

chart kata[ ] = “ini adalah string”;banyak karakter tidak perlu ditulis karena variabel kata langsung diisi nilainya sehingga tempat yang disediakan langsung disesuaikan dengan panjang karakter di dalam kumpulan karakter yang diisikan pada variabel, hal ini hanya berlaku jika isi variabel langsung diisikan pada saat variabel di deklarasikan.Juga dapat diulis dengan:char* kata = “ini adalah string “;