Sözde kod (pseudocode), bir problemin çözüm adımlarını herhangi bir programlama diline bağlı kalmadan, insan diline yakın ama düzenli bir mantıkla ifade etme yöntemidir. Kısacası "önce ne yapacağını Türkçe'ye yakın bir dille yaz, sonra bunu Python veya Java koduna çevir" mantığının aracıdır. Yeni başlayan bir programcı için sözde kod, doğrudan koda atlamadan önce zihindeki çözümü netleştiren bir ara istasyon görevi görür. Bu yazıda sözde kodun ne olduğunu, nasıl yazıldığını ve gerçek koda nasıl dönüştüğünü adım adım göreceksiniz.
Sözde Kod (Pseudocode) Nedir ve Hangi İhtiyaçtan Doğar?
Sözde kod, bir algoritmanın mantığını yapılandırılmış cümlelerle, ancak herhangi bir programlama dilinin katı kurallarına uymadan anlatma biçimidir. Amaç, bilgisayarın anlayacağı bir sözdizimi üretmek değil, insanın çözümü adım adım takip edebileceği bir akış oluşturmaktır. Bu yüzden sözde kod yazarken "doğru sözdizimi" diye bir kaygınız olmaz; önemli olan adımların mantıksal sırası ve netliğidir.
Bu yaklaşımın ortaya çıkma nedeni oldukça pratiktir. Bir programcı doğrudan koda başladığında, çoğu zaman problemin tam olarak ne istediğini netleştirmeden satırlar yazmaya başlar; bu da yarı yolda mantık hatalarıyla karşılaşmasına yol açar. Sözde kod, bu hataları çok daha erken, henüz hiçbir satır kod yazılmadan yakalamayı mümkün kılar. Bir döngünün yanlış yerde bittiğini, bir koşulun eksik bir durumu kapsamadığını fark etmek, elli satırlık bir Python dosyasında değil, beş satırlık bir sözde kod taslağında çok daha kolaydır.
Sözde kodun belki de en rahatlatıcı yanı, katı bir sözdizimi kuralının olmamasıdır. Bir değişkeni büyük harfle yazsanız da küçük harfle yazsanız da, satır sonuna noktalı virgül koysanız da koymasanız da sözde kod "çalışmaz" hale gelmez; çünkü zaten çalıştırılmak üzere tasarlanmamıştır. Bu esneklik, yeni başlayanların en çok korktuğu "syntax error" kaygısını tamamen ortadan kaldırır ve dikkatin tamamen problemin mantığına yönelmesini sağlar.
Sezgisel bir örnekle göstermek gerekirse, basit bir çift sayı kontrolü şöyle ifade edilebilir:
Sayıyı oku. Eğer sayı 2'ye tam bölünüyorsa "çift" yazdır, değilse "tek" yazdır.
Bu tek cümle bile aslında bir algoritmanın üç temel unsurunu barındırır: girdi alma, koşul kontrolü ve çıktı üretme. İlerleyen bölümlerde bu yapı taşlarını tek tek ele alacak ve bu basit cümlenin nasıl gerçek bir koda dönüştüğünü göreceğiz.
Sözde Kod ile Python/Java Arasındaki Fark: Dilden Bağımsız Düşünme Aracı

Sözde kod bir programlama dili değildir; derlenmez, çalıştırılmaz ve herhangi bir bilgisayar tarafından yorumlanamaz. Python veya Java gibi gerçek diller ise tam tersine, çok kesin sözdizimi kurallarına sahiptir: Java'da her ifadenin sonuna noktalı virgül koymanız, değişkenlerin tipini baştan belirtmeniz gerekir; Python'da ise girinti (indentation) kod bloklarının sınırlarını belirleyen zorunlu bir kuraldır. Bu dillerde tek bir eksik parantez veya yanlış girinti, programın hiç çalışmamasına yol açabilir.
Sözde kod bu kısıtlamaların hiçbirine tabi değildir. Bir sözde kod satırını "Sayıyı oku" yerine "Sayı girişi al" diye de yazabilirsiniz, "Değer" yerine "x" diye de; her iki durumda da anlam bozulmaz çünkü okuyan taraf bir derleyici değil, siz veya bir başka insandır. İşte tam bu noktada sözde kodun asıl gücü ortaya çıkar: dilden bağımsız olması. Aynı sözde kod parçası, isterseniz Python'a, isterseniz Java'ya, hatta isterseniz bambaşka bir dile birebir aynı mantıkla çevrilebilir. Değişen yalnızca sözdizimidir, çözümün iskeleti aynı kalır.
Bu dilden bağımsızlık, özellikle henüz bir programlama diline hakim olmayan öğrenciler için büyük bir kolaylık sağlar. Bir problemi çözmeye çalışırken hem "mantığı nasıl kurayım" hem de "bu dilin kuralı neydi" sorularıyla aynı anda uğraşmak, öğrenme sürecini gereksiz yere zorlaştırır. Sözde kod bu iki kaygıyı birbirinden ayırır: önce yalnızca mantığa odaklanırsınız, dil kurallarını ise ikinci adımda, çözüm netleştikten sonra devreye sokarsınız. Bu yüzden canlı yürütülen online yazılım eğitimi programlarında da problemler genellikle önce sözde kodla, ardından seçilen dilin kurallarıyla ele alınır. Böylece öğrenci hem Python'un hem Java'nın altında yatan ortak algoritmik düşünceyi görebilir ve öğrendiği mantığı ihtiyaç duyduğu her dile taşıyabilir.
İyi Bir Sözde Kodun Temel Yapı Taşları
Sözde kod her ne kadar serbest bir yazım biçimi olsa da, tutarlı ve anlaşılır olması için belirli yapı taşlarının düzenli biçimde kullanılması gerekir. Bu yapı taşları, ileride gerçek bir programlama diline geçildiğinde karşılığını bulacak temel kontrol mekanizmalarıdır:
- Girdi/çıktı belirtme: Programın dışarıdan veri alması veya sonucu göstermesi. Örnek: OKU: kullanıcı_adı / YAZDIR: "Hoş geldin " + kullanıcı_adı
- Koşul mantığı: Belirli bir duruma göre farklı yollar izlenmesi. Örnek: EĞER yaş >= 18 İSE "Yetişkin" yazdır, DEĞİLSE "Reşit değil" yazdır
- Döngü mantığı: Bir işlemin belirli bir koşul sağlandığı sürece tekrarlanması. Örnek: i = 1'DEN 10'A KADAR TEKRARLA: i'yi yazdır
- Değişken atama: Bir değerin isimlendirilmiş bir kutuya yerleştirilmesi. Örnek: toplam'I 0 OLARAK İŞARETLE
- Fonksiyon veya prosedür çağrısı: Tekrar eden bir işlemin ayrı bir blokta tanımlanıp çağrılması. Örnek: PROSEDÜR karesini_al(sayı): sayı * sayı SONUCUNU DÖNDÜR
Bu beş yapı taşı rastgele seçilmiş değildir; her biri Python ve Java'da doğrudan bir karşılığa sahiptir. Girdi/çıktı ifadeleri Python'da input() ve print(), Java'da Scanner ve System.out.println() olarak karşımıza çıkar. Koşul mantığı her iki dilde de if/else yapısına, döngü mantığı for ve while ifadelerine, prosedür çağrısı ise Python'da def ile tanımlanan fonksiyonlara, Java'da ise sınıf içindeki metodlara denk gelir. Sözde kodu bu yapı taşlarıyla düzenli kurmayı alışkanlık haline getiren bir öğrenci, herhangi bir dile geçtiğinde artık yeni bir mantık öğrenmez; sadece öğrendiği mantığı yeni bir sözdizimiyle ifade etmeyi öğrenir.
Bu yapı taşlarını ne kadar sağlam kavradığınızı görmek isterseniz, ücretsiz algoritma bilgi testi ile koşul, döngü ve fonksiyon mantığına dair sezginizi kısa sürede ölçebilirsiniz. Bu tür kısa testler, sözde kod yazarken hangi yapı taşında zorlandığınızı erken fark etmenizi sağlar ve ilerleyen bölümlerde ele alacağımız gerçek kod dönüşümüne çok daha hazır girmenize yardımcı olur.
Sözde Koddan Gerçek Koda: Örnek Problem Çözümü
Teoriyi anlamanın en iyi yolu, elleri taşın altına sokmaktır. Bu yüzden burada basit ama öğretici bir problem üzerinden ilerleyeceğiz: bir listedeki en büyük sayıyı bulmak. Bu problem, hem koşul mantığını hem de döngü mantığını aynı anda içerdiği için sözde kod pratiği yapmak isteyenler için ideal bir başlangıç noktasıdır.
Önce problemi düz metin hâlinde, adım adım sözde kod olarak yazalım:
- Bir sayı listesi al
- En büyük değeri tutacak bir değişken oluştur, listenin ilk elemanını ata
- Listedeki her sayı için: eğer o sayı, şu anki en büyük değerden büyükse, en büyük değeri güncelle
- Liste bittiğinde en büyük değeri ekrana yazdır
Bu dört maddelik akış, henüz hiçbir programlama diline ait değil; sadece mantığın kendisi. Şimdi bunu gerçek koda dönüştürme sürecini adım adım izleyelim:
- Girdi tipini belirle: elimizde sayılardan oluşan bir liste (dizi) var.
- Değişkenleri tanımla: en büyük değeri tutacak bir değişken oluştur ve başlangıç değeri olarak listenin ilk elemanını ver.
- Koşulu if bloğuna çevir: "büyükse güncelle" ifadesini bir karşılaştırma operatörüyle yaz.
- Döngüyü for veya while ile yaz: listenin tamamını gezecek bir tekrar yapısı kur.
- Çıktıyı yazdır: döngü bittikten sonra sonucu ekrana bas.
Bu beş adımı Python'da şu şekilde hayata geçirebiliriz:
def en_buyuk_sayiyi_bul(sayilar):
en_buyuk = sayilar[0]
for sayi in sayilar:
if sayi > en_buyuk:
en_buyuk = sayi
return en_buyuk
liste = [12, 45, 3, 89, 27]
sonuc = en_buyuk_sayiyi_bul(liste)
print("En büyük sayı:", sonuc)
Kodun her satırı, sözde koddaki bir adıma doğrudan karşılık gelir. sayilar[0] ataması "ilk elemanı ata" adımını, for sayi in sayilar döngüsü "her sayı için" ifadesini, if sayi > en_buyuk satırı ise "büyükse güncelle" koşulunu birebir karşılar. Son satırdaki print komutu ise sözde koddaki "sonucu yazdır" adımının teknik karşılığıdır. Bu tür basit dönüştürme egzersizlerini tekrar tekrar yapmak, mantığı koddan ayırt etme becerisini pekiştirir. birebir Python dersleri kapsamında bu tür problemler öğrencilerle birlikte satır satır kodlanır; böylece öğrenci yalnızca "kod yazmayı" değil, önce "problemi çözmeyi" öğrenir.
Sözde Kod Yazarken Sık Yapılan Hatalar

Sözde kod yazmak basit görünse de, yeni başlayanların düştüğü bazı tekrarlayan tuzaklar vardır. Bu hataları bilmek, sağlıklı bir algoritmik düşünme alışkanlığı kazanmanın en hızlı yoludur. Önemli olan mükemmel yazmak değil, mantığı net aktarmaktır.
- Gereksiz teknik detaya girmek: Parantez, noktalı virgül veya dile özgü bir fonksiyon adı (örneğin
System.out.printlnya dalen()) sözde koda eklemek, henüz gerekmeyen bir karmaşıklık yaratır. Sözde kod aşamasında "listenin uzunluğunu bul" demek yeterlidir; bunun hangi fonksiyonla yapılacağı sonraki adımın işidir. - Python/Java sözdizimini sözde koda karıştırmak: "for i in range(0, n):" gibi bir satır yazmak, sözde kodun amacını baştan geçersiz kılar. Sözde kod dilden bağımsız kalmalı; "n kadar tekrarla" demek, hem daha anlaşılır hem de her iki dile de uyarlanabilir kalır.
- Adımları çok belirsiz bırakmak: "Veriyi işle" ya da "sonucu hesapla" gibi ifadeler, okuyan kişiye hiçbir yol göstermez. Bunun yerine "her elemanı topla" veya "ortalamayı bulmak için toplamı eleman sayısına böl" gibi somut, uygulanabilir cümleler kurulmalıdır.
- Tersine çok karmaşık ve uzun cümlelerle yazmak: Bir adımı tek cümlede üç farklı koşulla anlatmaya çalışmak, hem yazanı hem okuyanı yorar. Karmaşık bir mantığı, birbirine bağlı kısa adımlara bölmek her zaman daha sağlıklıdır.
Bu hataların ortak noktası, sözde kodun asıl görevini unutmaktır: düşünceyi net biçimde aktarmak. Yeni başlayan biriyseniz, ilk denemelerinizde bu hataları yapmanız son derece doğaldır; önemli olan zamanla adımlarınızı sadeleştirmeyi ve dilden bağımsız düşünmeyi alışkanlık hâline getirmenizdir. Düzenli alıştırma yapan öğrenciler, kısa süre içinde hangi seviyede detay vermeleri gerektiğini sezgisel olarak yakalamaya başlar.
Sözde Kod mu, Akış Şeması mı? Karşılaştırmalı Tablo
Algoritmik düşünmeyi görselleştirmenin iki temel yolu vardır: sözde kod ve akış şeması (flowchart). İkisi de aynı amaca hizmet eder ama farklı durumlarda farklı avantajlar sunar. Hangisini seçeceğinizi anlamak için aşağıdaki karşılaştırmaya bakabilirsiniz.
| Özellik | Sözde Kod | Akış Şeması (Flowchart) |
|---|---|---|
| Gösterim biçimi | Yazılı, adım adım metin | Görsel, oklar ve şekillerle bağlı kutular |
| Karmaşık problemlerde okunabilirlik | Çok dallanan mantıkta metin uzayabilir, takip zorlaşabilir | Dallanmaları görsel olarak net gösterir, yön kolayca izlenir |
| Hız ve pratiklik | Hızlı yazılır, kâğıt veya editörde anında not alınabilir | Çizim gerektirir, hazırlanması genelde daha uzun sürer |
| Koda dönüştürme kolaylığı | Cümle yapısı koda çok yakın, dönüştürmesi hızlıdır | Görselden koda geçiş için ek bir zihinsel çeviri gerekir |
| Tercih edildiği aşama | Bireysel kodlama öncesi, hızlı planlama | Ekip sunumları, karmaşık iş akışı anlatımı |
Basit ve doğrusal bir mantık akışında—örneğin bir sayının tek mi çift mi olduğunu kontrol etmek gibi—sözde kod yazmak çok daha hızlı ve pratiktir; doğrudan kâğıda veya editöre birkaç satır yazıp koda geçebilirsiniz. Ancak süreç çok sayıda dallanma, alt karar noktası veya birden fazla kişiye görsel olarak anlatılması gereken bir iş akışı içeriyorsa, akış şeması devreye girer. Şeklin görsel yapısı, hangi koşulun hangi yola çıktığını tek bakışta gösterir; bu da özellikle karmaşık sistem tasarımlarında veya ekip içi sunumlarda büyük kolaylık sağlar. Pratikte pek çok yazılımcı, önce sözde kodla mantığı hızlıca kurar, gerçekten karmaşık bir dallanma varsa bunu bir akış şemasıyla görselleştirip ekip arkadaşlarıyla paylaşır. Yeni başlayanlar için ise günlük alıştırmalarda sözde kodla başlamak, hem daha az zaman alır hem de doğrudan kodlama alışkanlığına daha yakın bir düşünme biçimi kazandırır.
Sözde Kod Pratiğinin Python ve Java Öğrenimine Katkısı
Sözde kod yazma alışkanlığı kazanmış bir öğrenci, gerçek bir programlama diline geçtiğinde önemli bir avantajla başlar: mantığı zaten kurulmuş olur, geriye yalnızca doğru sözdizimini uygulamak kalır. Bu ayrım, yeni başlayanların en çok zorlandığı noktayı doğrudan çözer. Çünkü bir programda karşılaşılan hatalar aslında iki farklı kökten gelir — biri mantık hatası (algoritmanın kendisi yanlış kurgulanmıştır), diğeri sözdizimi hatası (parantez unutulmuş, noktalı virgül eksik kalmıştır). Önce sözde kodla düşünen bir öğrenci bu iki sorunu aynı anda yaşamaz; mantığını kâğıt üzerinde veya düz metinde test edip onayladıktan sonra koda geçer, böylece gerçek kodda karşılaştığı hatanın büyük çoğunluğu yalnızca sözdizimiyle ilgilidir ve çözümü çok daha hızlıdır. Bu yaklaşım aynı zamanda hata ayıklama (debugging) becerisini de doğrudan güçlendirir. Bir program beklenmedik şekilde çalıştığında, sözde kodla düşünmeye alışmış bir geliştirici otomatik olarak adımları zihinsel akışa döker: "Bu döngü kaç kez çalışmalıydı, koşul burada gerçekten doğru mu değerlendiriliyor, bu değişken beklediğim değeri gerçekten taşıyor mu?" Bu sorgulama alışkanlığı, karmaşık bir projede saatler süren hata avını dakikalara indirebilecek bir refleks haline gelir. Bu refleksi düzenli ve kalıcı hale getirmenin en etkili yolu, günlük ve tutarlı pratik yapmaktır. Berk Akademi'nin Soru Avcısı sistemi tam olarak bu noktada devreye girer: her gün karşınıza çıkan akıllı alıştırmalar, algoritmik düşünme kasını sürekli çalışır durumda tutar. Kategori bazlı soru bankaları ve kişiye özel ödev-müfredat yapısı sayesinde öğrenci, kendi seviyesine uygun problemlerle sözde kod kurma ve bunu koda dönüştürme pratiğini tekrar tekrar yaparak içselleştirir. İlerleme istatistikleri de bu sürecin nerede güçlendiğini, nerede tekrar gerektiğini somut biçimde gösterir. Sonuç olarak, düzenli sözde kod pratiği yalnızca bir alışkanlık değil, sağlam bir programlama temelinin habercisidir. Bu temel üzerine kurulan birebir Java dersleri gibi yapılandırılmış eğitimlere başlayan bir öğrenci, sözdizimini öğrenirken mantıkla boğuşmak zorunda kalmaz; enerjisini doğrudan dilin inceliklerine ve gerçek problemlere yöneltebilir. Aynı disiplin, Python öğrenimi için de geçerlidir ve iki dilde de öğrencinin kendine güvenle ilerlemesini sağlar.
Sık Sorulan Sorular
Sözde kod (pseudocode) gerçek bir programlama dili midir?
Hayır, sözde kod herhangi bir programlama diline ait değildir ve bir derleyici veya yorumlayıcı tarafından çalıştırılamaz. Amacı çalışmak değil, bir algoritmanın mantığını insan diline yakın, sade adımlarla anlaşılır kılmaktır.
Sözde kod yazmak için özel bir yazılım veya araç gerekir mi?
Hayır, herhangi bir metin editörü, kâğıt-kalem ya da not uygulaması yeterlidir. Önemli olan araç değil, adımların net ve sıralı biçimde ifade edilmesidir.
Sözde kod ile akış şeması aynı amaca mı hizmet eder?
İkisi de algoritmik düşünmeyi görselleştirmek için kullanılır, ancak biçimleri farklıdır. Sözde kod metin tabanlıdır ve gerçek koda daha yakın bir yapı sunarken, akış şeması şekiller ve oklarla süreç akışını görsel olarak gösterir; karmaşık dallanmalı süreçlerde akış şeması daha sezgisel olabilir.
Bir sözde kodda hangi anahtar kelimeler kullanılabilir, kesin kurallar var mı?
Sözde kodun evrensel olarak kabul edilmiş katı bir sözdizimi yoktur; "eğer", "değilse", "iken", "başla", "bitir" gibi anlaşılır ifadeler serbestçe kullanılabilir. Önemli olan tutarlılıktır: aynı belge içinde aynı kavram için aynı ifadeyi kullanmak, okunabilirliği ve sonradan gerçek koda çevirmeyi kolaylaştırır.
Python veya Java öğrenmeden önce sözde kod pratiği yapmak gerekli mi?
Zorunlu değildir ama şiddetle tavsiye edilir. Sözde kodla mantık kurma alışkanlığı, dil öğrenimi sırasında sözdizimi ile algoritma mantığını birbirine karıştırmayı önler ve öğrenme sürecini daha az yıpratıcı hale getirir.
Sözde kodu doğrudan gerçek koda çevirirken en çok nerede hata yapılır?
En sık karşılaşılan hatalar döngü sınır koşullarının (bir fazla veya bir eksik çalışması), değişkenlerin başlangıç değerlerinin unutulması ve iç içe koşullarda hangi "değilse" ifadesinin hangi "eğer" ifadesine bağlı olduğunun karıştırılmasıdır.
Sözde kod, programlamaya yeni başlayan herkesin elinde küçük ama güçlü bir pusuladır; kodu yazmadan önce düşünmeyi, düşünmeyi ise düzenli bir alışkanlığa dönüştürmeyi sağlar. Bu alışkanlığı ne kadar erken kazanırsanız, Python ve Java gibi dillerdeki ilerlemeniz o kadar sağlam bir zemine oturur. Kendi algoritmik düşünme seviyenizi merak ediyorsanız algoritma bilgi testi ile bugün kısa bir kontrol yapabilirsiniz.