Logo
Ana Sayfa
ÖZEL KODLAMA DERSLERİ
Yazılım Özel Ders
Tüm birebir programlara genel bakış
Python Yazılım Kursu
Sıfırdan ileri seviyeye birebir Python
Java Yazılım Kursu
OOP odaklı birebir Java eğitimi
AP Computer Science Principles
AP CSP sınav hazırlığı
GRUP DERSLERİ
Python & Django Masterclass
SINIRLI KONTENJAN
Java & Spring Boot Masterclass
SINIRLI KONTENJAN
C# .NET Masterclass
SINIRLI KONTENJAN
VİDEO DERSLER
Sıfırdan Temel Python Kursu
Kendi Hızında Öğren
ÜCRETSİZ
Seviye Testi
Ücretsiz — Python, Java, algoritma seviye testleri
Kariyerini Keşfet
Sertifika Doğrula
Belge numarası ve soyad ile doğrulama

Algoritma Nedir? Akış Şeması ile Algoritmik Düşünmeyi Öğrenin

Yazar: Berk Keskin 15.08.2026 ~12 dk okuma 24 Okunma
algoritma-mantigi-akis-semasi-tasarimi

Algoritma nedir sorusunun en yalın cevabı şudur: algoritma, bir problemi çözmek için baştan sona izlenen, sıralı ve net adımlar dizisidir. Yemek tarifinden yol tarifine kadar günlük hayatın her köşesinde farkında olmadan algoritmalar kullanırız; yazılımda da bir programın kalbinde her zaman bu adım adım düşünme mantığı yatar. Bu yazıda algoritmik düşünme kavramını, bu adımları görselleştiren akış şemasını ve bir algoritmanın kodla ilişkisini örneklerle adım adım öğreneceksiniz.

Algoritma Nedir? Gündelik Hayattan Bir Örnekle Anlayın

Programlamaya yeni başlayanların çoğu, algoritma kelimesini duyduğunda karmaşık matematiksel formüller ya da yalnızca bilgisayar bilimcilerin uğraştığı soyut bir konu hayal eder. Oysa gerçek çok daha basittir: algoritma, bir amaca ulaşmak için izlenen, başı ve sonu belli olan adımlar bütünüdür. Siz farkında olmasanız da her gün onlarca algoritma çalıştırırsınız.

Basit bir çay demleme örneğini ele alalım. Önce suyu ısıtırsınız, su kaynadığında demliğe çay koyarsınız, belirli bir süre demlenmesini beklersiniz ve son olarak bardağa süzerek servis edersiniz. Bu adımların sırası değiştirilemez; suyu kaynatmadan çay koymak ya da demlemeden servis etmek beklediğiniz sonucu vermez. İşte bu sıralı, mantıklı ve tekrarlanabilir adım dizisi, bir algoritmanın tam da ne olduğunu gösterir.

Bir arkadaşınıza evinize gelirken yol tarifi verdiğinizi düşünün: "Ana caddeden düz devam et, ikinci kavşakta sağa dön, market gördüğünde sola sap, üçüncü bina bizim ev." Bu tarif de bir algoritmadır; belirli bir başlangıç noktasından (arkadaşınızın bulunduğu yer) belirli bir hedefe (eviniz) net, sıralı ve anlaşılır adımlarla ulaşmayı sağlar. Tarifte bir adım eksik ya da belirsiz olsaydı, arkadaşınız yolunu kaybedebilirdi.

Yazılım dünyasındaki algoritmalar da tam olarak bu mantıkla çalışır; tek fark, adımların bir insana değil bilgisayara tarif edilmesidir. Bir bilgisayar, sizin gibi "yaklaşık olarak" ya da "genelde" gibi ifadeleri anlamaz; her adımın son derece açık ve sırayla verilmesi gerekir. Bu nedenle programlamaya giriş yapan herkesin önce algoritmik düşünme becerisini geliştirmesi, ardından bu düşünceyi belirli bir programlama diline aktarması beklenir. İlerleyen bölümlerde göreceğiniz gibi, aynı algoritma günlük hayatta bir yol tarifi kadar sade kalırken, bir bilgisayara aktarıldığında çok daha kesin kurallara bağlanır.

Bir Algoritmanın Taşıması Gereken Temel Özellikler

Her adım dizisi otomatik olarak iyi bir algoritma sayılmaz. Bir algoritmanın gerçekten işe yarar ve güvenilir olması için taşıması gereken belirli temel özellikler vardır. Bu özellikleri bilmek, hem algoritma tasarlarken hem de başkalarının yazdığı bir algoritmayı değerlendirirken size net bir kontrol listesi sunar.

İlk özellik girdidir; girdi, algoritmanın işleyeceği veriyi ifade eder. Örneğin iki sayıyı karşılaştıran bir algoritmada girdi, o iki sayının kendisidir; girdi olmadan algoritmanın üzerinde çalışacağı bir veri de olmaz. İkinci özellik ise çıktıdır; çıktı, algoritmanın adımlarının sonunda üretmesi beklenen sonuçtur. Bir algoritma girdi alsa da anlamlı bir çıktı üretmiyorsa amacına ulaşmamış demektir.

Üçüncü özellik kesinliktir. Kesinlik, algoritmadaki her adımın net, tek anlamlı ve yoruma açık olmayan bir biçimde tanımlanması gerektiği anlamına gelir. "Suyu biraz ısıt" gibi belirsiz bir ifade bir insana yeterli olabilir, ama bir bilgisayar için bu adım anlamsızdır; "suyu 100 dereceye kadar ısıt" gibi net bir ifade gerekir.

Dördüncü özellik sonluluktur: bir algoritma sonsuza kadar devam edemez, mutlaka sonlu sayıda adımdan sonra bir sonuca ulaşarak durmalıdır. Bir algoritma hiç bitmiyorsa, teknik olarak bir problemi çözmüyor, yalnızca döngüye giriyor demektir. Son özellik ise verimliliktir. Verimlilik, aynı doğru sonuca daha az adımda, daha az zaman ve kaynak harcayarak ulaşmanın değerini ifade eder. İki farklı algoritma aynı doğru sonucu verebilir, ama biri diğerinden çok daha az adımda ve daha hızlı çalışabilir; iyi bir algoritma tasarımcısı olmak, doğru sonucu bulmanın yanında bunu mümkün olduğunca verimli şekilde yapmayı da öğrenmektir.

Akış Şeması Nedir ve Temel Semboller Nelerdir?

Akış Şeması Nedir ve Temel Semboller Nelerdir?

Bir algoritmayı yalnızca kelimelerle anlatmak bazen kafa karıştırıcı olabilir, özellikle adımlar arasında kararlar ve dallanmalar varsa. İşte tam bu noktada akış şeması devreye girer. Akış şeması, bir algoritmanın adımlarını belirli standart şekiller ve oklarla görselleştiren bir diyagramdır; bu yüzden akış şemasını algoritmanın görsel dili olarak düşünebilirsiniz. Karmaşık bir metni okumak yerine, şemaya bakarak akışın nereden başladığını, hangi noktada karar verildiğini ve sürecin nasıl sonlandığını hızlıca takip edebilirsiniz.

Bir akış şemasının okunabilir ve standartlara uygun olması için belirli semboller kullanılır. Her sembolün kendine özgü bir şekli ve anlamı vardır; bu sembolleri doğru kullanmak, akış şemanızın hem sizin hem de başkalarının anlayabileceği evrensel bir dile dönüşmesini sağlar.

Sembol Adı Şekli/Anlamı Ne Zaman Kullanılır
Başla/Bitir Oval şekil Akışın başlangıç ve bitiş noktalarını belirtmek için
İşlem Dikdörtgen Bir hesaplama, atama ya da işlem adımını göstermek için
Karar Eşkenar dörtgen Evet/hayır ya da doğru/yanlış türünde bir karar noktasını ifade etmek için
Girdi/Çıktı Paralelkenar Veri girişini veya sonucun ekrana yazdırılmasını göstermek için
Döngü/Akış oku Yön belirten ok Adımlar arasındaki sırayı ve akışın yönünü bağlamak için

Bu semboller bir araya geldiğinde, bir algoritmanın tamamı tek bir bakışta okunabilir hale gelir. Örneğin bir karar sembolünden çıkan iki farklı ok, "evet" ve "hayır" yollarını temsil eder ve akışın hangi koşulda hangi yöne sapacağını net biçimde gösterir. Döngü oku ise bir adımın belirli bir koşul sağlanana kadar tekrar edeceğini işaret eder. Yeni başlayanlar için akış şeması çizmek, doğrudan kod yazmaya geçmeden önce zihindeki mantığı kağıt üzerinde netleştirmenin en pratik yollarından biridir; bir sonraki bölümde bu şemayı somut bir problem üzerinde adım adım kuracağız.

Örnek Problem: İki Sayıdan Büyüğünü Bulma Algoritması

Algoritmayı soyut kalıplar yerine somut bir problemle görmek işi çok daha anlaşılır kılar. Ele alacağımız problem basit ama öğreticidir: kullanıcıdan iki sayı almak ve bu sayılardan hangisinin daha büyük olduğunu bulup ekrana yazdırmak. Bu problem, algoritmik düşünmenin temel taşlarından biri olan karşılaştırma mantığını net bir şekilde gösterir. Problemi adım adım bir listeye döktüğümüzde şu tabloyla karşılaşırız:

  1. Başla
  2. Kullanıcıdan iki sayıyı al (birinci sayı ve ikinci sayı)
  3. Birinci sayı ile ikinci sayıyı karşılaştır
  4. Büyük olan sayıyı ekrana yazdır
  5. Bitir

Bu beş adımı bir akış şemasına dönüştürürken her adımın kendine özgü bir sembolle temsil edildiğini hatırlamak gerekir. "Başla" ve "Bitir" adımları oval sembollerle gösterilirken, iki sayının alınması dikdörtgen (işlem) sembolüyle çizilir. Asıl kritik nokta ise üçüncü adımdır: burada devreye giren karar sembolü, yani baklava dilimi şeklindeki elmas şekil, akışın buradan itibaren ikiye ayrılacağını gösterir. Eğer birinci sayı ikinci sayıdan büyükse akış bir yöne, değilse diğer yöne dallanır; her iki dal da sonunda "büyük olanı yazdır" işlemine bağlanıp "Bitir" ovaline ulaşır.

Bu problemi bu şekilde parçalara ayırmak, ilk bakışta gereksiz bir ayrıntı gibi görünse de aslında problemin kendisini netleştirir. Karşılaştırmanın nerede yapılacağı, hangi durumda hangi işlemin tetikleneceği ve akışın nasıl sonlanacağı gibi sorular, kod yazmadan önce cevaplanmış olur. Kendi çözme becerinizi ölçmek ve bu tür temel problemleri ne kadar hızlı çözebildiğinizi görmek isterseniz ücretsiz algoritma bilgi testi ile kendinizi kısa sürede sınayabilirsiniz. Adım adım düşünme alışkanlığı, ileride çok daha karmaşık problemlerle karşılaştığınızda da aynı disiplinle hareket etmenizi sağlayacaktır.

Algoritma Yazmak Neden Kod Yazmadan Önce Gelir?

Algoritma Yazmak Neden Kod Yazmadan Önce Gelir?

Yeni başlayanların en sık düştüğü tuzaklardan biri, problemi tam olarak çözmeden doğrudan kod yazmaya başlamaktır. Bunun sonucu genellikle aynıdır: birkaç satır sonra mantık çıkmaza girer, geliştirici baştan yazmak zorunda kalır ve zaman kaybı büyür. Oysa önce algoritma kurmak, yani problemi adım adım düşünce sırasına dökmek, bu döngüyü büyük ölçüde ortadan kaldırır. Algoritma, herhangi bir programlama diline bağlı olmayan, saf düşünce çerçevesidir; aynı algoritma Python'da da, Java'da da, hatta kağıt üzerinde de aynı mantıkla işler.

Bu, yalnızca yeni başlayanlar için geçerli bir kural değildir. Deneyimli geliştiriciler de karmaşık bir problemle karşılaştıklarında genellikle klavyeye hemen dokunmaz; önce kağıda veya bir akış şeması aracına adımları çizerler, olası uç durumları (edge case) düşünürler ve mantığı netleştirdikten sonra koda geçerler. Bu alışkanlık, projenin ilerleyen aşamalarında hata ayıklama süresini kısaltan, kodun okunabilirliğini artıran bir yatırımdır.

Günümüzde yapay zeka destekli kod asistanlarının (Copilot, Cursor gibi araçlar) yaygınlaşmasıyla birlikte bu adım daha da kritik hale gelmiştir. Bu araçlar size hızlıca kod satırları önerebilir, ancak önerdikleri kodun probleminizi doğru çözüp çözmediğini değerlendirebilmek için net bir algoritmik çerçeveye ihtiyacınız vardır. Algoritmanızı önceden kurmadıysanız, yapay zekanın ürettiği kodun mantıklı mı yoksa yanıltıcı mı olduğunu ayırt etmek zorlaşır. Bu nedenle Berk Akademi'de "koddan önce düşünmeyi" öğreten bir yaklaşım benimsenir; canlı yazılım eğitimleri kapsamında öğrenciler önce problemi çözmeyi, sonra bu çözümü koda dökmeyi öğrenir. Bu sıralama, yapay zeka araçlarını kör kullanmak yerine onları doğru yönlendirebilen bir geliştirici olmanın da temelini oluşturur.

Aynı Algoritmanın Python ve Java'da Koda Dönüşümü

Bir önceki bölümde adım adım kurduğumuz "iki sayıdan büyüğünü bulma" algoritmasını şimdi gerçek koda dönüştürelim. Algoritmanın üçüncü adımındaki karşılaştırma mantığı, Python'da if ve else yapılarıyla doğrudan karşılık bulur:

def buyugunu_bul(sayi1, sayi2):
    if sayi1 > sayi2:
        return sayi1
    elif sayi2 > sayi1:
        return sayi2
    else:
        return "Sayılar eşit"

print(buyugunu_bul(18, 25))

Bu fonksiyon, akış şemasındaki karar sembolünün kod karşılığıdır: if sayi1 > sayi2 satırı elmas şeklin sorduğu soruyu, altındaki return satırları ise şemadaki iki farklı dalın sonucunu temsil eder. Aynı mantığı Python'da öğrenmek isteyenler birebir Python özel dersleri ile bu tür temel algoritmaları uygulamalı örneklerle pekiştirebilir.

Aynı algoritmanın Java karşılığı, sözdizimi farklı olsa da birebir aynı adımları izler:

public static String buyugunuBul(int sayi1, int sayi2) {
    if (sayi1 > sayi2) {
        return String.valueOf(sayi1);
    } else if (sayi2 > sayi1) {
        return String.valueOf(sayi2);
    } else {
        return "Sayılar eşit";
    }
}

Dikkat edilirse iki kod parçası da tamamen farklı bir sözdizimine sahiptir; Python'da girinti (indentation) ile blok belirlenirken Java'da süslü parantezler ({}) kullanılır, değişken tipleri Java'da açıkça belirtilirken Python'da belirtilmez. Ancak algoritmanın kendisi hiç değişmemiştir: iki sayı alınır, karşılaştırılır, büyük olan döndürülür. Bu örnek, algoritmanın neden dilden bağımsız bir düşünce yapısı olduğunu somut biçimde gösterir; hangi programlama dilini öğrenirseniz öğrenin, önce kurduğunuz bu zihinsel çerçeve aynı kalır, değişen yalnızca onu ifade etme biçimidir.

Yeni Başlayanların Algoritma Kurarken Yaptığı Yaygın Hatalar

Algoritma yazmayı yeni öğrenen kişilerin neredeyse tamamı, kariyerlerinin bir noktasında aynı üç tuzağa düşer. Bu hataları önceden tanımak, hem zaman kazandırır hem de "kodum neden bitmiyor" gibi can sıkıcı anları önler. En sık karşılaşılan sorun, sonsuz döngü hatasıdır: döngüyü sonlandıracak koşulun ya hiç yazılmaması ya da yanlış yazılması. Örneğin bir sayaç değişkeninin döngü içinde artırılmayı unutması, akış şemasındaki karar sembolünün her seferinde aynı cevabı vermesine ve programın hiçbir zaman döngüden çıkamamasına yol açar. Kağıt üzerinde adım adım "1, 2, 3... peki ne zaman duracak?" diye kendinize sormak bu hatayı erken fark etmenizi sağlar.

İkinci yaygın hata, eksik durum kontrolüdür. Akış şemasında bir karar sembolü çizildiğinde iki çıkış oku bulunur: "evet" ve "hayır". Yeni başlayanlar genellikle sadece istedikleri sonucun gerçekleştiği "evet" dalını düşünür, "hayır" dalını ya boş bırakır ya da hiç çizmez. Örneğin bir kullanıcı girişinin doğru olup olmadığını kontrol eden bir algoritmada, yalnızca "şifre doğruysa giriş yap" adımı planlanır; şifre yanlışsa ne olacağı unutulur. Oysa her karar sembolünün her iki çıkışı da bir sonraki adıma bağlanmalıdır; aksi hâlde algoritma tanımsız bir noktada asılı kalır.

Üçüncü ve genellikle en geç fark edilen hata, kenar durumlarının (edge case) atlanmasıdır. Kenar durum, algoritmanın normal akışının dışında kalan, ama gerçekte sıkça karşılaşılan özel bir durumdur. İki sayıdan büyüğünü bulan algoritmayı hatırlayacak olursak, sayılar birbirinden farklıyken her şey yolunda gider; ancak iki sayı birbirine eşitse algoritma ne yapacağına karar veremez ve programcı bu durumu genellikle test ederken fark eder, tasarım aşamasında değil. Bu tür hataları erkenden yakalamanın en pratik yolu, algoritmayı yazdıktan sonra "peki ya değerler eşit olsaydı, ya girdi boş olsaydı, ya negatif olsaydı" sorularını kendinize sormaktır. Bu alışkanlık, özellikle nesne yönelimli ve tip güvenliği yüksek diller yazarken kritik hâle gelir; birebir Java dersleri alan öğrenciler, derleyicinin bu tür eksik durumları çoğu zaman hata olarak işaretlediğini ve bunun aslında bir öğrenme fırsatı olduğunu görürler.

Algoritmik Düşünmeyi Geliştirmek İçin Pratik Öneriler

Algoritmik düşünme, tek seferde kazanılan bir yetenek değil, düzenli pratikle güçlenen bir alışkanlıktır. En etkili başlangıç noktası, küçük ve somut problemlerle çalışmaktır: iki sayının toplamını bulmak, bir listenin en büyük elemanını tespit etmek veya bir sayının tek mi çift mi olduğunu belirlemek gibi basit görevler, adım adım düşünme refleksini oturtur. Bu küçük problemler çözüldükçe zorluk seviyesi kademeli olarak artırılabilir; büyük ve karmaşık bir probleme doğrudan atlamak, çoğu yeni başlayanın motivasyonunu kırar.

İkinci önemli alışkanlık, koda geçmeden önce çözümü kağıda veya akış şemasına dökmektir. Zihninizdeki adımları önce görsel ya da yazılı bir forma aktarmak, mantık hatalarını ekrana bakmadan, sakin kafayla fark etmenizi sağlar. Bu adım özellikle karmaşık koşullu yapılar veya iç içe döngüler içeren problemlerde vakit kazandırır, çünkü hatayı satır satır kod içinde aramak yerine tek bir diyagram üzerinde görebilirsiniz.

Üçüncüsü, süreklilik her şeyden önemlidir. Ara sıra yapılan yoğun çalışma seansları yerine, her gün veya her hafta düzenli aralıklarla küçük problemler çözmek, algoritmik düşünmeyi kalıcı bir beceriye dönüştürür. Bu tekrarlı pratik, zamanla problemleri daha hızlı analiz etmenizi ve doğru veri yapısını veya döngü türünü sezgisel olarak seçmenizi sağlar. Son olarak, nereden başlayacağınızı bilmiyorsanız, mevcut bilgi seviyenizi ölçmek güçlü bir motivasyon kaynağı olabilir. Kendinizi test etmek, hem güçlü olduğunuz konuları hem de üzerinde çalışmanız gereken alanları net biçimde ortaya koyar; bu amaçla ücretsiz kodlama bilgisi testini kullanarak mevcut seviyenizi kısa sürede görebilir ve çalışma planınızı buna göre şekillendirebilirsiniz.

Sık Sorulan Sorular

Algoritma nedir, basit bir örnekle açıklar mısınız?

Algoritma, bir problemi çözmek için izlenen, başı ve sonu belli, adım adım tanımlanmış işlemler dizisidir. Örneğin sabah kahve hazırlama sürecini "su ısıt, kahveyi ekle, karıştır, servis et" şeklinde sıralı adımlara böldüğünüzde, aslında gündelik bir algoritma tanımlamış olursunuz.

Akış şeması ile algoritma arasındaki fark nedir?

Algoritma, bir problemi çözen adımların kendisidir; akış şeması ise bu adımların oklar ve standart sembollerle görselleştirilmiş hâlidir. Yani akış şeması, algoritmanın yazıya değil resme dökülmüş versiyonudur ve mantığı daha kolay takip etmeyi sağlar.

Algoritma yazmak için önce bir programlama dili bilmek gerekir mi?

Hayır, tam tersine algoritma düşünmek herhangi bir dilden bağımsızdır. Problemi adımlara bölme mantığını kavradıktan sonra bu adımları Python, Java veya başka bir dile çevirmek çok daha kolay hâle gelir; bu yüzden algoritma her zaman kod yazmadan önce gelir.

Akış şemasında karar (karşılaştırma) sembolü nasıl kullanılır?

Karar sembolü genellikle eşkenar dörtgen (baklava) şekliyle gösterilir ve içine bir soru veya karşılaştırma yazılır. Bu sembolden mutlaka iki ok çıkmalıdır: biri "evet" cevabına, diğeri "hayır" cevabına bağlanmalı; aksi hâlde algoritma eksik kalır.

Algoritmik düşünme becerisi nasıl geliştirilir?

Küçük problemlerden başlayarak düzenli pratik yapmak, çözümü koda geçmeden önce kağıda veya akış şemasına dökmek ve zaman zaman kendi bilgi seviyenizi ölçerek eksik noktalarınızı belirlemek bu becerinin gelişmesinde en etkili yöntemlerdir.

Yeni başlayanlar algoritma yazarken en çok hangi hatayı yapar?

En sık karşılaşılan hatalar arasında döngüyü durduracak koşulun unutulmasıyla oluşan sonsuz döngü, karar sembolünün yalnızca "evet" dalının düşünülüp "hayır" dalının atlanması ve iki değerin eşit olması gibi kenar durumların göz ardı edilmesi yer alır.

Algoritma ile sözde kod (pseudocode) aynı şey midir?

Tam olarak aynı değildir ama yakından ilişkilidir. Algoritma, çözümün genel mantığıdır; sözde kod ise bu mantığın herhangi bir programlama diline bağlı kalmadan, yarı yazılı yarı kod benzeri bir dille ifade edilmiş hâlidir ve akış şemasına göre daha metinsel bir gösterimdir.

Algoritma mantığını ve akış şemasını kavramak, hangi programlama diline yöneleceğinizden bağımsız olarak yazılım yolculuğunuzun en sağlam temelini oluşturur. Bu temeli pratik uygulamalarla pekiştirmek isteyenler, adım adım ilerleyen ve birebir geri bildirim alınan 1-1 özel ders seçeneğiyle kendi hızlarında ilerleyebilir.

Bu içeriğin üretilmesinde yapay zeka araçlarından destek alınmıştır.

İlgili Eğitimler

Berk Keskin — Yazılım Geliştirici ve Eğitmen
Yazar

Berk Keskin Kimdir?

Yazılıma 12 yaşında başladı; bugün öğrencinin seviyesine ve hedefine göre şekillenen sürdürülebilir öğrenme sistemleri tasarlıyor. 300'den fazla kişiye ezber değil, düşünerek kod yazmayı öğretti — Berk Akademi'de izlemeye değil üretmeye dayalı öğrenme kültürünü o kuruyor.

WhatsApp Hemen Ara