Menu
CoddyTech

Map dan Collect

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

Meskipun each bagus untuk melakukan tindakan pada elemen, terkadang kamu ingin mengubah 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  # Menampilkan 2, 4, 6, dan 8, masing-masing pada baris tersendiri

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

Berikut contoh praktis yang mengonversi suhu dari Celsius ke Fahrenheit:

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

puts fahrenheit  # Menampilkan 32, 68, dan 212, masing-masing pada baris terpisah

Kamu juga bisa menggunakan map dengan string:

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

puts capitalized  # Menampilkan Alice dan Bob, masing-masing pada baris terpisah

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

challenge icon

Tantangan

Mudah

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

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

Cetak setiap elemen dari array baru yang sudah dikuadratkan pada barisnya sendiri.

Misalnya, jika inputnya adalah 2,4,6,8,10, outputnya harus seperti ini:

4
16
36
64
100

Jika inputnya adalah 1,2,3,4,5, outputnya harus seperti ini:

1
4
9
16
25

Jika inputnya adalah 3,7,11, outputnya harus seperti ini:

9
49
121

Jika inputnya adalah 10, outputnya harus seperti ini:

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 angka
# 3. Cetak setiap hasil kuadrat pada baris tersendiri
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