Viivakoodi

**Viivakoodi** on informaation esitysmuoto, jossa tietoalkiot koodataan optiseen koneellisesti luettavaan muotoon. Viivakoodeissa jokaista merkkiä vastaa tietynlainen mustien ja valkoisten raitojen tai pisteiden yhdistelmä. Viivakoodien sisältämä informaatio voidaan lukea laitteille digitaaliseen muotoon tarkoitusta varten kehitetyillä viivakoodinlukijoilla tai laitteilla, joissa on kamera ja jotka pystyvät tunnistamaan ja lukemaan kuvasta viivakoodin. Tällainen laite voi olla esimerkiksi älypuhelin. Viivakoodin keksivät Norman Joseph Woodland ja Bernard Silver Yhdysvalloissa (patentti v. 1952). Keksinnössä morseaakkosia venytettiin ohuiksi ja paksuiksi viivoiksi. Viivakoodi tuli tuotteissa käyttöön 1970-luvulla kaupallisten lukulaitteiden tultua markkinoille.

Viivakoodeja käytetään yleisesti tuotepakkauksissa ja yritysten välisessä logistiikassa. Tuote voidaan tunnistaa viivakoodinlukijalla esimerkiksi kaupan kassalla. Viivakoodistandardeihin, kuten EAN, sisältyy viivakoodin tyypin lisäksi sopimus tietosisällöstä. Esimerkiksi laskuissa on usein viivakoodi, joka sisältää tiedot maksettavasta rahasummasta, tilistä, jolle se on maksettava, eräpäivästä ja laskun viitenumeron. 

## Viivakoodimuodot
Perinteinen viivakoodi on lineaarinen: se koostuu yhdessä suunnassa peräkkäin olevista vaihtelevan paksuisista mustista raidoista ja valkeista raitojen väleistä.

Lineaarisen viivakoodin rinnalle on kehitetty useita kaksiulotteisia (2D) koodeja, joissa pienelle alueelle saadaan mahtumaan enemmän tietoa. 2D-viivakoodit muistuttavat kuvioltaan shakkilautaa. Esimerkkejä 2D-koodeista ovat Datamatrix ja QR-koodi. 

Viivakoodien muunnelmia on useita. Muunnelman tyyppi määrittää esitettävät merkit (pelkät numerot tai esimerkiksi sekä numerot että kirjaimet), mahdollisesti lukusuunnan ja viivakoodin sisäisen tarkistusmerkin. 

Viivakoodimuotoja ovat esimerkiksi: 
* CODE 39, joka sisältää sekä numerot että kirjaimet. Jokaista merkkiä esittää 5 viivaa ja 4 väliä. Kolme näistä on aina leveitä ja kuusi kapeita. Sarja alkaa ja loppuu määrättyihin aloitus/lopetusmerkkeihin.
* CODE 128, joka mahdollistaa 128 eri merkkiä ja on käytössä pankkiviivakoodissa. Tukee kolmea eri merkistöä, jotka kattavat kaikki 128 ASCII-merkkiä pienin poikkeuksin. Koodi sisältää tarkistussumman. Tarkistussumma lasketaan summaamalla ensimmäinen merkki jokaisen merkin ja niiden paikan tulolla ja sen jälkeen otetaan saadusta luvusta jakojäännös luvun 103 kanssa.
* GS1 128, jota ei pidä sekoittaa code 128:iin. 48 merkin aakkos-numeerinen kapasiteetti. Mahdollistaa GS1-sovellustunnusten käytön. Käytetään laajasti logistiikassa, mm. lavalapuissa. 
* Interleaved 2 of 5 ja Noninterleaved 2 of 5, jotka ovat käytössä esimerkiksi DUN-standardissa ja tuotenumeroiden esittämisessä.  Merkistö käsittää vain numeroita.
* EAN-13, joka on käytössä EAN-standardin mukaisessa tuotenumeroinnissa ja määrittelee myös sisällön. Siinä tieto esitetään useilla vierekkäisillä eri paksuisilla tummilla raidoilla ja raitojen väliin jäävillä valkoisilla alueilla. EAN-viivakoodissa on alku- ja lopputunnisteet, joiden avulla koodi voidaan lukea myös takaperin. Koodi koostuu neljästä osasta, joista ensimmäinen on kahden tai kolmen numeron mittainen ja kertoo koodin myöntäjän. Viisi numeroa pitkä toinen osa kertoo tuottajan. Viisi numeroa pitkä kolmas osa kertoo tuotteen. Viimeinen osa on yhden numeron mittainen tarkistussumma, joka vahvistaa järjestelmälle, että koodi on luettu oikein. Viivakoodia vastaava numerosarja merkitään yleensä myös numeroina viivakoodin alapuolelle.
* Databar, joka on symboliperhe. Mahdollistaa tiedon sisällyttämisen pienempään tilaan kuin EAN/UPC ja voi kantaa enemmän tietoa, kuten sarjanumeroita, eränumeroita ja erilaisia päivämäärätietoja. Tulevaisuudessa mahdollista hyödyntää vähittäiskaupan kassapisteillä. Databar-symboleja ovat muiden muassa Databar Stacked Omnidirectional ja Databar Expanded Stacked.
* Datamatrix, joka on 2D-viivakoodi. 3316 numeron kapasiteetti ja 2335 aakkos-numeerinen kapasiteetti. Tieto tallennetaan koodiin sekä pysty- että vaakasuunnassa. Tästä syystä 2D-viivakoodit ovat kestävämpiä kuin lineaariset viivakoodit. Mahdollistaa suuren tietomäärän sisällyttämisen pieneen tilaan. Luettavissa ainoastaan kameralukijalla. Käytössä mm. terveydenhuoltosektorilla.
* GTIN on eurooppalaisen EAN-standardin ja yhdysvaltalaisen sekä kanadalaisen standardin yhdistävä muoto.
* Aztec Code (ISO/IEC 24778:2008) on 2D-viivakoodimuoto, jonka tunnistaa helposti koodin keskellä olevasta sisäkkäisiä neliöitä sisältävästä kohdistuskoodista. Toisin kuin QR-koodit, Aztec-koodit eivät vaadi tyhjää tilaa reunoilta. Aztec-koodeja käytetään paljon esimerkiksi junaliikenteessä ja lentoliikenteessä (IATA:n BCBP-standardi).

## Suomessa käytettävät viivakoodit

Suomessa yleisin tavaroiden tunnistamiseen käytetty viivakoodistandardi on EAN. Kassojen järjestelmät käyttävät Suomessa yleisesti EAN/UCC 13 -koodia. Koodi koostuu yleensä kaksinumeroisesta maa- tai aluetunnuksesta (Suomi=64), viisinumeroisesta valmistajan tunnuksesta ja viisinumeroisesta vapaasti valittavasta tuotekoodista. Maa- tai aluetunnus kertoo missä maassa tuotteelle on annettu EAN-koodi. Se ei siis välttämättä kerro tuotteen valmistusmaata. Valmistajan tunnuksen ja tuotekoodin välissä on lyhyt, usein alku- ja lopputunnisteen tavoin hieman korkeammilla viivoilla merkitty välitunniste. Maatunnus voi olla myös kolminumeroinen, jolloin valmistajan tunnus jää nelinumeroiseksi.

Suomessa EAN-viivakoodien koodipankin ylläpitäjänä ja keskuselimenä toimii Keskuskauppakamarin tytäryhtiö GS1 Finland.

Monet suomalaiset kirjastot käyttävät CODE 39 -koodeja kirjatunnisteissa ja kirjastokorteissa.

Kela-korteissa ja Kelan sairausvakuutustiedot sisältävissä henkilökorteissa henkilötunnus on koodattu CODE 39 -muodossa.

VR-Yhtymä käyttää Aztec Codea kaikissa muissa kuin junissa myytävissä matkalipuissa.

## Katso myös
*Viivakoodinlukija
*Virtuaaliviivakoodi
*Itsepalvelukassa

## Lähteet
*doria.fi, viivakoodin lukeminen matkapuhelimella 

### Viitteet

## Aiheesta muualla

*Online Barcode Generator