Yukihiro "Matz" Matsumoto

Often people, especially computer engineers, focus on the machines. They think, "By doing this, the machine will run fast. By doing this, the machine will run more effectively. By doing this, the machine will something something something." They are focusing on machines. But in fact we need to focus on humans, on how humans care about doing programming or operating the application of the machines. We are the masters. They are the slaves.
Yukihiro "Matz" Matsumoto, Creator of Ruby

Rabu, 08 Oktober 2014

Melakukan Delete Objek Pada Array Menggunakan Blok Dengan Kondisi Tertentu

Tips ini sangat berguna apabila anda memiliki banyak objek yang  dalam sebuah array, dan anda ingin mendelete beberapa objek yang ada didalam array dengan kondisi tertentu. Method yang akan digunakan adalah delete_if yang merupakan method yang terdapat pada objek Array dalam Standard Ruby Library. Method ini menggunakan blok dalam penggunaanya, dimana didalam blok tersebut kita dapat memberikan kondisi bilamana objek tersebut akan didelete dari array. Berikut contoh sederhana yang saya sertakan adalah sebuah array dengan isi berupa angka dari 1-100. Angka yang ingin kita buang dari array adalah bilangan genap.

irb > numbers = []
irb > for i in 1..100
irb >   numbers << i
irb > end
irb > numbers

=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]

Cara yang digunakan untuk membuat array ini adalah menggunakan for loop dengan range 1 sampai dengan 100, dan setiap angka dimasukkan ke dalam array menggunakan operator <<.

irb > numbers.delete_if do |number|
irb >  number % 2 == 0
irb > end
=> [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99]

Pada line 1 kita menggunakan method delete_if yang mengharapkan sebuah blok, blok tersebut akan memanggil masing-masing objek dalam array, dimana disini kita menggunakan variabel number yang ada didalam pipe character || untuk merepresentasikan objek tersebut.

Pada line 2 merupakan bagian dimana kita memberikan syarat bilamana objek tersebut akan didelete dari array, disini syarat yang diberikan yaitu apabila bilangan tersebut habis dibagi 2.

Hasil yang dikeluarkan dapat dilihat pada baris akhir, dimana bilangan-bilangan genap yang ada di dalam array berhasil didelete dengan sempurna oleh Ruby.

Tidak ada komentar:

Posting Komentar