Input är information som "läggs in" i något. I vardagligt tal kan det handla om sinnesintryck — när människor till exempel pratar är det input till öronen — men termen används särskilt ofta om datorer och elektroniska system. När någon skriver på en dator eller trycker på en knapp är det som skrivs in input. Vanligtvis används input för att skapa output, och tillsammans bildar de ett enkelt kommunikationsflöde mellan användare, enhet och system.

Input kan hänvisa till:

  • Mänskliga indata – text som skrivs med tangentbord, klick och rörelser med mus, tryck på peksskärm, röstinmatning via mikrofon eller gester registrerade med kamera eller rörelsesensorer.
  • Sensordata – temperatur, tryck, ljus, accelerometer, gyroskop, GPS-positioner och andra mätvärden från fysiska sensorer i mobiltelefoner, bilar och IoT-enheter.
  • Digitala filer och databaser – dokument, bilder, ljudfiler, CSV/JSON/XML-filer och poster som importeras från lagring eller databaser.
  • Nätverks- och API-anrop – data som tas emot över nätverk, till exempel HTTP-förfrågningar, WebSocket-meddelanden eller svar från externa tjänster.
  • System- och programmatisk input – kommandon via kommandoraden (stdin), händelser i event-loopar, signaler och meddelanden mellan processer.
  • Skannad eller analog information – pappersdokument som skannas och digitaliseras, eller analoga signaler (ljud, bild) som måste samplas och konverteras till digital form.

Hur datorer behandlar input

  • Drivrutiner och gränssnitt: Hårdvaruenheter kommunicerar med operativsystemet via drivrutiner som översätter fysiska händelser till data som program kan läsa.
  • Sampling och digitalisering: Analoga signaler (t.ex. ljud) måste samplas och kvantiseras för att bli användbar digital input.
  • Buffring och köhantering: Input kan buffras eller köas för att jämna ut varierande hastigheter mellan indata och behandling, vilket påverkar latens och genomströmning.
  • Event-driven vs polling: System kan reagera på händelser (interrupts/eventer) eller aktivt kontrollera (polling) enhetens status beroende på design och prestandakrav.
  • Formatering och kodning: Text behöver korrekt teckenkodning (t.ex. UTF-8), binära format måste tolkas enligt specifikation och filer parsas innan vidare bearbetning.

Validering, säkerhet och kvalitet

  • Validera alltid input: Kontrollera att data har förväntad typ, format och gränsvärden för att undvika fel och missbruk.
  • Sanitisera och undvik injektioner: Rensa bort eller kodsäkra data som används i SQL, HTML, kommandon eller andra känsliga sammanhang för att förhindra attacker (t.ex. SQL-injektion, XSS).
  • Behörighets- och integritetskontroller: Se till att användare eller enheter bara kan skicka och läsa de data de har rätt till. Skydda känslig input under överföring och i vila (kryptering).
  • Felhantering: Ge tydlig återkoppling vid ogiltig input och logga händelser för felsökning utan att exponera känslig information.

Tillämpningar och exempel

  • Textinmatning: Skrivande i en textredigerare eller formulärfält på webben.
  • Talstyrning: Röstkommandon för digitala assistenter där audioströmmen transkriberas och tolkas av mjukvara.
  • Bilder och video: Kamerainspelningar som används för bildigenkänning eller övervakning.
  • Sensorbaserade system: Termostater som läser temperatur och justerar värme, eller fordon som använder sensorer för körstöd.
  • Batchimport: Stora dataset som laddas in från CSV/JSON för analys i datawarehouse eller maskininlärningspipelines.
  • Programmeringsgränssnitt: API-anrop där system tar emot strukturerade data (t.ex. JSON) från andra tjänster eller klienter.

Tillgänglighet och alternativa inmatningsmetoder

För att göra system användbara för fler bör man stödja alternativa inmatningssätt: röststyrning, skärmläsarstöd, förstorade eller anpassade tangentbord, brytarpaneler (switches) för personer med rörelsehinder samt andra assistiva tekniker.

Sammanfattningsvis är input den information som ett system tar emot från användare, sensorer eller andra system. Hur den tas emot, valideras, skyddas och bearbetas påverkar både funktionalitet, säkerhet och användarupplevelse.