Menu
CoddyTech

Map dan Collect

Termasuk bagian Dasar-Dasar dalam perjalanan Ruby di Coddy. Pelajaran 68 dari 88.

Meskipun each sangat cocok untuk melakukan tindakan pada elemen, terkadang kamu ingin mengubah sebuah array menjadi array baru. Method map (juga disebut collect) melakukan hal ini: method ini membuat array baru yang berisi hasil menjalankan blokmu pada setiap elemen.

numbers = [1, 2, 3, 4]
doubled = numbers.map { |n| n * 2 }

puts doubled  # Output: 2, 4, 6, 8

Perbedaan utama dari each adalah map mengembalikan array baru dengan nilai yang telah diubah. array asli tetap tidak berubah.

Berikut contoh praktis untuk mengonversi suhu dari Celsius ke Fahrenheit:

celsius = [0, 20, 100]
fahrenheit = celsius.map { |c| c * 9 / 5 + 32 }

puts fahrenheit  # Output: 32, 68, 212

Kamu juga bisa menggunakan map dengan string:

names = ["alice", "bob"]
capitalized = names.map { |name| name.capitalize }

puts capitalized  # Output: Alice, Bob

Method map dan collect identik. Ruby menyediakan kedua nama ini, jadi kamu bisa menggunakan nama yang lebih enak dibaca dalam kodemu. Sebagian besar developer Ruby lebih memilih map karena lebih singkat.

challenge icon

Tantangan

Mudah

Baca satu baris input yang berisi bilangan bulat yang dipisahkan koma (misalnya, 2,4,6,8,10).

Pisahkan input menjadi array bilangan bulat, lalu gunakan method map untuk membuat array baru yang setiap angkanya dikuadratkan (dikalikan dengan dirinya sendiri).

Cetak setiap elemen dari array kuadrat baru pada barisnya sendiri.

Misalnya, jika input-nya 2,4,6,8,10, output-nya harus seperti berikut:

4
16
36
64
100

Jika input-nya 1,2,3,4,5, output-nya harus seperti berikut:

1
4
9
16
25

Jika input-nya 3,7,11, output-nya harus seperti berikut:

9
49
121

Jika input-nya 10, output-nya harus seperti berikut:

100

Coba sendiri

# Baca input yang dipisahkan koma
input = gets.chomp

# TODO: Tulis kodemu di bawah ini
# 1. Pisahkan string input menjadi array berisi bilangan bulat
# 2. Gunakan method map untuk menguadratkan setiap bilangan
# 3. Cetak setiap bilangan hasil kuadrat pada baris terpisah
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler Ruby online