Bagaimana algoritma dapat disebut sebagai jantung dari teknik informatika/ilmu komputer?

Algoritma merupakan jantung dari teknik informatika/ilmu komputer. Apakah tanggapan Anda terhadap pernyataan tersebut? Dan bagaimana algoritma dapat disebut seperti itu ? :writing_hand:t2:

1 Like

1_2


Pertama-tama, kita harus mengetahui apa itu algoritma. Algoritma merupakan sekumpulan perintah untuk menyelesaikan suatu masalah. Masalah ini bisa apa saja, asalkan diberi perintah yang benar. Misalnya, ketika mau minum maka buatlah perintah/langkah dengan urutan perintah yang benar. Apabila ada urutan yang salah, maka mungkin berakhir membuat kekacauan.


Dalam bidang komputer (teknik informatika/ilmu komputer), algoritma sering digunakan sebagai perancangan untuk menyelesaikan suatu masalah atau untuk proses pengambil keputusan. Kejelasan algoritma tentu saja sangat dipentingkan, karena algoritmalah yang merupakan pondasi, seperti apabila kita mempunyai rencana, kita harus tau apa yang kita lakukan terlebih dahulu sebelum bertindak. Inilah sebabnya mengapa algoritma disebut jantung dari teknik informatika/ilmu komputer, karena dalam dunia komputer, algoritma memiliki peranan yang sangat penting.


Alasan lain algoritma sebagai jantung dari teknik informatika/ilmu komputer, disebabkan banyaknya cabang ilmu komputer yang diacu dalam terminalogi algoritma, contohnya sebagai berikut :

  • Algoritma bresenham, untuk menggambar garis lurus (bidang grafik komputer).
  • Algoritma perutean (routing), yaitu suatu sistem algoritma yang digunakan untuk mendapatkan rute dari satu jaringan ke jaringan yang lain.
  • Algoritma Knuth-Morris-Pratt, berguna untuk mencari pola tertentu dalam teks (bidang information retrievel).

Alasan lain selanjutnya, karena pada dasarnya setiap software tersusun dari kerangka algoritma, yang terbalut bahasa pemrograman. Sederhananya jika algoritma yang dipakai sama, maka bahasa pemrograman apapun yang dipakai pasti akan menghasilkan nilai yang sama pula.


Bentuk dasar Algoritma

Algoritma mempunyai 3 bentuk dasar yaitu :

  1. Algoritma Sukuensial
    Yaitu bentuk algoritma yang paling dasar , dimana langkah-langkanya berurutan tanpa adanya perulangan dan percabangan, contohnya langkah-langkah menghidupkan komputer.

    a. Masukan colokan listrik ke dalam stop kontak.
    b. Hidupkan monitor dengan cara menekan tompol power pada monitor .
    c. Hidupkan CPU atau motherboard dengan menekan tombol power pada CPU .
    d. Tunggu Hingga proses Booting Selesai sampai layar desktop muncul.
    e. Computer sudah siap di pakai.

  2. Algoritma perulangan (looping)
    Yaitu bentuk algoritma yang mempunyai perulangan didalamnya sehingga urutan langkah kembali ke langkah sebelumnya, contohnya algoritma menjemur pakaian

    a. Siapkan jemuran.
    b. Ambil satu pakaian yang nantinya akan dijemur.
    c. Peras pakaian tersebut terlebih dahulu.
    d. Letakkan pakaian tersebut pada tiang jemuran.
    e. Ulangi langkah dari 2 sampai 4 hingga pakaian habis.

    Dari algoritma di atas, diketahui dari langkah 2 sampai 4 harus dilakukan secara berulang-ulang sampai suatu batas tertentu yaitu pakaian habis.

  3. Algoritma Percabangan atau bersyarat (Conditional Algorithm)
    Berbeda dengan dua bentuk lainnya algoritma percabangan dapat mempunyai lebih dari satu buah kemungkinan langkah yang diambil, tergantung kondisi dari langkah sebelumnya, contohnya dapat dilihat dari algoritma pembagian gaji karyawan.

    a. Siapkan daftar nama karyawan.
    b. Baca data lama bekerja, karyawan tersebut.
    c. Jika karyawan tersebut telah bekerja lebih dari 2 tahun maka akan memperoleh gaji sebesar 3 juta rupiah, jika tidak maka akan mendapatkan gaji 2 juta rupiah.
    d. Cetak gaji yang diperoleh.
    e. Dapat dilihat, dari algoritma diatas, walaupun langkahnya sama tetapi setiap karyawan berkemungkinan mendapatkan jumlah gaji yang berbeda , tergantung lama bekerjanya.


Algoritma yang baik

Ada beberapa syarat yang harus dipenuhi untuk membuat algorima yang dapat diimplementasikan ke dalam software yaitu :

  1. Masukan (Input) algoritma mempunyai input 0 atau lebih,

  2. Keluaran (Output) algoritma harus menghasilkan 1 nilai atau lebih, jadi algoritma tidak dapat dikatakan baik , jika tidak menghasilkan output apapun dari input yang dimasukan.

  3. Terbatas (Finite) algoritma harus berhenti setelah melakukan langkah-langkah tertentu, sangat mungkin algoritma mempunyai nilai output yang tak terbatas (infinite algorithm) biasanya terjadi pada algoritma perulangan (looping) contoh sederhananya misal :

    a. Ketik kata “maaf”.
    b. Ulangi dari langkah pertama.
    c. Mungkin terlihat sederhana, tetapi algoritma diatasa tidak mempunyai batas, karena setelah langkah kedua, akan kembali ke langkah pertama dan seterusnya.

  4. Pasti
    Algoritma harus pasti jelas kapan dimulai dan berakhir. begitu pula dengan tujuan algoritma tersebut…

  5. Efisien
    Membuat sebuah algoritma haruslah efisien. Adanya langkah seperti mencari hasil 2 dikali 1 tidak efisien. Hal ini karena bilangan apapun itu jika dikali dengan satu maka hasilnya ialah bilangan itu sendiri. Sehingga ada tidaknya langkah seperti itu tidak berpengaruh dalam sebuah algoritma.


SUMBER :
http://www.bbc.co.uk/guides/z3whpv4
https://kujangcode.com/blog/2017/03/02/jantung-ilmu-informatika-algoritma/

1 Like

Algoritma berhubungan dengan pemrograman, pemrograman identik dengan teknik informatika. “Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis”. Kata logis merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma adalah, pertama, algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah, pastilah algoritma tersebut bukanlah algoritma yang baik.


Pertimbangan kedua yang harus diperhatikan adalah kita harus mengetahui seberapa baik hasil yang dicapai oleh algoritma tersebut. Hal ini penting terutama pada algoritma untuk menyelesaikan masalah yang memerlukan aproksimasi hasil (hasil yang hanya berupa pendekatan). Algoritma yang baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai yang sebenarnya.


Ketiga adalah efisiensi algoritma. Efisiensi algoritma dapat ditinjau dari 2 hal yaitu efisiensi waktu dan memori. Meskipun algoritma memberikan keluaran yang benar (paling mendekati), tetapi jika kita harus menunggu berjam-jam untuk mendapatkan keluarannya, algoritma tersebut biasanya tidak akan dipakai, setiap orang menginginkan keluaran yang cepat. Begitu juga dengan memori, semakin besar memori yang terpakai maka semakin buruklah algoritma tersebut. Dalam kenyataannya, setiap orang bisa membuat algoritma yang berbeda untuk menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun algoritma, tentunya kita mengharapkan keluaran yang sama. Jika terjadi demikian, carilah algoritma yang paling efisien dan cepat.


Dalam dunia komputer dikenal beraneka ragam bahasa pemrograman. Karena begitu banyaknya, maka bahsa-bahasa tersebut dikelompokkan berdasarkan kriteria tertentu. Ada yang mengelompokkan menurut tingkatan bahasa, yaitu high level, middle level, dan low level. Ada juga yang mengelompokkannya menjadi procedural/functioning programming, object orietend programming, dan sebagainya. Pada dasarnya bahasa-bahasa pemrograman tersebut memiliki bagian-bagianyang serupa. Yang membedakan hanyalah tata bahasa yang digunakan.


Algoritma Merupakan Jantung Ilmu Informatika

Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer yang mengarah ke dalam terminologi algoritma. Namun, jangan beranggapan algoritma selalu identik dengan ilmu komputer saja. Dalam kehidupan sehari-hari pun banyak terdapat proses yang dinyatakan dalam suatu algoritma. Cara-cara membuat kue atau masakan yang dinyatakan dalam suatu resep juga dapat disebut sebagai algoritma. Pada setiap resep selalu ada urutan langkah-langkah membuat masakan.

Bila langkah-langkahnya tidak logis, tidak dapat dihasilkan masakan yang diinginkan. Ibu-ibu yang mencoba suatu resep masakan akan membaca satu per satu langkah-langkah pembuatannya lalu ia mengerjakan proses sesuai yang ia baca. Secara umum, pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut dapat berupa manusia, komputer, robot atau alat-alat elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau “mengeksekusi” algoritma yang menjabarkan proses tersebut.

Algoritma adalah deskripsi dari suatu pola tingkah laku yang dinyatakan secara primitif yaitu aksi-aksi yang didefenisikan sebelumnya dan diberi nama, dan diasumsikan sebelumnya bahwa aksi-aksi tersebut dapat kerjakan sehingga dapat menyebabkan kejadian.

Melaksanakan algoritma berarti mengerjakan langkah-langkah di dalam algoritma tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya. Juru masak membuat kue berdasarkan resep yang diberikan kepadanya, pianis memainkan lagu berdasarkan papan not balok. Karena itu suatu algoritma harus dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses. Jadi suatu pemroses harus:

  • Mengerti setiap langkah dalam algoritma.
  • Mengerjakan operasi yang bersesuaian dengan langkah tersebut.

Sumber

https://andikafisma.wordpress.com/algoritma-dan-pemrograman/
http://rianditaa.blogspot.co.id/2013/01/pentingnya-algoritma-dalam-bahasa.html

ALGORITMA


Ditinjau dari asal usul katanya, kata algoritma sediri memiliki sejarah yang cukup aneh (Rinaldi Munir, 2011), karena kata ini tidak muncul di kampus Webster sampai akhir 1957. Kata Algorism yang berarti menghitung dengan angka-angka Arab (Donald E. Knuth, 1973). Hingga pada akhirnya para ahli sejarah matematika menemukan bahwa kata Algorism berasal dari nama penulis buku (matematika) Arab yang terkenal, yaitu Abu Ja’far Muhammad ibnu Musa al-Khawarizmi yang dibaca dalam bahasa orang barat menjadi Algorism). Al-Khawarizmi sendiri adalah penulis buku kitab al jabar wal-muqabala yang artinya “buku pemugaran dan pengurangan” (the book of restoration and reduction). Dari buku itulah kita mengenal kata aljabar (algebra) yang dipelajari di ilmu matematika.

Perubahan kata dari algorism menjadi algorithm muncul karena kata algorism sering dikeluarkan dengan arithmatic, sehingga akhiran –sm berubah menjadi –thm. Karena angka Arab sudah menjadi hal yang sudah biasa digunakan dalam perhitungan, selain itu angka Arab lebih mudah untuk hitungan dari pada angka Romawi, maka berangsur-angsur algorith dipakai sebagai metode perhitungan (komputasi) secara umum (Thomas W. Parsons, 1995). Dalam bahasa Indonesia, algorithm diserap menjadi kata algoritma.
Kata algoritma sendiri pertama kali digunakan pada “algoritma Eucliden” (Euclid’s Algorithm). Euclid sendiri adalah seorang matematikawan Yunani yang lahir pada tahun 350M, dalam bukunya yang berjudul Element. Euclid sendiri tidak menyebut metode ini sebagai algoritma, karena baru pada abad modernlah orang-orang menyebut metode ini sebagi algoritma Euclidean.

Dalam MATEMATIKA dan KOMPUTASI, algoritma atau algoritme merupakan kumpulan perintah untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat diterjemahkan secara bertahap dari awal hingga akhir. Masalah tersebut dapat berupa apa saja, dengan catatan untuk setiap masalah, ada kriteria kondisi awal yang harus dipenuhi sebelum menjalankan algoritma. Algoritma akan dapat selalu berakhir untuk semua kondisi awal yang memenuhi kriteria, dalam hal ini berbeda dengan HEURISTIK. Algoritma sering mempunyai langkah pengulangan atau memerlukan keputusan (LOGIKA BOOLEAN dan PERBANDINGAN) sampai tugasnya selesai.

JANTUNG INFORMATIKA ???


Kenapa sih Algoritma dikatakan jantung dari informatika?
Dikatakan jantung informatika karena banyaknya cabang ilmu komputer yang diacu dalam terminologi algoritma, contohnya sebagai berikut :

  • Algoritma berensenham untuk menggambar garis lurus (bidang grafik komputer).
  • Algoritma perutean (routing) yaitu suatu sistem algoritma yang digunakan untuk mendapatkan rute dari satu jaringan ke jaringan yang lain.
  • Algoritma Knuth-Morris-Pratt yang berguna untuk mencari pola tertentudalam teks (bidang information retrievel).

Algoritma juga dikatakan sebagai jantung ilmu informatika karena, pada dasarnya setiap software tersusun dari kerangka algoritma, yang terbalut bahasa pemrograman. Sederhananya jika algoritma yang dipakai sama maka bahasa pemrograman apapun yang dipakai maka akan menghasilkan nilai yang sama pula.

BERAPA DEFINISI ALGORITMA


  1. Algoritma secara singkat merupakan prosedur yang berisi langkah-langkah penyelesaian masalah (Rinaldi Munir, Algoritma dan Pemprograman. 2011)

  2. Algoritma adalah deretan instruksi yang jelas untuk memecahkan masalah, yaitu untuk memperoleh keluaran yang diinginkan dari suatu masukan dalam jumlah waktu yang terbatas (Anany Levitin, Introduction to The Design and Analisys of Algorithms.2003)

  3. Algoritma adalah prosedur komputasi yang terdefinisi dengan baik yang menggunakan beberapa nilai sebagai masukan dan menghasilkan beberapa nilai yang disebut keluaran(Thomas H. Cormen, Abstract Data Types, 1989. Atau bisa disebuth juga sebagai deretan langkah komputasi yang mentransformasi masukan menjadi keluaran) (Thomas H. Cormen, Introduction to Algorithms. 1990)

  4. Algoritma adalah urutan langkah-langkah berhingga untuk memecahkan masalah logika atau matematika (Microsoft Press Computer and Internet Dictionary, 1998).

JENIS-JENIS ALGORITMA


Terdapat beragam klasifikasi algoritma dan setiap klasifikasi mempunyai alasan tersendiri. Salah satu cara untuk melakukan klasifikasi jenis-jenis algoritma adalah dengan memperhatikan paradigma dan metode yang digunakan untuk mendesain algoritma tersebut. Beberapa paradigma yang digunakan dalam menyusun suatu algoritma akan dipaparkan dibagian ini. Masing-masing paradigma dapat digunakan dalam banyak algoritma yang berbeda.

  • Divide and Conquer, paradigma untuk membagi suatu permasalahan besar menjadi permasalahan-permasalahan yang lebih kecil. Pembagian masalah ini dilakukan terus menerus sampai ditemukan bagian masalah kecil yang mudah untuk dipecahkan. Singkatnya menyelesaikan keseluruhan masalah dengan membagi masalah besar dan kemudian memecahkan permasalahan-permasalahan kecil yang terbentuk.

  • Dynamic programming, paradigma pemrograman dinamik akan sesuai jika digunakan pada suatu masalah yang mengandung sub-struktur yang optimal (, dan mengandung beberapa bagian permasalahan yang tumpang tindih . Paradigma ini sekilas terlihat mirip dengan paradigma Divide and Conquer, sama-sama mencoba untuk membagi permasalahan menjadi sub permasalahan yang lebih kecil, tapi secara intrinsik ada perbedaan dari karakter permasalahan yang dihadapi.

  • Metode serakah. Sebuah algoritma serakah mirip dengan sebuah Pemrograman dinamik, bedanya jawaban dari submasalah tidak perlu diketahui dalam setiap tahap; dan menggunakan pilihan “serakah” apa yang dilihat terbaik pada saat itu.

SUMBER