Perbedaan Antara Encoding & Decoding

Wanita mendengarkan musik di ponsel

File musik biasanya dikodekan menggunakan codec MP3.

Kredit Gambar: Gambar Purestock/Purestock/Getty

Encoding adalah proses menerjemahkan data antara dua format menurut seperangkat aturan atau formula. Misalnya, Anda dapat menyandikan "abc" ke "ABC" menggunakan aturan huruf kecil ke huruf besar. Decoding adalah proses kebalikannya. Anda dapat memecahkan kode "ABC" ke "abc" menggunakan seperangkat aturan yang sama. Ada banyak aplikasi berbeda untuk encoding dan decoding data. Enkripsi, misalnya, adalah bentuk penyandian yang menggunakan kunci. Tanpa kunci, data yang disandikan tidak dapat didekodekan. Data video dikodekan untuk membuatnya lebih kecil sehingga aliran video definisi tinggi dapat dilihat melalui Internet.

Encoding umumnya digunakan untuk mengurangi ukuran data audio dan video. Program coder-decoder, yang disebut codec, menerapkan serangkaian algoritma matematika yang menghilangkan data yang berlebihan. Misalnya, file berisi data "ABCDQABC." Algoritma Codec #1 mungkin untuk menggantikan "ABC" dengan "Z." File yang dihasilkan akan menjadi "ZDQZ," yang 50 persen lebih kecil dari aslinya mengajukan. Algoritma Codec #2 mungkin menggantikan "ABC?" dengan "Y" dan "?ABC" dengan "X," di mana "?" menunjukkan karakter apapun. File yang dihasilkan akan menjadi "YX," yang 75 persen lebih kecil dari file aslinya.

Video Hari Ini

Decoding menggunakan codec yang sama untuk merekonstruksi file asli dari file yang disandikan. Misalnya, menerapkan Codec #1 ke "ZDQZ" secara terbalik menggantikan "Z" dengan "ABC" untuk membuat file asli "ABCDQABC." Codec #1, yang 50 persen lebih kecil, disebut codec lossless karena decoding selalu membuat ulang yang asli mengajukan. Codec #2 menerjemahkan "YX" dengan "ABC?? ABC," dan kemudian mencoba menebak karakter yang hilang. Codec mungkin menebak "DE," yang menghasilkan "ABCDEABC." Codec #2, yang 75 persen lebih kecil, adalah a codec lossy, karena proses decoding mungkin membuat file yang mirip dengan aslinya, tetapi tidak identik.

URL dan Kumpulan Karakter

Tidak semua encoding menghasilkan hasil yang lebih kecil dari data yang tidak di-encode. Misalnya, URL "example.com/Secret of Life.html" tidak valid karena mengandung spasi. Seorang programmer Web mengkodekan URL, yang menggantikan semua spasi dengan "%20" untuk membuat "example.com/Secret%20of%20Life.html." Proses decoding melakukan operasi kebalikan dan menggantikan "%20" dengan spasi. Demikian pula, program database mungkin mengkodekan semua data dalam Unicode, kumpulan karakter utama di sebagian besar bahasa. Saat pengguna mengambil data, program mendekodekan Unicode agar sesuai dengan bahasa pengguna dan pengaturan keyboard.

Pengodean yang Tidak Dapat Didekodekan

Beberapa pengkodean tidak dimaksudkan untuk didekodekan. Hash adalah string panjang karakter acak yang digunakan dengan algoritme penyandian untuk menghasilkan hasil terenkripsi yang tidak dapat didekodekan, bahkan jika Anda mengetahui hash. Misalnya, kata sandi pengguna mungkin dienkripsi dengan hash dan disimpan dalam database. Jika seorang hacker menemukan database, dia tidak bisa memecahkan sandi apapun. Ketika pengguna masuk, sistem mengkodekan kata sandi yang dimasukkan pengguna dengan hash dan membandingkan hasilnya dengan yang disimpan dalam database. Jika pengguna lupa kata sandinya, ia harus mengubahnya, karena sistem tidak mengetahui kata sandi aslinya, hanya nilai terenkripsinya.