Ana sayfateknolojiYazılım ve ProgramlamaKod Nedir?
💻
Teknoloji · Konu Anlatımı

Kod Nedir? Kaynak Koddan Çalışan Programa

Programlamaya Giriş· genel· 10 dk okuma· Son güncelleme: 17 Temmuz 2026
Öğreniyo İçerik Ekibi tarafından hazırlandı · Editör: Yusufhan Seyis
Bilgisayar ve Programlama yolunun 11/18. adımı· Yolu gör →
Kısaca

Kod, bir bilgisayarın veya dijital sistemin belirli bir işlemi gerçekleştirmesi için programlama dili kurallarına göre yazılmış talimatlar bütünüdür. İnsanların yazdığı kaynak kod; kullanılan dile ve çalışma biçimine bağlı olarak yorumlayıcı ya da derleyici aracılığıyla işlenir ve bilgisayarın uygulayabileceği komutlara dönüşür. Kod tek başına yalnızca komutlardan ibaret değildir; veriyi alma, karar verme, işlemi tekrarlama ve sonucu gösterme adımlarını birlikte düzenler.

Bu yazıda (8)
💻
Teknoloji

Kod Nedir? Kaynak Koddan Çalışan Programa

Bir uygulamada düğmeye dokunduğunuzda ekranın değişmesi, bir web sitesinde form gönderdiğinizde bilginin işlenmesi veya navigasyon uygulamasında bir rotanın gösterilmesi, arka planda tanımlanmış talimatların sıralı biçimde yürütülmesiyle gerçekleşir. Bu talimatları yazılı hâle getiren yapı koddur.

Ancak kodu yalnızca bilgisayarın anlayacağı bir dil olarak tanımlamak eksik kalır. İyi bir programda kod; problemin parçalara ayrılmasını, verilerin adlandırılmasını, koşulların değerlendirilmesini, bazı işlemlerin tekrarlanmasını ve sonuçların kullanıcıya sunulmasını sağlar. Bu nedenle kodu anlamak, tek tek komutları ezberlemekten çok bir bilgisayarın bir problemi hangi adımlarla çözdüğünü kavramayı gerektirir.

Aşağıdaki rehberde kodun ne olduğunu, kaynak kod ile makine kodu arasındaki farkı, temel kod yapı taşlarının birlikte nasıl çalıştığını ve kodlama ile programlama arasındaki sınırı örneklerle inceleyeceğiz.

Kodun görevi: Problemi bilgisayarın uygulayabileceği adımlara çevirmek

Kod, bir hedefe ulaşmak için bilgisayara verilen düzenli ve kesin talimatlar bütünüdür. Bir talimatın bilgisayar tarafından uygulanabilmesi için ne yapılacağının belirsiz bırakılmaması gerekir. Örneğin bir uygulamanın kullanıcıdan yaş bilgisini alması, bu değeri saklaması, belirli bir koşulla karşılaştırması ve ekrana bir mesaj yazması; birbirine bağlı kod adımlarıyla tanımlanır.

Bu açıdan kodun temel işlevi, bir problemi işlem sırasına dönüştürmektir. Önce girdi alınır, ardından veri işlenir ve son olarak çıktı üretilir. Her programda bu üç aşamanın biçimi aynı olmak zorunda değildir; fakat bir programın neyi alacağı, üzerinde ne yapacağı ve hangi sonucu üreteceği açıklanmalıdır.

Kodun anlamı yazıldığı programlama diline göre değişir. Bir dilin sözdizimi, komutların hangi biçimde yazılacağını belirler. Sözdizimi hatası, komutun dil kurallarına aykırı kurulmasıdır. Mantık hatasında ise kod geçerli biçimde çalışabilir, fakat yanlış sonucu üretir. Bu iki hata türünü ayırmak önemlidir: İlkinde program çoğu zaman kodu işleyemez; ikincisinde program çalışsa bile tasarlanan problemi doğru çözmez.

Kod ile algoritma da aynı şey değildir. Algoritma, bir problemi çözmek için izlenecek adımların genel tasarımıdır; kod ise bu tasarımın belirli bir programlama diliyle yazılmış biçimidir. Aynı algoritma farklı dillerde farklı sözdizimleriyle ifade edilebilir.

Kaynak kod, yorumlayıcı ve makine kodu arasındaki geçiş

Programcının yazdığı, insanlar tarafından okunabilir talimatlara kaynak kod denir. Kaynak kodda değişken adları, koşullar, döngüler ve fonksiyonlar gibi yapıların kullanılması, programın amacını anlamayı kolaylaştırır. Bilgisayarın işlemci düzeyinde uyguladığı komutlar ise makine kodu olarak anılır ve ikili gösterimle, yani 0 ve 1'lerle ilişkilendirilir.

Kaynak kodun çalıştırılabilir hâle gelmesi için arada bir işleme aşaması bulunur. Yorumlayıcı, kaynak kodu çalışma sırasında okuyup komutları yürütür. Derleyici ise kaynak kodun tamamını veya belirli bir bölümünü önceden başka bir çalıştırılabilir biçime dönüştürebilir. Hangi yöntemin kullanılacağı programa ve programlama diline göre değişir; bu nedenle her dil için tek bir çalışma modelini genellemek doğru değildir.

Bu süreçte önemli nokta şudur: Programcı doğrudan 0 ve 1 yazmak zorunda değildir. Programlama dilleri, insanların daha anlaşılır bir biçimde talimat kurabilmesi için oluşturulmuştur. Bununla birlikte yazılan kaynak kodun bilgisayar tarafından işlenebilmesi için dilin kurallarına uygun olması gerekir.

Bir programın çalışmaması yalnızca çeviri aşamasından kaynaklanmaz. Eksik bir dosya, yanlış veri türü, hatalı koşul, beklenmeyen kullanıcı girdisi veya dış bir hizmete ulaşılamaması da çalışma sorununa yol açabilir. Bu yüzden kod yazma süreci, yalnızca talimat yazmaktan değil, programın farklı durumlarda test edilmesinden de oluşur.

Değişken, veri yapısı ve dizi: Bilginin program içinde tutulması

Bir program işlem yapabilmek için bilgileri geçici olarak tutar. Değişken, program içinde bir değere erişmek ve bu değeri kullanmak için verilen addır. Örneğin bir kullanıcının girdiği puanı "puan" adıyla tutmak, aynı değeri daha sonra karşılaştırmayı veya ekranda göstermeyi sağlar. Değişkenin taşıdığı değer, programın akışı sırasında değişebilir.

Bir değişkeni tanımlamak tek başına yeterli değildir; o değişkenin neyi temsil ettiği ve hangi değerlerle kullanılabileceği de bilinmelidir. Sayısal bir değerle metni birbirine karıştırmak, işlemin beklenmedik sonuç vermesine neden olabilir. Örneğin "12" karakterlerden oluşan bir metin olarak tutuluyorsa, onu doğrudan sayısal toplama işleminde kullanmak bazı dillerde mümkün olmayabilir veya farklı bir sonuç doğurabilir. Dönüştürme gerekip gerekmediği kullanılan dile bağlıdır.

Birden fazla veriyi düzenlemek için veri yapılarından yararlanılır. Dizi, çoğunlukla aynı türden veya benzer amaçla kullanılan değerleri sıralı biçimde saklamak için kullanılır. Örneğin bir sınıftaki puanları tek tek değişkenler yerine bir dizi içinde tutmak, tüm puanlar üzerinde döngü kurmayı kolaylaştırır. Bununla birlikte dizilerin elemanlara erişim biçimi ve konum numaralandırması programlama diline göre farklılık gösterebilir; bu nedenle her dilde başlangıç konumunun aynı olduğunu varsaymamak gerekir.

Veri yapısı seçimi, programın veriyi nasıl arayacağını, ekleyeceğini veya güncelleyeceğini etkiler. Küçük bir örnekte bu fark görünmeyebilir; ancak veri miktarı arttığında uygun yapı kullanmak kodun anlaşılmasını ve bakımını kolaylaştırabilir.

Koşullar ve döngüler: Kodun karar vermesi ve tekrarlaması

Koşul ifadesi, bir durumun doğru veya yanlış olmasına göre farklı kod yollarından birini seçer. Örneğin puan değeri 50 veya daha yüksekse "başarılı", daha düşükse "yeniden çalış" mesajı gösterilebilir. Buradaki 50 sayısı örneğe ait bir eşiktir; gerçek bir değerlendirmede kullanılacak eşik, ilgili kurala göre belirlenmelidir. Kodda koşul kullanırken yalnızca karşılaştırmayı değil, eşitlik durumunu da düşünmek gerekir.

Bir koşulun sonucu genellikle doğru veya yanlış olarak değerlendirilir. Ancak "yüksek", "uygun" veya "yeterli" gibi ifadeler bilgisayar için tek başına anlam taşımaz; bunların sayısal ya da mantıksal bir karşılığı yazılmalıdır. Örneğin sıcaklık 30'dan büyükse uyarı göster gibi bir ifade, karar ölçütünü açık hâle getirir.

Döngü, belirli bir işlemi tekrar tekrar çalıştırmak için kullanılır. Tekrar sayısı önceden biliniyorsa bir listedeki her elemanı sırayla işlemek gibi bir yapı kurulabilir. Tekrarın ne zaman sona ereceği belirsizse, döngünün durmasını sağlayacak koşulun doğru kurulması gerekir. Durma koşulu hiç sağlanmazsa program sonsuz döngüye girebilir.

Koşul ve döngü birlikte kullanıldığında kod daha güçlü hâle gelir. Örneğin bir dizi içindeki her puan incelenebilir; yalnızca belirlenen eşik değerini karşılayanlar sayılabilir. Burada döngü verileri sırayla ele alırken koşul hangi verinin sayılacağını belirler. Böylece işlem sırası açık biçimde kurulmuş olur.

Fonksiyonlar kodu nasıl parçalara ayırır?

Fonksiyon, belirli bir işi gerçekleştirmek üzere adlandırılmış kod bölümüdür. Aynı işlem programın farklı yerlerinde kullanılacaksa fonksiyon oluşturmak, kodu tekrar tekrar yazma ihtiyacını azaltabilir. Fonksiyon bir veya daha fazla girdi alabilir, bu girdiler üzerinde işlem yapabilir ve uygun olduğunda bir sonuç döndürebilir.

Örneğin iki sayıyı toplama işlemi için bir fonksiyon tasarlanabilir. Fonksiyonun girdileri iki sayı, çıktısı ise bu sayıların toplamı olur. Bu yapı sayesinde toplama işleminin ayrıntısı programın her yerinde yeniden yazılmaz; ihtiyaç olduğunda fonksiyon çağrılır. Girdinin beklenen türde olup olmadığı ve fonksiyonun her durumda anlamlı bir sonuç üretip üretmediği ayrıca düşünülmelidir.

Fonksiyon kullanmak yalnızca kodu kısaltmak anlamına gelmez. Büyük bir problemi küçük ve adlandırılmış parçalara ayırdığı için kodun okunabilirliğini, test edilebilirliğini ve bakımını artırabilir. Ancak tek satırlık her işlem için gereksiz sayıda fonksiyon oluşturmak da kodun izlenmesini zorlaştırabilir. Fonksiyonun adı yaptığı işi açıkça ifade etmeli ve mümkün olduğunca tek bir sorumluluğa odaklanmalıdır.

Fonksiyonlar, değişkenlerin görünür olduğu alanla da ilişkilidir. Bir fonksiyon içinde oluşturulan bir değişkene programın her yerinden erişilemeyebilir. Bu davranış programlama diline ve değişkenin tanımlandığı yere bağlıdır; bu nedenle bir değerin fonksiyon dışından kullanılabileceğini varsaymadan önce dilin kapsam kurallarına bakılmalıdır.

Kodlama ile programlama arasındaki fark: Talimat yazmaktan ürünü sınamaya

Kodlama, belirli bir programlama dilinde talimatları yazma eyleğini ifade eder. Programlama ise problemi tanımlama, algoritmayı tasarlama, uygun veri yapısını seçme, kodu yazma, test etme, hataları düzeltme ve gerektiğinde programı geliştirme gibi daha geniş bir süreci kapsar.

Bu ayrım özellikle bir uygulama geliştirme sürecinde görülür. Bir hesaplama satırını yazmak kodlama olabilir; kullanıcının hangi veriyi gireceğini belirlemek, geçersiz girişleri ele almak, farklı sonuçları test etmek ve uygulamanın bakımını yapmak ise programlamanın daha geniş kapsamına girer.

Çalışan bir kodun doğru kod olması gerekmez. Bir program yalnızca beklenen tek girdide doğru sonuç veriyorsa eksik test edilmiş olabilir. Boş giriş, yanlış veri türü, sınır değeri veya beklenmeyen işlem sırası gibi durumlar ayrıca değerlendirilmelidir. Kodun kalitesini anlamak için okunabilirlik, tekrarın azaltılması, hataların ele alınması ve amacın açık olması birlikte incelenir.

Bu nedenle programlama öğrenirken yalnızca dil sözdizimine odaklanmak yerine problemi küçük parçalara ayırmak, her parçanın girdisini ve çıktısını belirlemek ve sonuçları farklı örneklerle kontrol etmek gerekir.

Sık yapılan hatalar ve karıştırılan kavramlar

Kod ile programlama aynı anlamda kullanılabilir; fakat öğretim açısından kod, yazılan talimatları; programlama ise bu talimatların tasarlanması ve yönetilmesi sürecini anlatır. Benzer biçimde kaynak kod ile makine kodu da aynı değildir. Kaynak kod programcının yazdığı insan-okunabilir biçimdir; makine kodu bilgisayarın işlem düzeyinde uyguladığı biçimdir.

Yaygın bir hata, her çalışan programın doğru sonuç verdiğini düşünmektir. Sözdizimi hatası bulunmayan bir kod, yanlış eşik kullanabilir, bir elemanı atlayabilir veya hatalı veriyle karşılaştığında beklenmedik davranabilir. Bu nedenle normal girişlerin yanında sınır değerleri ve geçersiz girişler de denenmelidir.

Bir başka hata, yorumlayıcı ile derleyiciyi bütün programlama dilleri için aynı şekilde açıklamaktır. Yorumlayıcı çalışma sırasında işleme yaparken derleyici kaynak kodu önceden farklı bir biçime dönüştürebilir; ancak gerçek çalışma modeli dile, araca ve kullanılan geliştirme sürecine göre değişebilir.

Diziyi ve tek bir değişkeni karıştırmak da sık görülür. Tek bir değişken bir değeri temsil ederken dizi birden fazla değeri düzenli biçimde tutabilir. Ayrıca dizi konumlarının nasıl numaralandırıldığı dile göre değişebileceğinden, ilk elemanın konumunu varsaymak yerine ilgili dilin kuralı kontrol edilmelidir.

Son olarak, kodun bilgisayara insan diliyle yazılmış cümleleri doğrudan aktardığı düşünülmemelidir. Programlama dilleri okunabilirlik sağlasa da bilgisayarın kodu işleyebilmesi için sözdizimi, veri türleri ve çalışma kuralları bakımından geçerli bir yapı gerekir.

Çözümlü örnekler: Girdi, karar ve çıktı sırasını kurmak

Örnek 1 — Bir puanın eşiği karşılayıp karşılamadığını belirleme

Verilenler: Kullanıcıdan alınan puan 72 olsun. Örnek kural olarak eşik değerini 50 kabul edelim. Amaç, puan 50 veya daha yüksekse "başarılı", değilse "yeniden çalış" sonucunu üretmektir.

  1. Girdiyi tanımla: Kullanıcıdan gelen değer "puan" değişkeninde tutulur.
  2. Veri türünü kontrol et: Puanın sayısal olarak işlenebilmesi gerekir. Kullanıcı metin girerse önce uygun bir dönüştürme veya hata mesajı gerekebilir.
  3. Karar koşulunu kur: puan50puan \geq 50 karşılaştırması yapılır.
  4. Sonucu seç: 72, 50'den büyük olduğu için doğru dal çalışır.
  5. Çıktıyı üret: Ekrana "başarılı" yazılır.

Sonuç: 72 puanı, bu örnekteki 50 eşik değerini karşıladığı için sonuç "başarılı" olur. Puan tam olarak 50 olsaydı da koşul doğru kabul edilirdi; çünkü karşılaştırmada eşitlik de kapsanmıştır. Eşik değeri veya başarı kuralı değişirse kodun bu kısmı da değişmelidir.

Örnek 2 — Bir listedeki eşik üstü değerleri sayma

Verilenler: [40, 65, 50, 80] değerlerinden oluşan bir dizi ve 60 eşik değeri. Amaç, 60'tan büyük puanların sayısını bulmaktır.

  1. Sayacı 0 olarak başlat: Henüz eşik üstü değer bulunmadığı için "sayi = 0" kabul edilir.
  2. Diziyi sırayla dolaş: Döngü ilk olarak 40, sonra 65, 50 ve 80 değerlerini ele alır.
  3. Her değeri karşılaştır: Değer 6060'tan büyükse sayaç 1 artırılır.
  4. 40 için karar ver: 40, 60'tan büyük değildir; sayaç 0 kalır.
  5. 65 için karar ver: 65, 60'tan büyüktür; sayaç 1 olur.
  6. 50 için karar ver: 50, 60'tan büyük değildir; sayaç 1 kalır.
  7. 80 için karar ver: 80, 60'tan büyüktür; sayaç 2 olur.
  8. Döngü bittiğinde sonucu göster: Sayaç değeri ekrana yazdırılır.

Sonuç: 60'tan büyük iki değer vardır: 65 ve 80. Bu örnekte 60'ın kendisi sayılmaz; çünkü koşul "büyük" olarak kurulmuştur. Eşik değeri de dahil edilecekse karşılaştırma deg˘er60değer \geq 60 biçiminde değiştirilmelidir. Bu küçük fark, koşullarda sınır durumlarının neden açıkça belirtilmesi gerektiğini gösterir.

Formül

Koşul örneği: puan50puan \geq 50. Bu karşılaştırmanın sonucu doğruysa bir kod bloğu, yanlışsa başka bir kod bloğu çalışır. Dizi örneğinde sayaç güncellemesi: sayi=sayi+1sayi = sayi + 1; bu işlem yalnızca döngüde incelenen değer belirlenen koşulu sağladığında yapılır.

Günlük hayatta

Telefonunuzdaki fotoğraf uygulamasında bir fotoğrafı kırptığınızda süreç somut olarak şöyle düşünülebilir: Uygulama önce seçtiğiniz fotoğrafı girdi olarak alır, kırpma alanının koordinatlarını değişkenlerde tutar, seçilen alanın geçerli olup olmadığını koşulla denetler, görüntü piksellerini ilgili bölge için işler ve yeni fotoğrafı çıktı olarak gösterir. Aynı kırpma işlemi farklı fotoğraflarda tekrarlandığı için bu işlem bir fonksiyon olarak düzenlenebilir. Kullanıcı geçersiz bir alan seçerse kodun hata mesajı üretmesi veya işlemi engellemesi gerekir.

Sınavda

TYT/AYT veya bilişim dersi sorularında önce verilenleri girdi, isteneni çıktı olarak ayırın. Ardından değişkenlerin başlangıç değerlerini, koşuldaki eşitlik işaretini ve döngünün kaç kez çalıştığını izleyin. Özellikle >> ile \geq arasındaki fark, sayaçların 0'dan mı başladığı ve döngü sonunda koşulun yeniden değerlendirilip değerlendirilmediği sonucu değiştirebilir. Kod sorularında satırları yalnızca sözel olarak değil, her adımda değişkenlerin aldığı değerleri yazarak takip etmek hatayı azaltır.

Sık sorulan sorular

Kod ile algoritma arasındaki fark nedir?

Algoritma, bir problemi çözmek için izlenecek adımların genel planıdır. Kod ise bu planın belirli bir programlama dilinin sözdizimi kullanılarak yazılmış biçimidir. Aynı algoritma birden fazla dilde kodlanabilir.

Kaynak kod doğrudan bilgisayar tarafından anlaşılır mı?

Kaynak kod insanlar tarafından okunabilir bir biçimde yazılır. Bilgisayarın çalıştırabilmesi için kullanılan dile ve çalışma modeline bağlı olarak yorumlayıcı veya derleyici gibi araçlarla işlenmesi gerekir.

Çalışan kod neden yanlış sonuç verebilir?

Kod sözdizimi bakımından geçerli olsa bile yanlış koşul, hatalı başlangıç değeri, eksik sınır kontrolü veya beklenmeyen kullanıcı girdisi içerebilir. Bu durum mantık hatasına yol açabilir.

Değişken ile dizi aynı şey midir?

Hayır. Değişken tek bir değeri temsil edebilir; dizi ise birden fazla değeri sıralı biçimde saklamak için kullanılabilir. Elemanlara erişim ve konumların numaralandırılması kullanılan dile göre değişebilir.

Yorumlayıcı ile derleyici arasındaki temel fark nedir?

Yorumlayıcı kaynak kodu çalışma sırasında okuyup işleyebilir. Derleyici ise kaynak kodu önceden başka bir çalıştırılabilir biçime dönüştürebilir. Ayrıntılı çalışma modeli programlama diline ve kullanılan araçlara göre değişir.

Kodlama öğrenmeye nereden başlanır?

Önce girdi, çıktı, değişken, koşul, döngü ve fonksiyon gibi yapıların ne işe yaradığını anlamak; ardından küçük problemleri adımlara ayırıp bir programlama dilinde uygulamak yararlıdır. Yalnızca sözdizimini ezberlemek yerine farklı girdilerle test yapmak öğrenmeyi güçlendirir.

Kaynaklar
SıradakiDeğişken Nedir?