ALGORITMA DAN PEMROGAMAN
1.2 Sifat-sifat Algoritma Modul 2 1.2 Sifat-sifat Algoritma 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.1 Banyaknya langkah instruksi yang hingga Pelaksanaan 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,
Kita perlu pula memperhatikan hal-hal sebagai berikut: 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: 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. Masa manfaat > 1 thn, digunakan operasional, berwujud, dpt dinilai, kecuali yg rusak berat/usang
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.
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 Output Input 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 Efektivitas Instruksi 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 lingkup Sebuah 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. Connector (conektor) : Tanda untuk menghubungkan Diagram Alur menjadi beberapa bagian (bersambung ke halaman lain) . Ditulis di halaman untuk menyambung bagian Diagram Alur yang terputus. Flowline : Sebagai penunjuk arah atau menunjukkan bagan instruksi selanjutnya.
Diagram Alur dari Algoritma pada contoh 1-5. START INTERGER N, NUM 1, LARGE, COUNT INPUT N INPUT NUM 1, LARGE SET COUNT = 2 A
A ? NUM > 1 LARGE SET LARGE = NUM COUNT = N INPUT N TRUE FALSE SET LARGE = NUM LENGKAP ? COUNT = N TRUE FALSE INPUT N INCREMENT COUNT BY 1 BILANGAN/DATA DIBACA SECARA SEKUENSIAL DARI ALAT INPUT STOP INPUT N
Komentar dalam Program Komentar 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 Penulisan komentar lebih dari satu baris { Nama program : ……………… Tanggal pembuatan : 13 Januari 2013 Fungsi : ………… } Nama program: Fungsi : …………… /* */
Memberikan informasi pembuatan kode program misalnya sebagai berikut: Berikut adalah fungsi-fungsi utama perlunya komentar dalam sebuah kode program. Memberikan informasi pembuatan kode program misalnya sebagai berikut: 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 */
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 *) procedure cariNama (nama : string)( ……………………………………………… ) /* nama -> */ 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 DATA Tipe 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.
Dalam Logika Pemikiran Dalam Bahasa Algoritma 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 : integer Var bilbulat : 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
Dalam Logika Pemikiran Dalam Bahasa Algoritma Berikut adalah contoh penulisan variabel dengan menggunakan bahasa algoritma, bahasa pemrograman Pascal, dan bahasa pemrograman C. Bahasa Algoritmik Bahasa Pascal Bahasa C cangkir : integer var cangkir : 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 Algoritma Membuat 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 Algoritma Jika 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 : integer var bilangan : integer ; int main(){ int bilangan ; bilangan < - 79 begin bilangan : = 79; bilangan < = 79; bilangan < - 89 bilangan : = 89; end. bilangan = 89; return 1 }
3.2 Bilangan Riil (Floating-Point) 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: Bahasa Algoritmik Bahasa Pascal Bahasa C kurs : real var kurs : real; float kurs; kurs < -1.02 kurs := 1.02; kurs = 1.02;
Dalam Logika Pemikiran Dalam Bahasa Algoritma 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 Algoritma Membuat variabel/kotak dengan jenis atau tipe riil/float dengan nama bilRiil. bilRiil : real 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 59 bilaBulat < - 59 Mengisi kotak nilRiil dengan isi dari kotak bilBulat. Maka isi dari bilRiil akan menjadi 59.00 bilaRiil < - bilBulat
Langkah/gambran: Mengisi kotak bilRiil dengan isi dari kotak bilBulat. 59 bilRiil 59.00 diubah menjadi dalam bentuk riil dan dimasukan ke kotak bilRiil. Bhs Algoritmik Bahasa Pascal Bahasa C bilRiil : real var bilRill : 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 }
3.3 Karakter Karakter 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 dengan pernyataan 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; var karakterl : 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 String String 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 C kata : string var kata : string; chart kata[ 4]; untuk mengisi variabel kata adalah sebagai berikut: kata[ 0] = ‘C’ ; kata[ 1] = ‘+’ ; kata[ 2] = ‘+’ ; kata[ 3] = ‘\0’ ;
kata <- “ini adalah string” kata := ‘ini adalah string’; Bahasa Algoritmik Bahasa Pascal Bahasa C kata <- “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 “;
SEKIAN & TERIMA KASIH