Algoritma - Pengenalan Analisis

Mengenal atau mempelajari algoritma, sangatlah penting, apalagi jika anda seorang yang berkecimpung pada pengembangan perangkat lunak, karena itu merupakan salah satu dasar ilmu komputer. Disini kita akan melakukan beberapa pekerjaan matematika dan sains. Tidak banyak namun kita harus memiliki dasar ilmiah untuk memahami kinerja algoritma ketika menerapkannya secara benar dalam praktek. Kita akan coba membahas tentang “how to”, mengamati kinerja karakteristik algoritma. Anda nantinya akan melihat bagaimana membuat model matematika dan bagaimana mengklasifikasikan algoritma sesuai dengan order of growth dari running time atau kecepatan prangkat lunak mereka.

photo/photo/arrows-box-business-chalk-533189/

Sebenarnya secara simple juga, pembahasannya juga mencakup tentang teori algoritma dan juga cara menganalisis pemakaian memori. Jadi untuk menempatkan ini semua dalam perspektif, kita akan berpikir tentang masalah dari sudut pandang berbagai jenis karakter.

Yang pertama adalah programmer, yang dibutuhkan dalam memecahkan masalah dan membuatnya berfungsi dan kemudian mengembangkannya. Yang kedua adalah klien yang ingin menggunakan program apa pun untuk menyelesaikan pekerjaan mereka.

Yang ketiga adalah Theoretician, mereka ingin paham bagaimana cara kerjanya, atau bagaimana bisa terjadi hal seperti itu dalam penyelesaian masalah. Dan yang terakhir adalah tim, basic blocking dan tackling.

Maka ketika anda mempelajari hal diatas, apalagi anda seorang siswa atau seseorang yang sedang belajar tentang program, anda harus paham keempat bagian diatas. Maka disini kita akan fokuskan ke algoritma running time. Waktu yang diperlukan running time) oleh sebuah algoritma cenderung tergantung pada jumlah input yang diproses. Running time ini merupakan fungsi dari jumlah inputnya namun tidak terikat pada platform (mesin + OS), bahasa pemrograman, kualitas kompilator atau bahkan paradigma pemrograman.

Mengutip perkataan Charles Babbage, mesin analisis akan sangat cepat dalam memandu masa depan suatu sains. Makanya mesin babbage juga disebut mesin analisis. Jadi, ada banyak alasan untuk menganalisis algoritma. Dalam konteks ini Tentu saja kami terutama tertarik pada prediksi kinerja. Dan kami juga menginginkannya untuk membandingkan kinerja algoritma yang berbeda untuk tugas yang sama. Anda juga harus paham berapa dasar teoritis untuk bagaimana kinerja algoritma.

Ketika anda menjalankan algoritma, pahami 3 hal ini:

  • Masalah, yaitu sebuah persoalan yang ingin diselesaikan oleh sebuah algoritma. Kadang Pengurutan sekumpulan nilai yang bernilai acak.

  • Masukan, merupakan contoh data atau keadaan yang menjadi permasalahan, seperti Serangkaian data berukuran $n$.

  • Keluaran, yaitu bentuk akhir dari data setelah algoritma yang diimplementasikan ke masukan. Serangkaian data berukuran $n$, dengan urutan a1 ≤ a2 ≤ a3 ≤ … ≤ an−1 ≤ an, Jadi Keluaran merupakan hasil ideal yang diinginkan dan dianggap telah menyelesaikan masalah.

Harus dipahami juga bahwa dalam membuat algoritma, haruslah membuat algoritma yang baik, karena tidak mungkin kita mau menggunakan algoritma yang salah untuk menyelesaikan masalah karena hal ini dapat menyebabkan masalah tidak diselesaikan dengan optimal. Misalnya ketika anda membuat algoritma, namun klien mendapatkan kinerja buruk, karena programmer melakukannya namun tidak memahami karakteristik kinerja dari algoritma. Sehingga sangat wajar jika kita akan fokus pada kinerja dan membandingkan algoritma, dasar teoritis dari algoritma, dan mempunyai kemampuan memprediksi kinerja dan membandingkan algoritma.

Anda harus paham algoritma yang benar mencakup, Benar, algoritma harus menyelesaikan masalah dengan tepat, sesuai dengan definisi masukan / keluaran algoritma yang diberikan. Kemudian Efisien, artinya algoritma benar menyelesaikan masalah tanpa memberatkan bagian lain dari aplikasi. Maka sangat keliru jika algoritma malah menggunakan sumber daya (memori, CPU) yang besar dan memberatkan aplikasi yang mengimplementasikan algoritma tersebut. Dan terakhir Mudah diimplementasikan, maksudnya algoritma harus dapat dimengerti dengan mudah sehingga implementasi algoritma dapat dilakukan siapapun dengan pendidikan yang tepat.

Jadi penting, dalam materi yang akan berlanjut berseri nanti, tantangan yang biasanya kita hadapi adalah, apakah program saya bisa untuk memecahkan input praktis yang besar? Dan programmer yang bekerja bagaimana hasilnya jika dihadapkan sepanjang waktu. Mengapa, mengapa program saya berjalan sangat lambat? Mengapa kehabisan memori? Dan itulah yang dihadapi programmer untuk waktu yang sangat lama dan anda harus punya wawasan untuk mengatasi ini. Sekian sekilas Pengenalan Analisis Algoritma, dimateri selanjutnya mudah-mudahan akan berkembang menjadi pembahasan yang menarik yang bisa menambah pemahaman tentang algoritma.