Algoritma nedir? Algoritma ne işe yarar ve neden gereklidir?

Photo by Michael Dziedzic on Unsplash

Algoritma nedir?

Arkadaşlar merhaba, bugün algoritmadan bahsedeceğim. Algoritma nedir, algoritmanın matematikte ve yazılımda yeri nedir, nerelerde kullanılır, günlük hayatımızda algoritmanın yeri nedir, algoritma ne işe yarar, algoritmayı nasıl kullanabiliriz ve nasıl öğreniriz, sizde merak ediyor ve öğrenmek istiyorsanız gelin açıkladıktan sonra örneklerle hep birlikte öğrenelim.

Algoritmanın sözlük anlamına bakarsak; bir problemi, sorunu çözmek için veya bir sonuca ulaşmak için tasarladığımız kısaca takip ettiğimiz işlem adımlarına algoritma diyoruz. Ve ya bunu farklı kelimelerle anlatırsak; belirli bir amaç doğrultusunda yapılan bir işi hatasız yapabilmemiz için izlememiz gereken adım sırasına algoritma diyoruz. TDK’da ise algoritma, Orta Çağda ondalık sayı sistemine göre, son zamanlarda ise iyi tanımlanmış kuralların ve işlemlerin adım adım uygulanmasıyla bir sorunun giderilmesi veya sonuca en hızlı biçimde ulaşılması işlemi, Harezmi yolu olarak tanımlanmıştır. Peki, Harezmi yolu nedir diye merak ediyorsunuz hemen açıklayalım; ilk algoritmadan Harezmi tarafından yazılan ‘Hisab-el Cebir ve El Mukabala’ kitabında bahsedilmiştir ve hatta algoritma kelimesi El-Harezmi’nin isminden gelmiştir.

Aynı şekilde terimsel olarak baktığımızda algoritmaları genel olarak matematik ve programlama da bir işi yapmak için takip edilen sonlu işlem kümeleridir. Peki sonlu işlem kümesi nedir diyorsanız; bir başlangıç durumundan başlayıp, belirli bir bitiş durumunda sona eren işlemlerdir.

ALGORİTMA NE İÇİN KULLANILIR NE İŞE YARAR?

Algoritma nedir ve algoritmanın asıl amacının problemlemleri doğru bir şekilde çözmek olduğundan bahsettim. Bakın çok basit aslında günlük hayatınızda yaptığınız bir çok şeyi algoritmaları kullanarak yapıyorsunuz da peki neden farkında değilim gibi bir soru geldiğini varsayarak size cevap vereyim; günlük hayatınızda yaptığınız bir çok şey rutinleşmiş durumda çünkü farklı planlar yapmadığınız sürece yaptığınız şeyler dünküyle aynı ve yarınki ile de aynı olacak, bu rutinlik alışılmışlık size algoritmalar doğrultusunda karar verip bir şeyler yaptığınızı fark ettirmiyor. Şöyle düşünelim, tatil için plan yapıyorsunuz bütçenizi, vaktinizi ve kişi sayısını göz önünde bulundurarak bir yol seçiyorsunuz ve o yoldan ilerliyorsunuz. Örneğin dört kişiyiz otobüsle mi gidelim arabamızla mı gidelim, rahatlık mı bütçe mi buna göre evet ya da hayır diyorsunuz, otelde mi kalalım pansiyonda mı kalalım veya kamp mı yapalım, işte aslında burada izlediğiniz her yol sizin farkında olmadan kurduğunuz bir algoritma örneği ve verdiğiniz küçük kararlarda buna dahil.

Mesela matematikte dört işlem yapıyorsunuz, önce bölme veya çarpma varsa onları yaparsınız daha sonra toplama çıkartma yaparsınız bu aslında problemin çözüm şeması yani bir algoritma, ama bir çoğumuz bunu bu şekilde bilmiyor sadece ezbercilikten gelen bir kavram bölme varsa önce bölme yapılır şartı diye biliyoruz.

Bilgisayar biliminde ve yazılım dünyasında ise algoritmaları sık sık kullanıyoruz. Yazılan her program, çalıştırılan her uygulama, oynadığımız oyunlar, mobil uygulamalar, oyunlar hepsi bir çok algoritma çerçevesinde yazılmıştır. Yazılım dünyasında iseniz örneğin bir oyun oynuyorsunuz, oyundaki adımlarda nasıl bir yol izlenmiş olabilir algoritması nasıl kurulmuş olabilir diye düşünüyorsunuz ve belki de oyunu oynamayı bırakıp saatlerce bunu düşünebilirsiniz.

ALGORİTMA NEDEN GEREKLİDİR?

Hayatımızı daha yaşanabilir kılmak istiyoruz ve verdiğimiz kararlar, olmasını istediğimiz şeyler doğrultusunda ilerliyoruz, örneğin her gün yaptığımız bir şey, yemek yapacağız nasıl yaparız adım adım yaparız. Matematik hayatımızın her yerinde ve bunu daha basit bir şekilde anlamamız lazım ki sonuca ulaşabilelim. Proglamlama için algoritma olmazsa olmazdır, isterseniz dört işlem yapın, isterseniz sql sorguları yazın, isterseniz web sitesi oluşturun farketmeksizin kullanıyorsunuz. Kullandığınız algoritmalar her ne için kullanıyor iseniz hayatınızı, işinizi bir düzene sokuyor ve kolay bir yoldan ilerlemenizi sağlıyor.

ALGORİTMA BÖLÜMLERİ

Algoritma giriş bölümü, işlemleri sonuca götürecek olan bölüm ve sonuçları aldığımız bölüm olarak üç bölüme ayrılmıştır. Peki algoritmamızı kurduk, yazdık ama nasıl yazdık, insanlar bunu okuyup anlayabilir mi? Tabiki öncelikle yazdığımız kodun okunabilir olması çok önemli dikkat etmeliyiz, bizim işimizi biraz daha kolaylaştırmak için akış diyagramları oluşturulmuş. Böylelikle algoritma bir bütün olarak kolayca okunabiliyor ve daha kolay bir şekilde anlaşılıyor, çünkü evrensel bir şema ve siz kodunuzu hangi dille yazarsanız yazın algoritmanız şema üzerinde adım adım gösterilecek ve algoritmayı her ne için geliştirdiyseniz insanlar ne anlatmak istediğiniz şeyi anlayacaklardır.

ALGORİTMA VE PROGRAMLAMA ARASINDAKİ BAĞLANTI NEDİR?

Oluşturduğumuz programlar algoritmalar üzerine yazılıyor. Bu aşamada algoritmayı kendimiz kurmuş olabiliriz veya açık kaynaklı olarak paylaşıma sunulmuş algoritmaları kullanabiliriz. Aldığınız algoritmayı da kendi işinize yarayacak şekilde değiştirebilir veya üstüne başka şeyler ekleyebilirsiniz.

Düşünelim ki bir program yazıyoruz veya geliştiriyoruz, yazacağımız kodu en iyi olacak şekilde tasarlamaya çalışıyoruz, düşünüyoruz ve tasarım aşamasından sonra yazmaya başlıyoruz ama nasıl yazıyoruz, tabiki adım adım oluşturduğumuz algoritmaya uygun bir şekilde yazıyoruz çünkü daha sonra sıkıntı çıkarmasın ve hata versin istemiyoruz. Algoritmamız da tüm ihtimalleri göz önünde bulunduruyoruz, ihtimallerimiz net ve belirtilmiş olmalıdır ki işimizi şansa bırakmayalım. Tabiki elbette hatalarımız olacak onlardan da çok fazla korkmamalıyız zamanla elimiz alışacaktır ve zaten kullandığımız algoritmayı anladıysak hatanın çözümü de hızlı olacaktır.

Bu süreç şöyle toparlarsak, program yazmak istiyoruz algoritmamızı hazırladık ve hazırladığımız algoritma doğrultusunda programımızı yazmaya başlıyoruz. Buradan çıkaracağımız sonuç algoritma ve programlama arasındaki bağdır.

AKIŞ ŞEMASI NEDİR?

Programların, algoritmaların işlem basamaklarının geometrik şekillerle görselleştirilmesini sağlayan yapılardır. Algoritmayı herkes tarafından okunabilir hale getirmek için kullanıyoruz.

Peki algoritma ile akış şemaları arasında fark var mı? Tabiki var, yani şemada adımları şekillerin içerisinde simgeler halinde yazıyoruz, ilişkileri oklar ile gösteriyoruz ve sonucu da bir simge içerisinde gösteriyoruz. Bunun dışında mantık açısından bir fark yoktur ki zaten algoritmamızı sadece şekiller üzerine döküyoruz.

ALGORİTMAYI NASIL GELİŞTİRMELİYİZ? NE YAPMALIYIZ?

Kabul etmek gerekirse algoritma mantığını kurmak zor bir aşamadır. Bahsettiğimiz gibi çok ince düşünceyle her şeyi düşünmüş olmamız gerekiyor.

  • Algoritmayı anlaşılır bir şekilde yazmalıyız

ALGORİTMA ÖRNEĞİ

  • İlk adım olarak BAŞLA komutunu yazmamız lazım

Software Developer || Writer || Artist

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store