# 1. Ruby adalah bahasa yang Object Oriented (OOP) => semua elemen dalam source code adalah object
# 2. OOP => Class dan object
# 3. Object => atribut; method/function
puts "Sedang belajar ruby"
# Variable
numeric_1 = 1 #Integer, Float, Decimal
numeric_2 = 10
numeric_3 = 10.5
string_1 = "halo"
string_2 = "3"
boolean_1 = true # atau false
array_1 = [1,2,3,4,5]
array_2 = [true, false]
array_3 = [1,2, true, "halo"]
array_4 = [1,2, [3,4], [5, [6]]]
hash_1 = {"satu" => 1, "dua" => 2, "tiga" => 3, "four" => 4, "five" => 5}
hash_2 = {satu: 1, dua: 2, tiga: 3}
hash_3 = {"satu" => 1, "dua" => {"dua-satu" => {"dua-satu-satu" => 122, "dua-satu-dua" => 212}}, "tiga" => 3}
range = 1..5
sekarang = Time.now
numeric_3 = numeric_1 + numeric_2 + string_2.to_i
puts numeric_3
jumlah = (numeric_3 + numeric_2).to_i
puts jumlah
# + penjumlahan
# - pengurangan
# * perkalian
# / pembagian
# % modulo
=begin
# Constant
Constant_1 = 1
puts numeric_1.class
puts numeric_2.class
puts boolean_1.class
puts hash_2.class
puts "Hash (tipe data) ----------"
puts hash_3["dua"]
puts hash_3.map {|key, value| puts key }
puts "Range (tipe data) ----------"
array_range = range.to_a
puts array_range.class
puts range.class
puts "Datetime (tipe data) ----------"
puts sekarang
puts sekarang.year
puts "Konversi (tipe data) ----------"
puts numeric_1.to_s
puts string_1.to_i
puts hash_1.to_a
puts "Konversi (tipe data) ----------"
puts numeric_1 + string_1
puts "Kondisi (if else) ----------"
if (numeric_1 > 0)
puts "INTEGER #{string_1}"
elsif (numeric_2 < 0)
puts "NEGATIVE"
else
puts "NONE"
end
puts "For do (looping) ----------"
for a in array_3 do
puts a
end
puts "Each do (looping) ----------"
array_3.each do |a|
puts a
end
puts "Each with index (looping) ----------"
array_2.each_with_index do |a,i|
puts "#{i+1} = #{a}"
end
puts "Operasi aritmatika 1 ----------"
array_1.each_with_index do |a,i|
puts a+1
end
puts "Operasi aritmatika 2 ----------"
array_1.each_with_index do |a,i|
puts a+array_1[i-1]
end
# 1, 4, 9, 16, 25 (i*i)
puts "Operasi aritmatika 3 ----------"
array_1.each do |element|
result = element * element
puts "#{result}"
end
# 1, 3, 5 (ganjil saja)
puts "Operasi aritmatika 4 ----------"
array_1.each do |element|
if element % 2 != 0
puts "#{element}"
end
end
# 2, 4 (habis dibagi 2)
puts "Operasi aritmatika 5 ----------"
array_1.each { |element| puts "#{element}" if element % 2 == 0 }
# Operasi: + - / * %
# Variable: global variable, local variable, instance variable, class variable
# Constant:
# Constant_1 = 2 #akan error
# Function:
def fungsi_1
puts "Function 1 ----------"
array_input = [1,2,3,4,5]
array_input.each { |element| puts "#{element}" if element % 2 == 0 }
end
fungsi_1()
def fungsi_2(array_input, teks, label="ANGKA")
puts "Function 2 ----------"
array_input.each { |element| puts "#{element}" if element % 2 == 0 }
end
#fungsi_2(array_1)
fungsi_2(array_1, "")
# Execercise:
# array_3 = [1,2, true, "halo"]
# fungsi_3(array_3, "Billy")
# "halo Billy"
# fungsi_3(array_3, "Andi")
# "halo Andi"
def fungsi_3(array, nama)
array.each do |element|
if element.is_a?(String)
puts "#{element} #{nama}"
end
end
end
array_3 = [1, 2, true, "halo"]
fungsi_3(array_3, "Billy")
=end