Jumat, 01 Desember 2017




ALGORITMA

Algoritma berasal dari nama seorang Ilmuwan Arab yang bernama Abu JafarMuhammad Ibnu Musa Al Khuwarizmi penulis buku berjudul Al Jabar Wal Muqabala. Dua Kata Al Khuwarizmi dibaca orang barat menjadi Algorism yang kemudian lambat laun menjadi Algorithm diserap dalam bahasa Indonesia menjadi Algoritma.Algoritma dapat diartikan urutan penyelesaian masalah yang disusun secara sistematis menggunakan bahasa yang logis untuk memecahkan suatu permasalahan. Meski demikian terdapat beberapa definisi algoritma yang lain. Diantaranya menurut Rinaldi Munir, algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis. Sedang menurut Kamus Besar Bahasa Indonesia, definisi algoritma adalah urutan logis pengambilan keputusan untuk pemecahan masalah. Menurut tim Gunadarma:1988, algoritma adalah suatu himpunan berhingga dari instruksi-instruksi yang secara jelas memperinci langkah-langkah proses pelaksanaan, dalam pemecahan suatu masalah tertentu, atau suatu kelas masalah tertentu, dengan dituntut pula bahwa himpunan instruksi tersebut dapat dilaksanakan secara mekanik.
Pengertian algoritma Menurut Sjukani (2005), algoritma adalah alur pemikiran dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis. Yang ditekankan pertama adalah alur pikiran, sehingga algoritma seseorang dapat berbeda dari algoritma orang lain. Sedangkan penekanan kedua adalah tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu. 
Jadi dapat disimpulkan bahwa algoritma adalah ilmu yang mempelajari cara penyelesaian suatu masalah berdasarkan urutan langkah-langkah terbatas yang disusun secara sistematis dan menggunakan bahasa yang logis dengan tujuan tertentu. dalam hal ini adalah  alur pemikiran untuk menyelesaikan suatu pekerjaan atau suatu masalah daripada pembuatan program komputer. Algoritma inilah yang kemudian dijadikan landasan (pedoman) untuk membuat program komputer.
Dalam kehidupan sehari-haripun seringkali kita berhadapan dengan masalah-masalah yang kalau kita cermati mengikuti kaidah-kaidah penyelesaian secara algoritma. Misalkan saja cara-cara memasak mie instan, membuat kopi atau teh, memasak makanan yang dinyatakan dalam bentuk resep, dan masih banyak lagi yang semuanya itu dapat kita sebut sebagai algoritma. Pada mie instan misalnya, biasanya pada bungkusnya terdapat urutan langkahlangkah bagaimana cara memasak atau menyajikannya. Bila langkah langkah tersebut tidak logis, maka dapat dipastikan bahwa kita akan memperoleh hasil yang tidak sesuai dengan yang diharapkan. Kita harus membaca satu demi satu langkah langkah pembuatannya kemudian mengikutinya agar memperoleh hasil yang baik. Yang harus diingat disini adalah kita tidak harus mengikuti langkah langkah yang sudah diberikan, tetapi kita dapat memodifikasinya atau bahkan membuat resep atau cara baru yang lebih baik tetapi menghasilkan hal yang sama (mempunyai tujuan yang sama), yaitu dapat menikmati hasil masakan. Demikian juga dengan pemrograman komputer, kita juga tidak harus mengikuti algoritma yang sudah ada, tetapi kita dapat menambah ataupun mengurangi bahkan membuat algoritma yang baru asalkan permasalahan yang ada dapat terpecahkan dengan baik.

Ciri-ciri, Sifat, Struktur Dasar dan Cara Penulisan Algoritma 
Tidak semua urutan langkah penyelesaian masalah yang logis dapat disebut sebagaialgoritma. Menurut Donald E. Knuth, algoritma mempunyai lima ciri penting yang meliputi:
1. Finiteness (keterbatasan), algoritma harus berakhir setelah mengerjakan sejumlah langkah
proses.
2. Definiteness (kepastian), setiap langkah harus didefinisikan secara tepat dan tidak berarti
ganda.
3. Input (masukan), algoritma memiliki nol atau lebih data masukan (input).
4. Output (keluaran), algoritma mempunyai nol atau lebih hasil keluaran (output).
5. Effectiveness (efektivitas), algoritma harus sangkil (efektif), langkah-langkah algoritma
dikerjakan dalam waktu yang wajar.

Suatu Algoritma dapat terdiri dari tiga struktur dasar,yaitu runtunan, pemilihan dan pengulangan. Ketiga jenis langkah tersebut membentuk konstruksi suatu algoritma. Berikut adalah penjelasan dari tiga struktur tersebut :

Runtunan (sequence)
Sebuah runtunan terdiri dari satu atau lebih instruksi. Tiap instruksi dikerjakan secara berurutan sesuai dengan urutan penulisannya, yakni sebuah instruksi dilaksanakan setelah instruksi sebelumnya selesai dikerjakan. Urutan dari instruksi menentukan hasil akhir dari suatu algoritma. Bila urutan penulisan berubah maka mungkin juga hasil akhirnya berubah. Sebagai contoh perhatikan operasi aritmatika berikut ini, (4+3)*7=49, tetapi bila urutan aksinya diubah maka hasil keluaran akan berbeda menjadi 4+(3*7) =25.
Contoh lain dari runtunan aksi adalah algoritma penukaran dua bilangan bulat,yaitu:
1. Deklarasikan A, B, dan C sebagai bilangan bulat
2. Masukkan nilai A dan B
3. Masukkan nilai A ke dalam C
4. Masukkan nilai B ke dalam A
5. Masukkan nilai C ke dalam B

Pemilihan (selection)
Kadangkala terdapat suatu kejadian yang baru akan dikerjakan jika suatu kondisi tertentu telah terpenuhi. Pemilihan yaitu instruksi yang dikerjakan dengan kondisi tertentu. Kondisi adalah persyaratan yang dapat bernilai benar atau salah. Satu atau beberapa instruksi hanya dilaksanakan apabila kondisi bernilai benar, sebaliknya apabila salah maka instruksi tidak akan dilaksanakan. Contoh kasus pemilihan adalah dalam penentuan bilangan genap atau ganjil berikut ini:
1. Masukkan bilangan sebagai sebuah bilangan bulat
2. Bagi bilangan dengan angka 2, simpan nilai sisa pembagian dalam variabel sisa
3. Jika nilai sisa sama dengan 0 maka kerjakan langkah 4:
4. Tampilkan ”GENAP” ke layar
5. Jika nilai sisa tidak sama dengan 0 maka kerjakan langkah 6
6. Tampilkan ”GANJIL” ke layar
7. Selesai. 

Pengulangan (repetition)
Salah satu kelebihan komputer adalah kemampuannya untuk mengerjakan pekerjaan yang sama berulang kali tanpa mengenal lelah.Kita tidak perlu menulis instruksi yang sama berulang kali, tetapi cukup melakukan pengulangan dengan instruksi yang tersedia. Pengulangan merupakan kegiatan mengerjakan sebuah atau sejumlah aksi yang sama sebanyak jumlah yang ditentukan atau sesuai dengan kondisi yang diinginkan. Beberapa statemen pengulangan di bahasa pemrograman yaitu for…, while()..., do...while(), repeat....until, for...downto...do, for...to...do dan lain-lain. Sebagai contoh adalah menampilkan huruf tertentu sebanyak n kali ke layar sebagai berikut:
1. Deklarasikan variabel huruf untuk menyimpan karakter yang akan ditampilkan.
2. Deklarasikan variabel n untuk menyimpan banyaknya perulangan
3. Deklarasikan variabel counter yang digunakan sebagai counter perulangan yang
sudah dilakukan.
4. Masukkan sebuah karakter dan simpan dalam variabel huruf
5. Masukkan banyaknya perulangan yang diinginkan dan simpan dalam variabel n
6. Set nilai counter dengan 0
7. Tampilkan huruf ke layar
8. Lakukan penambahan counter dengan 1
9. Jika nilai counter<n, kerjakan langkah 6
10. Jika nilai counter = n selesai


NOTASI ALGORITMA

Algoritma mempunyai aturan penulisan sendiri yang disebut dengan notasi algoritma. Notasi algoritma ini tidak tergantung dari spesifikasi bahasa pemrograman tertentu dan komputer yang mengeksekusinya. Hal ini dikarenakan notasi algoritma bukanlah notasi bahasa pemrograman. Notasi algoritma merupakan bahasa universal yang dapat diterima oleh semua bahasa pemrograman yang ada. Oleh sebab itu algoritma yang baik harus dapat diterjemahkan ke dalam bentuk source code dari semua bahasa pemrograman yang ada. Untuk membuat algoritma dari suatu permasalahan, biasanya digunakan salah satu dari tiga buah notasi algoritma yang dikenal, yaitu uraian kalimat deskriptif, flow chart, atau pseudo code.


FLOW CHART 
Notasi algoritma yang paling banyak digunakan adalah flow chart karena bentuknya yang sederhana dan mudah dipahami. Flow chart (diagram alir) adalah penggambaran secara grafik dari langkah-langkah pemecahan masalah yang harus diikuti oleh pemroses. Flowchart terdiri atas sekumpulan simbol, dimana masing-masing symbol menggambarkan suatu kegiatan tertentu.Flowchart diawali dengan penerimaan masukan (input), pemrosesan masukan, dan diakhiri dengan menampilkan hasilnya (output). Adapun simbol-simbol yang sering digunakan untuk menyusun flow chart (dalam microsoft visio) adalah sebagai berikut :

1) Masukan (Input)
Masukan merupakan kegiatan penerimaan data yang disimbolkan dengan jajaran genjang. Kita dapat menuliskan masukan yang diperlukan pada suatu waktu secara satu per satu maupun secara keseluruhan, akan tetapi untuk alasan efisiensi ruang gambar biasanya masukan dituliskan bersamaan secara keseluruhan.

 


2) proses
Data yang dimasukan kemudian diproses untuk menghasilkan jawaban atas persoalan yang ingin dipecahkan. Kegiatan memproses data ini disimbolkan dengan persegi panjang. Sama seperti simbol pada masukan, penulisan operasi-operasi pada data dapat dilakukan secara satu per satu maupun secara keseluruhan.

 

3) Keluaran
Keluaran adalah hasil dari pemrosesan data dan merupakan jawaban atas permasalahan yang ada. Keluaran ini harus ditampilkan pada layar monitor agar dapat dibaca oleh pengguna program. Sama seperti aturan pada simbol-simbol sebelumnya, penulisan hasil pemrosesan data dapat dilakukan secara satu per satu maupun secara keseluruhan.


4) Percabangan atau kondisi
Yang dimaksud dengan percabangan disini adalah suatu kegiatan untuk mengecek atau memeriksa suatu keadaan apakah memenuhi suatu kondisi tertentu atau tidak. Jadi dalam percabangan ini, kita harus menuliskan kondisi apa yang harus dipenuhi oleh suatu keadaan. Hasil dari pemeriksaan keadaan ini adalah YA atau TIDAK. Jika pemeriksaan keadaan menghasilkan kondisi yang benar, maka jalur yang dipilih adalah jalur yang berlabel YA, sedangkan jika pemeriksaan keadaan menghasilkan kondisi yang salah, maka jalur yang dipilih adalah jalur yang berlabel TIDAK. Berbeda dengan aturan pada simbol-simbol sebelumnya, penulisan kondisi harus dilakukan secara satu per satu (satu notasi percabangan untuk satu kondisi).



5) Arah aliran
Arah aliran merupakan jalur yang harus diikuti dan merupakan garis penghubung yang menghubungkan setiap langkah pemecahan masalah yang ada dalam flow chart. Arah aliran ini disimbolkan dengan anak panah

   


6) Terminator
Terminator berfungsi untuk menandai titik awal dan titik akhir dari suatu flow chart. Simbol
terminator ini diberi label MULAI atau START untuk menandai titik awal dari flow chart dan label SELESAI atau END
untuk menandai titik akhir dari flow chart. Jadi dalam sebuah flow chart harus ada dua symbol terminator, yaitu symbol terminator untuk MULAI dan SELESAI.



7) Konektor
Konektor berfungsi untuk menghubungkan suatu langkah dengan langkah lain dalam sebuah flow chart dengan keadaan on page atau off page. Yang dimaksud dengan konektor on page adalah konektor yang digunakan untuk menghubungkan suatu langkah dengan langkah lain dalam satu halaman. Sedangkan konektor off page adalah konektor untuk menghubungkan suatu langkah dengan langkah lain dalam halaman yang berbeda. Konektor ini digunakan apabila ruang gambar yang kita gunakan untuk menggambar flow chart tidak cukup luas untuk memuat flow chart secara utuh, jadi perlu dipisahkan atau digambar di halaman yang berbeda.

ON PAGE  OFFPAGE

8) Annotation

memberi komentar atau keterangan dalam flow chart.
 
 

9) procedure/ subroutine
Sub rutin adalah suatu bagian dalam program yang dapat melakukan (atau diberi) tugas tertentu. Jadi sub rutin merupakan “program kecil” yang menjadi bagian dari suatu program yang besar








DESKRIPTIF ALGORITMA
Algoritma dengan uraian kalimat deskriptif adalah notasi algoritma yang paling sederhana karena algoritma ini menggunakan bahasa sehari-hari. Untuk permasalahan yang sederhana penggunaan notasi ini sangatlah mudah, akan tetapi untuk permasalahan yang lebih komplek dan rumit, penggunaan notasi ini akan lebih sulit dan sering kali terjadi ambigu dalam langlahlangkah penyelesaian masalah. Oleh karena itulah untuk kasus-kasus yang lebih komplek, penggunaan notasi ini jarang sekali bahkan tidak digunakan. Permasalahan di atas, yaitu mencari bilangan terbesar dari tiga buah bilangan yang dimasukkan, tergolong permasalahan yang sederhana, jadi algoritmanya masih mudah dan dapat dijelaskan dengan uraian kalimat deskriptif sebagai berikut:
1. Masukkan sembarang bilangan sebanyak tiga buah.
2. Ambil bilangan pertama dan set maksimumnya sama dengan bilangan pertama.
3. Ambil bilangan kedua dan bandingkan dengan maksimum.
4. Apabila bilangan kedua lebih besar dari maksimum maka ubah maksimumnya
menjadi sama dengan bilangan kedua.
5. Ambil bilangan ketiga dan bandingan dengan maksimum.
6. Apabila bilangan ketiga lebih besar dari maksimum maka ubah lagi maksimumnya
menjadi sama dengan bilangan ketiga.
7. Variabel maksimum akan berisi bilangan yang terbesar dan tampilkan hasilnya.

Algoritma dengan uraian kalimat deskriptif seperti di atas sudah jarang sekali kita temukan karena kadang kala agak sulit untuk memahaminya. Yang paling banyak kita temukan adalah algoritma (dengan uraian kalimat deskriptif) yang ditulis secara lebih sistematis dan efisien sehingga lebih mudah untuk memahaminya.
 
PSEUDOCODE
Pseudocode adalah cara penulisan algoritma yang menyerupai bahasa pemrograman tingkattinggi. Pseudocode menggunakan bahasa yang hampir menyerupai bahasa pemrograman. Biasanya pseudo-code menggunakan bahasa yang mudah dipahami secara universal dan juga lebih ringkas dari pada algoritma. Pseudocode berisi deskripsi dari algoritma pemrograman komputer yang menggunakan struktur sederhana dari beberapa bahasa pemrograman tetapi bahasa tersebut hanya di tujukan agar dapat di baca manusia. Sehingga pseudocode tidak dapat dipahami oleh komputer. Supaya notasi pseudocode bias dipahami oleh komputer maka harus diterjemahkan terlebih dahulu menjadi sintaks bahasa pemrograman komputer tertentu.
Dalam pseudocode, tidak ada sintaks standar yang resmi. Karena itu, pseudocode ini dapat diterapkan dalam berbagai bahasa pemograman. Disarankan untuk menggunakan keyword yang umum digunakan seperti : if, then, else, while, do, repeat, for, dan lainnya Keuntungan menggunakan notasi pseudocode adalah kemudahan mentranslasi ke notasi bahasa pemrograman, karena terdapat korespondensi antara setiap pseudocode dengan notasi bahasa pemrograman.

 Dalam penulisannya, pseudocode harus terdiri dari tiga bagian, yaitu :
1. Judul algoritma
Bagian yang terdiri atas nama algoritma dan penjelasan (spesifikasi) dari algoritma tersebut. Nama sebaiknya singkat dan menggambarkan apa yang dapat dilakukan oleh algoritma tersebut.

2. Deklarasi
Bagian untuk mendefinisikan semua nama yang digunakan didalam program. Nama tersebut dapat berupa nama tetapan, peubah atau variabel, tipe,prosedur, dan fungsi.

3. Deskripsi
Bagian ini berisi uraian langkah langkah penyelesaian masalah yang ditulis dengan menggunakan aturan-aturan yang akan dijelaskan selanjutnya.

Struktur penulisan pseudocode secara umum sama dengan struktur penulisan algoritma dengan menggunakan kalimat deskriptif yaitu dimulai dari judul/header, deklarasi/kamus dan diakhiri dengan deskripsi. Meskipun tidak ada sintaks khusus dalam penulisan pseudocode, tetapi terkadang pseudocode dituliskan dengan menggunakan style atau gaya penulisan dari beberapa bahasa pemrograman yang ada, seperti Fortran, Pascal, C dan lain-lain.



PEMROGRAMAN

Sebelum kita mengetahui tentang pemrograman kita harus tahu apa arti dari program itu sendiri. Program adalah kumpulan instruksi atau perintah yang disusun sedemikian rupa sehingga mempunyai urutan nalar yang tepat untuk menyelesaikan suatu persoalan. Sehingga Pemrograman dalam pengertian luas meliputi seluruh kegiatan yang tercakup dalam pembuatan program, termasuk analisis kebutuhan (requirement's analysis) dan keseluruhan tahapan dalam perencanaan planning perancangan (design) dan pewujudannya (implementation). Dalam pengertian yang lebih sempit, pemrograman merupakan pengkodean (coding atau program writing = penulisan program) dan pengujiannya (testing) berdasarkan rancangan tertentu. Pemahaman yang lebih sempit ini sering digunakan dalam pembuatan program-program terapan komersial yang membedakan antara system analyst yang bertanggung jawab dalam menganalisa kebutuhan, perencanaan dan perancangan program dengan pemrogram (programmer) yang bertugas membuat kode program dan menguji kebenaran program.


Pemrograman komputer
Komputer sebuah mesin yang dirancang untuk mengikuti instruksi. Program komputer merupakan sebuah instruksi yang digunakan oleh komputer untuk memecahkan masalah atau tugas-tugas yang diberikan padanya. Misalnya jika menggunakan komputer untuk menghitung pembayaran pada seorang pegawai maka langkahlangkah yang dilakukan adalah
sebagai berikut:
1. Menampilkan pesan pada layar “ berapa jam kamu bekerja?”
2. Menunggu pengguna memasukan data jam bekerja dan setelah ditekan ENTER maka komputer
akan memasukan data ke dalam memory.
3. Menampilkan pesan pada layar “ berapa besarnya gaji tiap jamnya?”
4. Menunggu pengguna memasukan data per jam bekerja dan setelah
ditekan ENTER maka computer akan memasukan data ke dalam memory
5. Komputer melakukan perkalian antara jumlah jam dengan gaji perjam
6. Komputer menampilkan hasil perhitungan gaji pegawai yang harus dibawa pulang.


BAHASA PEMROGRAMAN

Sampai saat ini terdapat puluhanbahasa pemrogram, antara lain bahasa Assembly, Fortran, Cobol, PL/I, Algol, Pascal, C, C++, Basic, Prolog, LISP, PRG, CSMP, Simscript, GPSS, Dinamo, dan lain-lain. Berdasarkan terapannya, bahasa pemrograman dapat di golongkan atas dua kelompok besar:
1. Bahasa pemrograman bertujuan khusus. Yang termasuk kelompok ini adalah Cobol untuk terapan bisnis dan administrasi. Fortran untuk terapan komputasi ilmiah, bahasa Assembly untuk terapan pemrograman mesin, Prolog untuk terapan kecerdasan buatan, bahasa-bahasa simulasi, dan sebagainya.
2. Bahasa pemrograman bertujuan umum, yang dapat digunakan untukberbagai aplikasi.Yang termasuk kelompok ini adalah bahasa Pascal, Basic, Java, dan C. Tentu saja pembagian ini tidak kaku. Bahasa bertujuan khusus tidak berarti tidak bisa digunakan untuk aplikasi lain. Cobol misalnya, dapat juga digunakan untuk terapan ilmiah, hanya saja kemampuannya terbatas. Yang jelas, bahasa pemrograman yang berbeda dikembangkan untuk bermacam-macam terapan yang berbeda pula. 
 

Berdasarkan pada tingkat kerumitan sebuah bahasa pemrograman, maka bahasa pemrograman dikelompokkan atas dua macam, yaitu bahasa tingkat tinggi dan bahasa tingkat rendah.

Bahasa Tingkat Tinggi
kelebihan utama dari bahasa ini adalah mudah untuk di baca, tulis, maupun diperbaharui, sebelum bias dijalankan program harus terlebih dahulu di-compile. Contoh Ada, Algol, BASIC, COBOL, C, C++, FORTRAN, LISP, dan Pascal, dsb. Pada generasi bahasa pemrograman terakhir sekarang ini, kedua cara interpretasi dan kompilasi digabungkan dalam satu lingkungan pengembangan terpadu (IDE=integrated development environ-ment). Cara interpretasi memudahkan dalam pembuatan program secara interaktif dan cara kompilasi menjadikan eksekusi program lebih cepat. Pertama program dikembangkan interaktif, kemudian setelah tidak ada kesalahan keseluruhan program dikompilasi.Contoh bahasa program seperti ini adalah Visual BASIC yang berbasis BASIC dan Delphi yang berbasis PASCAL. Bahasa tingkat tinggi bersifat portable. Program yang dibuat menggunakan bahasa tingkat tinggi pada suatu mesin computer bersistem operasi tertentu, hampir 100% bisa digunakan pada ber bagai mesin dengan aneka sistem operasi. Kalaupun ada perbaikan sifatnya kecil sekali.

Bahasa Tingkat Rendah
Merupakan bahasa assembly atau bahasa mesin. Bahasa tingkat rendah dirancang agar setiap instruksinya langsung dikerjakan oleh komputer, tanpa harusmelalui penerjemah (translator). Contohnya adalah bahasa mesin.CPU mengambil instruksi dari memori, langsung mengerti danlangsung mengerjakan operasinya. Bahasa tingkat rendah bersifatprimitif, sangat sederhana, orientasinya lebih dekat ke mesin,dan sulit dipahami manusia. Bahasa Assembly dimasukkan kedalam kelompok ini karena alasan notasi yang dipakai dalam bahasaini lebih dekat ke mesin, meskipun untuk melaksanakan instruksinya masih perlu penerjemahan ke dalam bahasa mesin.


Dalam memilih bahasa pemrograman harus memperhatikan hal-hal yang dimiliki oleh bahasa tersebut, dan tentunya setiap bahasa pasti mempunyai kekurangan dan kelebihan yang harus kita pertimbangan dalam memilihnya. Pada bahasa C++ mempunyai kemampuan pada bahasa aras tinggi maupun bahasa aras rendah. Bahasa C++ basisnya adalah pengembangan dari bahasa C, selain itu C++ juga mendukung bahasa pemrograman berorientasi objek. Sebenarnya bahasa ini dari awal dikembangkan untuk menulis program system operasi sebuah komputer maupun compiler. Karena bahasa C++ mengembangkan C sebelumnya maka kemampuannya C++ diperbaiki dan ditingkatkan daripada bahasa C.







Cukup sekian , terimakasih



Sumber : 





http://staff.uny.ac.id/sites/default/files/penelitian/Drs.%20Totok%20Sukardiyono,%20M.T./Buku%20Bahasa%20Pemrograman%20Lengkap.pdf
 






Tidak ada komentar:

Posting Komentar

ALGORITMA Algoritma berasal dari nama seorang Ilmuwan Arab yang bernama Abu JafarMuhammad Ibnu Musa Al Khuwarizmi penulis buku b...