Algoritma dan Sequence Dasar-Dasar Pemrograman Algoritma dan Sequence Ramos Somya
Algoritma Asal kata Algoritma berasal dari nama seorang ilmuan Persian yang bernama Abu Ja’far Mohammed lbn Musa al-Khowarizmi, yang menulis kitab al jabr w’al-muqabala (rules of restoration and reduction).
Definisi Algoritma Definisi Algoritma : Urutan langkah logis tertentu untuk memecahkan suatu masalah (Microsoft Press Computer and Internet Dictionary 1997, 1998) Alur pemikiran dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis. (Dari Algoritma dan Struktur Data dengan C, C++, dan Java oleh Moh Sjukani) Dari dua definisi di atas dapat disimpulkan bahwa : Algoritma harus mengikuti suatu urutan aturan tertentu dan tidak boleh melompat-lompat Algoritma seseorang dengan yang lain dapat berbeda-beda karena mempunyai alur pikir yang berbeda-beda pula Algoritma dapat berupa kalimat, gambar atau tabel tertentu
Kriteria Algoritma Input: algoritma dapat memiliki nol atau lebih inputan dari luar. Output: algoritma harus memiliki minimal satu buah output keluaran. Definiteness (pasti): algoritma memiliki instruksi-instruksi yang jelas. Finiteness (ada batas): algoritma harus memiliki titik berhenti (stopping role). Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan dan efektif. Contoh instruksi yang tidak efektif adalah: A = A + 0 atau A = A * 1
Sifat-Sifat Algoritma Sifat-sifat Algoritma pada umumnya: Tidak menggunakan simbol atau sintaks dari suatu bahasa pemrograman Tidak tergantung pada suatu bahasa pemrograman Notasi-notasinya dapat digunakan untuk seluruh bahasa manapun
Proses-Proses dalam Algoritma Sequence Process: instruksi dikerjakan secara sekuensial, berurutan. Selection Process: instruksi dikerjakan jika memenuhi kriteria tertentu. Iteration Process: instruksi dikerjakan selama memenuhi suatu kondisi tertentu. Concurrent Process: beberapa instruksi dikerjakan secara bersama.
Bagian-Bagian Program Input Proses Output: minimal satu output
Langkah-langkah pembuatan program : Mendefinisikan Masalah Mencari Solusi Membuat Algoritma Menulis Program Menguji Program Menulis Dokumentasi
Mendefinisikan Masalah Langkah mendefinisikan masalah ini seringkali dilupakan oleh orang / programmer Hukum Murphy (by Henry Ledgard) : “Semakin cepat menulis program, akan semakin lama kita dapat menyelesaikannya”. Tentukan masalahnya, apa saja yang harus dipecahkan dengan menggunakan komputer, dan apa inputan serta outputnya.
Mencari Solusi Jika masalah terlalu kompleks, maka ada baiknya masalah tersebut dipecah menjadi modul-modul kecil agar lebih mudah diselesaikan. Contohnya masalah invers matriks, maka kita dapat membagi menjadi beberapa modul: meminta masukkan berupa matriks bujur sangkar mencari invers matriks menampilkan hasil kepada pengguna Dengan penggunaan modul tersebut program utama akan menjadi lebih singkat dan mudah dilihat.
Membuat Algoritma Dalam membuat algoritma usahakan memenuhi dua (syarat) utama, yaitu : Algoritma harus seefesien mungkin Algoritma harus benar-benar sesuai dengan solusi yang kita dapatkan
Menulis Program Pilihlah bahasa yang mudah dipelajari, mudah digunakan, dan lebih baik lagi jika sudah dikuasai, memiliki tingkat kompatibilitas tinggi dengan perangkat keras dan platform lainnya.
Menguji Program Setelah program jadi, silahkan uji program tersebut dengan segala macam kemungkinan yang ada, termasuk error-handlingnya sehingga program tersebut akan benar-benar handal dan layak digunakan.
Menulis Dokumentasi Menulis dokumentasi sangat penting agar pada suatu saat jika kita akan melakukan perubahan atau membaca source code yang sudah kita tulis dapat kita ingat-ingat lagi dan kita akan mudah membacanya. Caranya adalah dengan menuliskan komentar-komentar kecil tentang apa maksud kode tersebut, untuk apa, variabel apa saja yang digunakan, untuk apa, dan parameter-parameter yang ada pada suatu prosedur dan fungsi.
Sequence Sequence merupakan urut-urutan dalam menjalankan suatu instruksi untuk mencapai tujuan tertentu. Untuk mencapai tujuan tersebut ada banyak cara, sehingga ada banyak cara pula sequence yang bisa dibuat.
Contoh Sequence Tujuan: membuka Microsoft Word Sequence-nya ??? Hidupkan PC. Masukkan password. Klik tombol Start. Klik Microsoft Office. Klik Microsoft Office Word.
... Sequence program kalkulator penjumlahan 2 bilangan? Sequence dari rumah menuju ruang kuliah?
Perjalanan Menuju Kampus Berjalan menuju halte Naik kendaraan menuju kampus Turun di depan kampus Berjalan menuju ruangan kuliah Setiap tujuan kecil sebenarnya terdiri dari banyak instruksi yang mendetil sehingga tujuan tersebut dapat dipastikan akan tercapai
Perjalanan dari rumah menuju ke kampus : Pergi ke halte : Berjalan melalui pintu Menyeberangi jalan raya Berjalan 50 meter ke arah timur Menunggu kendaraan dan naik ke dalam kendaraan : Tunggu sampai kendaraan tiba dan berhenti Masuk ke dalam kendaraan
... Menunggu sampai kendaraan tiba di halte depan kampus : Tunggu sampai kendaraan tiba dan berhenti Turun dari kendaraan dan berjalan menuju kampus : Turun dari kendaraan Berjalan 50 meter ke utara Menyeberangi jalan raya Berjalan melalui pintu gedung
... Urutan dalam pemanggilan instruksi memiliki pengaruh yang sangat besar. Kesalahan urutan dalam pemanggilan instruksi akan berakibat fatal pada hasil yang muncul. Hal penting yang harus juga diperhatikan adalah kondisi (state) sebelum dan sesudah satu/beberapa instruksi diberikan.
Diagram Before After Dapat digambarkan dengan menggunakan diagram before-after. Suatu instruksi akan berjalan pada kondisi awal (initial state) atau kondisi yang dihasilkan oleh instruksi sebelumnya. Instruksi terakhir akan menghasilkan kondisi final (final state)
Diagram Before After menuju Kampus
Instruksi Dasar Intruksi dasar: Ada 4 jenis instruksi yang akan dipakai untuk merencanakan program yang akan dibuat pada pertemuan ini, yaitu : print* : digunakan untuk mencetak satu * dan membuat kursor maju satu langkah. prints : digunakan untuk mencetak satu space kosong (spasi) dan maju satu langkah. NL : digunakan untuk return ke baris berikutnya (enter). print(c): digunakan untuk mencetak karakter c.
Contoh 1 Menampilkan pola: ***** Instruksi-nya: print*;print*;print*; print*;print*;
Current Printing Position (CPP) Kadang kala setelah suatu instruksi dipanggil, hasil yang muncul tidak benar-benar sesuai dengan maksud dari pemanggilan instruksi tersebut. Kondisi awal: HELLO Instruksi: print* Hasil 1 : HELLO* Hasil 2: HELLO * Hal ini dipengaruhi oleh kondisi (state) sesaat sebelum instruksi tersebut dipanggil.
… Terlihat perbedaan pada posisi dari ‘*’ yang tercetak.
.. Pada komputer, hal ini dipengaruhi oleh posisi kursor (garis berkedip) sesaat sebelum dilakukan print* Hal ini dikenal dengan Current Printing Position (CPP) yang menunjukkan posisi pencetakkan jika suatu instruksi dipanggil.
… Misal CCP disimbolkan dengan lambang ◊
New Line dan CPP Instruksi 1: NL; print*; print*; print*; Instruksi 2: print*; print*; print*; NL;
Pengantar Pascal
Penulisan pada Pascal Bentuk dasar dari penulisan program Pascal: uses crt; begin (* tulis perintah di bagian ini *) end. uses crt; memberitahukan pada pascal bahwa program ini akan menggunakan monitor sebagai media output. begin merupakan kata kunci (keyword) yang menandakan awal dari program tersebut. end. Merupakan kata kunci yang menandakan akhir dari program. Perintah-perintah dapat dituliskan di antara begin dan end.
… Masing-masing instruksi diakhiri titik koma (;) yang mana tanda ini sebenarnya diperlukan untuk memisahkan 2 buah instruksi. Pascal bersifat incasesensitive, artinya huruf besar dan kecil dianggap sama. Contoh : BEGIN dengan begin dianggap sama. Komentar: tulisan pada kode program yang tidak dieksekusi oleh compiler. { instruksi } tidak akan dieksekusi atau (* instruksi *) tidak akan dieksekusi
Insturksi Dasar pada Pascal Print* : write(’*’) Printspace : write(’ ’) NL : writeln
Contoh Membuat pola *** dengan Pascal: uses crt; begin clrscr; write('*');write('*');write('*'); readkey; end.
… uses crt; begin clrscr; writeln;write('*');write('*');write('*'); readkey; end.
Try This… uses crt; begin clrscr; write(‘Saya '); writeln(‘sedang'); writeln('Belajar Pascal'); readkey; end.
Tugas Take Home Instal Free Pascal di komputer / laptop masing-masing! Buatlah instruksi untuk membuat pola-pola di bawah ini dan ubahlah ke bahasa Pascal! Buatlah instruksi untuk membuat pola nama masing-masing dan ubahlah ke dalam bahasa Pascal!
Tugas dikerjakan secara individu. Ketentuan Tugas Tugas dikerjakan secara individu. Diprint (tidak perlu dijilid) dan dikumpulkan di Tata Usaha FTI pada hari Senin, 29 September 2014 pukul 10.00 – 12.00 WIB.
… Materi bisa diunduh di: http://ramos672006005.wordpress.com
See You Next Week