Apa arti pemetaan dalam pemrograman?

10

Saya sering mendengar hal-hal seperti:

  • Memetakan kelas
  • Memetakan objek dari database
  • Memetakan objek
  • Memetakan elemen daftar
  • Seorang mapper

Apa arti seorang mapper dan tindakan memetakan sesuatu yang sebenarnya?

LuisDavis
sumber
2
Ini berarti mencocokkan item dari satu set dengan item di set lain - atau itu berarti melakukan fungsi pada setiap item dalam satu set untuk mendapatkan set yang sesuai baru. Yang agak sama secara matematis. Jadi itu mungkin berarti mencocokkan tabel dalam database dengan objek dalam kode. Atau melakukan operasi pada setiap item dalam daftar. Seorang mapper adalah fungsi atau kelas yang cocok dengan item dalam satu set dengan item di yang lain.
JacquesB

Jawaban:

12

Pemrograman menggunakan kata kerja "map" dan kata benda "mapper" sebagian besar tidak terkait dengan penggunaan umum mereka dalam bahasa Inggris, jadi ini adalah pertanyaan yang sangat dimengerti.

Penggunaan pemrograman juga sangat luas, jadi mari kita mulai dengan makna "peta" yang paling konkret dan didefinisikan dengan baik. Yaitu, fungsi tingkat tinggi maphadir dalam sebagian besar bahasa pemrograman fungsional. Berikut ini contoh sepele dari itu dalam Javascript:

var numbers = [1, 2, 3, 4];
var timesTwo = function(n) {
    return n * 2;
}
numbers.map(timesTwo); // [2, 4, 6, 8]

The mapFungsi membutuhkan sebuah array dan fungsi lain. Ini mengembalikan array baru yang merupakan hasil dari penerapan fungsi itu ke semua elemen dari array asli.

Semua kegunaan lain dari istilah ini dapat, setidaknya dalam pengalaman saya, dianggap analog dengan yang spesifik ini. Dalam pengertian yang paling umum, "pemetaan" dalam pemrograman berarti mengambil beberapa hal dan kemudian mengaitkan masing-masing dengan yang lain.

Penggunaan tipikal tetapi tidak tepat dalam pekerjaan saya sehari-hari adalah "memetakan acara UI ke fungsi pengendali". Misalnya, ketika pengguna mengklik tombol 1, saya ingin handleButton1Clickdipanggil, dan ketika pengguna melayang di atas gambar, saya ingin handleImageHoverdipanggil.

Salah satu penggunaan tingkat paling tinggi dari istilah ini adalah ORM (pemetaan objek-relasional), yang berarti memetakan baris dalam database relasional ke objek dalam bahasa OOP, sehingga Anda dapat memanipulasi objek "normal" dalam kode Anda tanpa harus langsung menulis SQL atau khawatir tentang struktur basis data.

Ixrec
sumber
10

Ini konsep matematika.

www.thefreedictionary.com

2. Mathematics The correspondence of elements in one set
to elements in the same set or another set.

Ini untuk membangun korespondensi antara dua model data yang berbeda.

  • Sebagai contoh, Anda dapat mengatakan bahwa kelas Useradalah representasi dari deretan tabel database USER, yang akan berupa pemetaan objek-relasional.
  • Atau Anda dapat membuat daftar pasangan nilai kunci yang mengatakan bahwa elemen tertentu dari satu daftar sesuai dengan satu elemen dari daftar lainnya.

Saya kira bahasa ibu Anda adalah bahasa Spanyol mengingat nama pengguna Anda, pemetaan atau "untuk memetakan" dapat diterjemahkan sebagai emparejar .

Tulains Córdova
sumber
4
Deskripsi Anda kemungkinan hanya dapat dimengerti oleh seseorang yang sudah memiliki pengalaman dengan pemetaan.
Robert Harvey
@RobertHarvey, saya agak memperbaikinya.
Tulains Córdova
4

Secara umum, "pemetaan" adalah asosiasi dari beberapa nilai ke nilai lain. Ini cenderung menyiratkan semacam proses manual. Ini cenderung menyiratkan asosiasi tetap. Pertimbangkan nilai ASCII:

'a' -> 97
'b' -> 98
'c' -> 99
...

Seluruh rangkaian asosiasi disebut pemetaan (kata benda). Memiliki karakter dan angka serta membuat asosiasi juga disebut pemetaan (kata kerja). Ini berbeda dari fungsi, karena fungsi mengambil beberapa input dan menghasilkan output berdasarkan beberapa perhitungan. Pemetaan umumnya tidak melakukan perhitungan, melainkan semacam pencarian.

Telastyn
sumber
0

Peta geografis menerjemahkan landmark dunia nyata ke format yang berbeda: selembar kertas yang mudah dibaca.

Pemetaan dalam sains adalah ide yang sama. Anda mengambil satu set objek dari satu domain dan menerjemahkannya ke domain lain untuk penggunaan yang berbeda.

Ini adalah konsep luas yang dapat digunakan secara umum untuk sejumlah situasi.

Harga Jones
sumber