Menü

EAN UPC kontrol basamağı: barkodun son hanesi nasıl hesaplanır

Barkodun son hanesinin nasıl üretildiğini, iki yaygın barkod uzunluğunda ağırlıkların neden farklı başladığını ve kontrolün ürünün gerçekliği hakkında neden hiçbir şey söylemediğini anlatıyoruz.

Yayın tarihi

  • barkod
  • EAN
  • kontrol basamağı

EAN UPC kontrol basamağı, bir ürün barkodunun son hanesinin diğer hanelerden hesaplanmasıdır. Bu yazıda bu hanenin nasıl üretildiğini, aynı hesabın farklı uzunluktaki barkodlarda neden farklı davrandığını ve kontrolün ürünün gerçekliği ya da menşei hakkında neden hiçbir şey söylemediğini bulacaksınız.

Barkodun son hanesi nereden gelir?

Bir ürün barkodunun son hanesi, kendisinden önceki hanelerden hesaplanan bir kontrol basamağıdır. Amaç, barkodun okunması veya elle yazılması sırasında oluşan hataları yakalamaktır. Hesap, barkodun kendisini taşıdığı kurala göre yapılır ve son hane, diğer hanelerin belirli ağırlıklarla toplanmasından elde edilir.

Bu hanenin varlığı, barkodun bir bütün olarak tutarlı olup olmadığını gösterir. Barkod okunduğunda veya bir listeye girildiğinde, son hane yeniden hesaplanıp okunan değerle karşılaştırılır. İki değer uyuşmuyorsa okuma şüpheli sayılır ve tekrar denenir.

Kontrolün sınırı burada başlar: hesabın tutması, barkodun bir ürünle ilişkilendirilmiş olduğunu göstermez. Yalnızca, okunan dizinin kendi kuralına uyduğunu gösterir.

İki yaygın uzunlukta ağırlıklar neden farklı başlar?

Çünkü ağırlık dizisi barkodun sağ ucundan hizalanır. Barkodlarda haneler sağdan sola doğru artan ve azalan ağırlıklarla çarpılır; ağırlık dizisinin başlangıcı sağ uçtan sabitlendiği için, barkodun toplam uzunluğu değiştiğinde en soldaki haneye düşen ağırlık da değişir.

Barkod türü Yapı Ağırlık hizalaması
EAN-13 Üç haneli bir ön ek ve on ürün hanesi, ardından kontrol hanesi Sağdan sola dönüşümlü ağırlıklar
UPC-A On bir ürün hanesi ve bir kontrol hanesi Sağdan sola dönüşümlü ağırlıklar
Kısa biçimler Daha az hane kullanan türevler Aynı mantık, farklı başlangıç

Tablodaki son satır, uygulamada en çok hata yapılan yerdir. Ağırlık dizisinin bir uçtan hizalandığı bilindiğinde, kısa biçimlerde hangi hanenin hangi ağırlığı alacağı kendiliğinden çıkar; ancak yalnızca belirli bir uzunluk için yazılmış bir denetim, diğer uzunluklarda sessizce yanlış sonuç üretir.

Barkodun son hanesinin ağırlıklarla nasıl hesaplandığı ve bu hesabın aile içindeki yeri için kontrol basamağı algoritmaları yazısına bakabilirsiniz.

Farklı uzunluktaki barkodlar nasıl ele alınır?

Bu türden bir denetim yazarken ilk karar, barkodun uzunluğunu belirlemektir. Çünkü hesabın parametreleri uzunluğa bağlıdır; ağırlıkların hangi uçtan başladığı, bu bilgiyle birlikte anlam kazanır.

İkinci karar, barkod dışındaki karakterlerin nasıl ele alınacağıdır. Basılı bir barkodun altında genellikle haneler okunabilirlik için gruplanmış hâlde de yazılır; boşluklar ve bazı işaretler insan içindir, hesabın parçası değildir. Denetim, yalnızca gerçek hane dizisi üzerinde çalışmalıdır.

Üçüncü karar, barkodun taşıdığı ön ekin nasıl yorumlanacağıdır. Ön ek, hesaba giren sıradan hanelerdir ve ağırlık hizalamasında diğer hanelerden farklı değildir. Ona özel bir anlam yüklemek, hesabı bozar.

Barkodun başındaki ön ek neyi söyler, neyi söylemez?

Barkodun başındaki ön ek, barkod numaralandırma düzenini yöneten kuruluş tarafından bir ülkeye ya da bölgeye ayrılmış bir numara aralığına işaret eder. Yani ön ek, bir numara aralığının hangi kuruluşa tahsis edildiğini söyler.

Bunun anlamı sık sık yanlış anlaşılır. Ön ek, ürünün üretildiği yeri göstermez. Bir numara aralığı bir ülkeye tahsis edilmiş olsa bile, o aralıktan numara alan bir işletme ürününü başka bir ülkede ürettirebilir. Bu yüzden barkodun ön ekinden menşe çıkarmak geçerli bir çıkarım değildir.

İkinci sınır, ön ekin numaranın kime ait olduğunu göstermemesidir. Ön ek bir işletmeyi değil, bir tahsis alanını işaret eder. Numaranın hangi işletmeye ait olduğu, tahsis kayıtlarının ayrıca sorgulanmasıyla öğrenilir.

Üçüncü sınır, ön ekin tek başına bir kontrol aracı olmamasıdır. Ön ek sıradan bir hane dizisidir; tek başına hiçbir şeyi doğrulamaz.

Barkod kontrolü geçen bir ürün gerçek midir?

Değildir. Kontrol basamağının görevi okuma ve yazma hatalarını yakalamaktır, ürünün gerçekliğini kanıtlamak değil. Bu iki iş birbirinden tamamen ayrıdır.

Bunu görmek için kontrolün ne yaptığına bakmak yeterlidir. Kontrol, yalnızca eldeki hane dizisinin kendi kuralına uyduğunu söyler. Dizinin bir kayıtla eşleşip eşleşmediği, o numaranın bir işletmeye tahsis edilip edilmediği, ürünün o işletme tarafından üretilip üretilmediği bu bilginin içinde yoktur.

İkinci sınır, kontrolün hata türlerine göre davranışının farklı olmasıdır. Tek bir hanenin yanlış yazılması neredeyse her zaman yakalanır. Buna karşılık iki hanenin birlikte ve aynı yönde bozulduğu durumlar her zaman yakalanmaz. Bu yüzden kontrol güçlü bir araçtır ama tam bir garanti değildir.

Üçüncü sınır, okuma kalitesidir. Barkod fiziksel olarak okunurken hane atlanabilir veya komşu bir barkodun haneleri karışabilir. Bu durumda üretilen dizi, kontrol basamağı tutsa bile yanlış bir numaradır.

Kontrol tutmuyorsa önce neye bakılır?

Kontrol tutmadığında ilk şüpheli, barkodun kendisi değil okuma sürecidir. Bu sıralama önemlidir; çünkü barkodlar zaten hata yakalamak için vardır ve tutmayan bir kontrol genellikle bir yazım ya da okuma sorununa işaret eder.

Sırayla bakılacak noktalar şunlardır:

  • Eksik veya fazla okunmuş bir hane var mı?
  • Barkodun altındaki okunabilir yazı ile okunan dizi aynı mı?
  • Komşu bir barkodun haneleri diziye karışmış olabilir mi?
  • Dizi doğru uzunlukta mı, yani doğru biçim mi okundu?

Bu adımlar tükendikten sonra hâlâ tutmuyorsa, sıra numaranın kendisine gelir. Ama o noktada bile söylenebilecek şey sınırlıdır: numara kendi kuralına uymuyor. Bunun ötesinde bir yargı, ancak numaranın gerçekten tahsis edilip edilmediğinin ayrı bir kaynaktan sorulmasıyla verilebilir.

Toplu okuma yapan sistemlerde bu sıralama daha da önemlidir; çünkü yüzlerce satırlık bir listede tek bir okuma hatası, tek bir hatalı barkod gibi görünür. Toplu iş akışlarının ayrıntıları için toplu doğrulama akışı yazısına bakabilirsiniz.

Geliştiriciler için: toplu okuma ve hatanın yerini bulma

Toplu okuma yapan bir denetimde ilk gereksinim, hatanın hangi satırda olduğunu söyleyebilmektir. Yalnızca “şu kadar satır hatalı” diyen bir rapor, veriyi düzeltmeye yetmez. Rapor, satır numarasını ve okunan ham değeri taşımalıdır.

İkinci gereksinim, hata türlerinin ayrılmasıdır. Beklenen uzunluğa uymayan bir dizi ile uzunluğu doğru olup kontrolü tutmayan bir dizi, farklı işler gerektirir. Birincisi genellikle okuma veya aktarma sorunudur; ikincisi veri kaynağına bakmayı gerektirir. İkisini aynı kovaya koymak, düzeltme işini belirsizleştirir.

Üçüncü gereksinim, hane sayısına göre ayrı denetim yollarıdır. Barkodun uzunluğu hesabın parametrelerini belirlediği için, denetim önce uzunluğu saptamalı ve ağırlık hizalamasını ona göre seçmelidir. Tek bir uzunluk varsayımı, diğer bütün uzunlukları yanlış değerlendirir.

Dördüncü gereksinim, tekrarların sadeleştirmeden sonra belirlenmesidir. Aynı barkod, yazımındaki gruplama farkı yüzünden iki farklı dizi gibi görünebilir. Tekrar tespiti normalleştirilmiş değer üzerinden yapılmazsa, aynı ürün iki satır olarak raporlanır.

Son olarak, denetim sonucu ile ürün bilgisi ayrı tutulmalıdır. Denetimin üretebileceği sonuç, barkodun biçimsel durumudur; ürünün kime ait olduğu ya da nerede üretildiği bilgisi bu denetimden çıkmaz.

Sonraki adımlar

İlk adım, barkod denetimini uzunluğa göre ayrı yollara bölmek ve ağırlık hizalamasını veri olarak tutmaktır. İkinci adım, raporu satır numarası ve ham değerle birlikte üretmek, hata türlerini ayrı kovalara ayırmaktır. Bir barkod dizisinin kendi kuralına uyup uymadığını numara doğrulama aracı sayfasında sınayabilirsiniz; başka bir numara ailesinin benzer mantığı için ISBN ISSN kontrol basamağı yazısı, ailenin ortak iskeleti için kontrol basamağı algoritmaları yazısı yol gösterir.

Bu yazıdaki barkod dizileri, ağırlık örnekleri ve doğrulama sonuçları yalnızca hesabın mantığını göstermek için kurgulanmış sentetik değerlerdir; gerçek bir ürüne, üreticiye veya satışa karşılık gelmez ve kontrolün tutması ürünün gerçekliğine dair hiçbir kanıt oluşturmaz.

Okumaya devam edin

TC Kimlik Doğrulayıcı hakkında makaleler