Apa Itu Algoritma Komputer, dan Bagaimana Cara Kerjanya?

Diterbitkan: 2022-01-29

Kecuali Anda menyukai matematika atau pemrograman, kata "algoritma" mungkin bahasa Yunani bagi Anda, tetapi itu adalah salah satu blok bangunan dari semua yang Anda gunakan untuk membaca artikel ini. Berikut penjelasan singkat tentang apa itu, dan bagaimana cara kerjanya.

Penafian: Saya bukan guru matematika atau ilmu komputer, jadi tidak semua istilah yang saya gunakan bersifat teknis. Itu karena saya mencoba menjelaskan semuanya dalam bahasa Inggris sederhana untuk orang-orang yang tidak nyaman dengan matematika. Yang sedang berkata, ada beberapa matematika yang terlibat, dan itu tidak dapat dihindari. Geeks matematika, jangan ragu untuk mengoreksi atau menjelaskan lebih baik di komentar, tapi tolong, tetap sederhana untuk matematis di antara kita.

Gambar oleh Ian Ruotsala

Apa itu Algoritma?

Kata 'algoritma' memiliki etimologi yang mirip dengan 'aljabar', kecuali bahwa ini merujuk pada ahli matematika Arab itu sendiri, al-Khawarizmi (hanya berita gembira yang menarik). Sebuah algoritma, untuk non-programmer di antara kita, adalah satu set instruksi yang mengambil input, A, dan memberikan output, B, yang mengubah data yang terlibat dalam beberapa cara. Algoritma memiliki berbagai macam aplikasi. Dalam matematika, mereka dapat membantu menghitung fungsi dari titik dalam kumpulan data, di antara hal-hal yang jauh lebih canggih. Selain penggunaannya dalam pemrograman itu sendiri, mereka memainkan peran utama dalam hal-hal seperti kompresi file dan enkripsi data.

Satu Set Dasar Instruksi

Katakanlah teman Anda bertemu Anda di toko kelontong dan Anda membimbingnya ke arah Anda. Anda mengatakan hal-hal seperti "masuk melalui pintu sisi kanan," "lewati bagian ikan di sebelah kiri," dan "jika Anda melihat produk susu, Anda melewati saya." Algoritma bekerja seperti itu. Kita dapat menggunakan diagram alur untuk mengilustrasikan instruksi berdasarkan kriteria yang kita ketahui sebelumnya atau mengetahuinya selama proses.

(gambar berjudul "Icebreaking Routine" EDIT: milik Pemicu dan Freewheel)

Iklan

Dari MULAI, Anda akan menyusuri jalan setapak, dan tergantung pada apa yang terjadi, Anda mengikuti "aliran" ke hasil akhir. Flowchart adalah alat visual yang dapat lebih dimengerti mewakili satu set instruksi yang digunakan oleh komputer. Demikian pula, algoritme membantu melakukan hal yang sama dengan lebih banyak model berbasis matematika.

Grafik

Mari kita gunakan grafik untuk mengilustrasikan berbagai cara kita dapat memberikan arah.

Kita dapat menyatakan grafik ini sebagai hubungan antara semua titik-titiknya. Untuk mereproduksi gambar ini, kami dapat memberikan serangkaian instruksi kepada orang lain.

Metode 1

Kita dapat menyatakannya sebagai deret titik, dan informasinya akan mengikuti bentuk standar grafik = {(x1, y1), (x2, y2), …, (xn, yn)}.

grafik = {(0,0), (3,0), (3,3), (5,5), (7,10), (8,7), (9,4), (10,1) }

Cukup mudah untuk memplot setiap titik, satu demi satu, dan menghubungkannya ke titik sebelumnya. Namun, bayangkan grafik dengan seribu titik atau beberapa segmen semuanya bergerak ke segala arah. Daftar itu akan memiliki banyak data, bukan? Dan kemudian harus menghubungkan masing-masing, satu per satu, bisa menyebalkan.

Metode 2

Hal lain yang dapat kita lakukan adalah memberikan titik awal, kemiringan garis antara itu dan titik berikutnya, dan menunjukkan di mana mengharapkan titik berikutnya menggunakan bentuk standar grafik={(titik awal}, [m1, x1, h1 ], …, [mn, xn, hn]} Di sini, variabel 'm' mewakili kemiringan garis, 'x' mewakili arah untuk menghitung (apakah x atau y), dan 'h' memberi tahu Anda bagaimana banyak yang harus dihitung dalam arah tersebut. Anda juga dapat mengingat untuk merencanakan satu titik setelah setiap gerakan.

grafik = {(0,0), [0,x,3], [0,y,3], [1,x,2], [2.5,x,2], [-3,x,1], [-3,x,1], [-3,x,1]}

Iklan

Anda akan berakhir dengan grafik yang sama. Anda dapat melihat bahwa tiga suku terakhir dalam ekspresi ini sama, jadi kita mungkin dapat memangkasnya dengan hanya mengatakan "ulangi tiga kali" dalam beberapa cara. Katakanlah setiap kali Anda melihat variabel 'R' muncul, itu berarti mengulang hal terakhir. Kita bisa melakukan ini:

grafik = {(0,0), [0,x,3], [0,y,3], [1,x,2], [2.5,x,2], [-3,x,1], [R=2]}

Bagaimana jika poin individu tidak terlalu penting, dan hanya grafik itu sendiri yang penting? Kami dapat menggabungkan tiga bagian terakhir seperti ini:

grafik = {(0,0), [0,x,3], [0,y,3], [1,x,2], [2.5,x,2], [-3,x,3]}

Ini mempersingkat hal-hal sedikit dari tempat mereka sebelumnya.

Metode 3

Mari kita coba lakukan ini dengan cara lain.

y=0, 0≤x≤3
x=0, 0≤y≤3
y=x, 3≤x≤5
y=2,5x-7,5, 5≤x≤7
y=-3x+29, 7≤x≤8
y=-3x+29, 8≤x≤9
y=-3x+29, 9≤x≤10

Di sini kita memilikinya dalam istilah aljabar murni. Sekali lagi, jika poin itu sendiri tidak penting dan hanya grafik yang penting, kita dapat menggabungkan tiga item terakhir.

y=0, 0≤x≤3
x=0, 0≤y≤3
y=x, 3≤x≤5
y=2,5x-7,5, 5≤x≤7
y=-3x+29, 7≤x≤10

Sekarang, metode mana yang Anda pilih tergantung pada kemampuan Anda. Mungkin Anda hebat dengan matematika dan grafik, jadi Anda memilih opsi terakhir. Mungkin Anda pandai bernavigasi, sehingga Anda memilih opsi kedua. Namun, di dunia komputer, Anda melakukan berbagai jenis tugas dan kemampuan komputer tidak benar-benar berubah. Oleh karena itu, algoritma dioptimalkan untuk tugas yang mereka selesaikan.

Poin penting lainnya yang perlu diperhatikan adalah bahwa setiap metode bergantung pada kunci. Setiap rangkaian instruksi tidak berguna kecuali Anda tahu apa yang harus dilakukan dengannya. Jika Anda tidak tahu bahwa Anda seharusnya memplot setiap titik dan menghubungkan titik-titik itu, kumpulan titik pertama tidak berarti apa-apa. Kecuali Anda tahu apa arti setiap variabel dalam metode kedua, Anda tidak akan tahu bagaimana menerapkannya, seperti kunci untuk sebuah sandi. Kunci itu juga merupakan bagian integral dari penggunaan algoritme, dan seringkali, kunci itu ditemukan di komunitas atau melalui "standar".

Kompresi File

Saat Anda mengunduh file .zip, Anda mengekstrak kontennya sehingga Anda dapat menggunakan apa pun yang ada di dalamnya. Saat ini, sebagian besar sistem operasi dapat menyelami file .zip seperti folder normal, melakukan segala sesuatu di latar belakang. Pada mesin Windows 95 saya lebih dari satu dekade yang lalu, saya harus mengekstrak semuanya secara manual sebelum saya dapat melihat apa pun selain nama file di dalamnya. Itu karena apa yang disimpan di disk sebagai file .zip tidak dalam bentuk yang dapat digunakan. Pikirkan sofa tarik. Saat Anda ingin menggunakannya sebagai tempat tidur, Anda harus melepas bantal dan membuka lipatannya, yang memakan lebih banyak ruang. Saat Anda tidak membutuhkannya, atau Anda ingin membawanya, Anda dapat melipatnya kembali.

Iklan

Algoritme kompresi disesuaikan dan dioptimalkan secara khusus untuk jenis file yang ditargetkan. Format audio, misalnya, masing-masing menggunakan cara yang berbeda untuk menyimpan data yang, ketika diterjemahkan oleh codec audio, akan memberikan file suara yang mirip dengan bentuk gelombang aslinya. Untuk informasi lebih lanjut tentang perbedaan itu, lihat artikel kami sebelumnya, Apa Perbedaan Antara Semua Format Audio Itu? Format audio lossless dan file .zip memiliki satu kesamaan: keduanya menghasilkan data asli dalam bentuk persisnya setelah proses dekompresi. Codec audio lossy menggunakan cara lain untuk menghemat ruang disk, seperti memangkas frekuensi yang tidak dapat didengar oleh telinga manusia dan menghaluskan bentuk gelombang di beberapa bagian untuk menghilangkan beberapa detail. Pada akhirnya, meskipun kita mungkin tidak dapat benar-benar mendengar perbedaan antara trek MP3 dan CD, pasti ada kekurangan informasi di trek sebelumnya.

Enkripsi data

Algoritma juga digunakan saat mengamankan data atau jalur komunikasi. Alih-alih menyimpan data sehingga menggunakan lebih sedikit ruang disk, itu disimpan dengan cara yang tidak terdeteksi oleh program lain. Jika seseorang mencuri hard drive Anda dan mulai memindainya, mereka dapat mengambil data bahkan ketika Anda menghapus file karena data itu sendiri masih ada, meskipun lokasi penerusannya hilang. Saat data dienkripsi, apa pun yang disimpan tidak terlihat seperti apa adanya. Biasanya terlihat acak, seolah-olah fragmentasi telah menumpuk seiring waktu. Anda juga dapat menyimpan data dan membuatnya muncul sebagai jenis file lain. File gambar dan file musik bagus untuk ini, karena ukurannya bisa sangat besar tanpa menimbulkan kecurigaan, misalnya. Semua ini dilakukan dengan menggunakan algoritme matematika, yang mengambil beberapa jenis masukan dan mengubahnya menjadi jenis keluaran lain yang sangat spesifik. Untuk informasi lebih lanjut tentang cara kerja enkripsi, lihat Penjelasan HTG: Apa itu Enkripsi dan Bagaimana Cara Kerjanya?


Algoritma adalah alat matematika yang menyediakan berbagai kegunaan dalam ilmu komputer. Mereka bekerja untuk menyediakan jalur antara titik awal dan titik akhir dengan cara yang konsisten, dan memberikan instruksi untuk mengikutinya. Tahu lebih dari apa yang kami soroti? Bagikan penjelasan Anda di komentar!