Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
TENTANG
OLEH
BAB I PENDAHULUAN
Pada saat kita membuat sebuah program sering kali kita menghadapi permasalahan yang memerlukan pengrutan suatu nilai baik secara langsung atau pun tidak. Misalnya kita melakukan mencari sebuah nilai pada suatu list, permasalahan akan lebih mudah diselesaikan jika kita mengurutkan terlebih dahulu list tersebut dari kecil ke besar, kita tinggal melakukan pencarian nilai tersebut selama nilai tersebut lebih kecil atau sama dengan nilai yang ditelusuri pada list. Jika nilai dari dalam list sudah lebih besar dari nilai yang kita cari berarti sudah pasti nilai yang dicari tersebut tidak ada. Ini jauh lebih efektif dibandingkan mengecek semua nilai pada list tersebut dari awal sampai akhir jika nilai itu tidak ada, ini sangat tidak efektif/ bayangkan jika kita harus mencari satu nilai dalam data yang jumlahnya mencapai jutaan atau milyaran. Sadar atau tidak manusia sering melakukan pengurutan dengan teknik-teknik tertentu dalam kehidupan sehari-hari. Misalnya saat kita bermain kartu remi, kita akan mengambil kartu tersebut dan mengurutkannya dengan cara-cara tertentu. Bila kita mengambil kartu tersebut satu-per-satu dari tumpukannya dan setiap mengambil kita langsung mengurutkannya dalam algoritma pengurutan, cara tersebut adalah implementasi dari insertion sort. Namun bila kartu dibagikan semuanya terlebih dahulu kemudian baru kita kelompokan menurut jenisnya. Kemudian barulah kita urutkan dari paling kecil ke paling besar maka itulah yang disebut selection sort.
Ciri ciri : 1. 2. 3. 4. 5. Sifat : 1. Tidak menggunakan simbol atau sintaks dari suatu bahasa pemrograman. 2. Tidak tergantung pada suatu bahasa pemrograman. 3. Notasi-notasinya dapat digunakan untuk seluruh bahasa manapun. Algoritma dapat digunakan untuk merepresentasikan suatu urutan kejadian secara logis dan dapat diterapkan di semua kejadian sehari-hari Kriteria Pemilihan Algoritma : 1. Ada output : mengacu pada definisi algoritma, suatu algoritma haruslah mempunyai output yang harus merupakan solusi dari masalah yang sedang diselesaikan. 2. Efektifitas dan Efisiensi : dikatakan efektif jika algoritma tersebut menghasilkan suatu solusi yang sesuai dengan masalah yang diselesaikan dalam arti algoritma harus tepat guna.Dikatakan efisiensi jika waktu proses suatu algoritma relatif lebih singkat dan penggunaan memori komputernya lebih sedikit. 3. Jumlah langkahnya berhingga : maksudnya adalah barisan instruksi yang dibuat harus dalam suatu urutan tertentu atau harus berhingga agar masalah yang dihadapi dapat diselesaikan dengan tidak memerlukan waktu relatif lama. 4. Berakhir (Semi Algoritma) : proses didalam mencari penyelesaian suatu masalah harus berhenti dan berakhir dengan hasil akhir yang merupakan solusinya atau berupa informasi yang tidak diketemukan solusinya. Artinya baik dalam kondisi solusi ada atau tidak ada, proses akan tetap harus berakhir dan berhenti. Istilah lain dalam algoritma dikenal sebagai SEMI ALGORITMA, yaitu suatu prosedur yang hanya akan berhenti jika mempunyai atau menghasilkan solusi, sedangkan jika tidak menghasilkan solusi, maka prosedur tersebut akan berjalan tanpa henti. 5. Terstruktur : yaitu urutan barisan langkah-langkah yang digunakan harus disusun sedemikian rupa agar proses penyelesaian tidak berbelit-belit sedemikian sehingga bagian-bagian proses dapat dibedakan dengan jelas mana bagian input, proses dan output sehingga memudahkan user melakukan pemeriksaan ulang. Kesimpulannya: Suatu Algoritma yang terbaik harus menghasilkan output yan tepat guna (efektif) dalam waktu yang relatif singkat & penggunaan memori yang relatif sedikit(efisien) dengan langkah yang berhingga & prosedurnya berakhir baik dalam keadan diperoleh suatu solusi ataupun tidak ada solusinya. Ada input. Ada proses. Ada output. Memiliki instruksi instruksi yang jelas dan tidak ambigu. Harus mempunyai stopping role.
Contoh kasus dalam kehidupan sehari-hari: Algoritma memasak mie instan. 1. 2. 3. 4. 5. Rebus air hingga mendidih. Masukkan mie instan ke dalam air mendidih tersebut. Tunggu beberapa hingga mie terlihat matang. Jika mie sudah dirasa matang, angkat dan tiriskan. Campurkan bumbu-bumbu, dan aduk hingga rata.
Algoritma menghitung luas persegi panjang. 1. 2. 3. 4. Masukkan panjang Masukkan lebar Nilai luas adalah panjang * lebar Tampilkan luas PSEUDOCODE Pseudo-code adalah kode atau tanda yang menyerupai (pseudo) atau merupakan penjelasan cara menyelesaikan suatu masalah. Pseudo-code sering digunakan oleh seseorang untuk menuliskan algoritma dari suatu permasalahan. Pseudo-code berisikan langkah-langkah untuk menyelesaikan suatu permasalahan [hampir sama dengan algoritma], hanya saja bentuknya sedikit berbeda dari algoritma. Pseudo-code menggunakan bahasa yang hampir menyerupai bahasa pemrograman. Selain itu biasanya pseudo-code menggunakan bahasa yang mudah dipahami secara universal dan juga lebih ringkas dari pada algoritma. Beda antara algoritma dan pseudo-code : Contoh algoritma mencari luas persegi panjang
Nilai luas adalah panjang x lebar Luas panjang x lebar Tampilkan luas Print luas
Sebenarnya tidak ada aturan mengikat tentang penulisan algoritma dan pseudo-code, karena guna kedua hal ini adalah untuk memudahkan seseorang untuk menggambarkan urutan suatu kejadian. Biasanya untuk para programmer, guna kedua hal ini adalah sebagai dasar alur pembuatan program. Di mana dapat merepresentasikan alur cerita dari client tentang kebutuhan dasar dari
sebuah program, sehingga lebih mudah untuk dipahami.Jadi pseudo-code bisa dikatakan juga sebagai algortima yang sudah sedikit digabungkan dengan bahasa pemrograman yang akan digunakan. Contoh lain : Matematika Bizz Buzz Fortran style pseudo code program bizzbuzz do i = 1 to 100 set print_number to true if i is divisible by 3 print "Bizz" set print_number to false if i is divisible by 5 print "Buzz" set print_number to false if print_number, print i print a newline end do Pascal style pseudo code procedure bizzbuzz for i := 1 to 100 do set print_number to true; if i is divisible by 3 then print "Bizz"; set print_number to false; if i is divisible by 5 then print "Buzz"; set print_number to false; if print_number, print i; print a newline; end C style pseudo code void function bizzbuzz for (i = 1; i<=100; i++) { set print_number to true; if i is divisible by 3 print "Bizz"; set print_number to false; if i is divisible by 5 print "Buzz"; set print_number to false; if print_number, print i; print a newline; }
FLOWCHART Flowchart dalam Bahasa Indonesia diterjemahkan sebagai Diagram Alir. Dari dua kata ini, maka dapat kita bayangkan bahwa flowchart itu berbentuk diagram yang bentuknya dapat mengalirkan sesuatu. Hal ini memang benar, flowchart memang melukiskan suatu aliran kegiatan dari awal hingga akhir mengenai suatu langkah-langkah dalam penyelesaian suatu masalah. Masalah tersebut bisa bermacam-macam, mulai dari masalah yang sederhana sampai yang kompleks. Masalah yang kita pelajari tentu saja masalah pemrograman dengan menggunakan komputer, tetapi secara logika dapat kita awali dengan mengamati permasalahan dalam kehidupan sehari-hari kita. Flowchart adalah representasi grafik dari langkah-langkah yang harus diikuti dalam menyelesaikan suatu permasalahan yang terdiri atas sekumpulan simbol, dimana masing-masing simbol merepresentasikan suatu kegiatan tertentu. Flowchart diawali dengan penerimaan input, pemrosesan input, dan diakhiri dengan penampilan output. Simbol-simbol Flowchart :
Contoh Flowchart :