func greet(person: [String: String]) {
guard let name = person["name"] else {
return
}
print("Hello \(name)!")
guard let location = person["location"] else {
print("I hope the weather is nice near you.")
return
}
print("I hope the weather is nice in \(location).")
}
greet(person: ["name": "John"])
greet(person: ["name": "Vincent", "location": "London"])
print("\n==============================================================")
print("Latihan Logika Penghitung Nilai!")
print("Selamat datang di Dicoding Academy!")
print("Input banyak nilai yang akan dihitung", terminator: ": "); let total = readLine() ?? ""
print("\n==============================================================")
if let totalItem: Int = Int(total) {
var allValues = [Int]()
for index in 1...totalItem {
print("Masukkanlah item ke \(index)", terminator: ": "); let newItem = Int(readLine() ?? "") ?? 0
allValues.append(newItem)
}
print("\n==============================================================")
var sum: Int = 0
for (_, value) in allValues.enumerated() {
sum+=value
}
let average = sum/totalItem
var grade = ""
switch average {
case 0...40:
grade = "E";
break
case 41...50:
grade = "D";
break
case 51...60:
grade = "C";
break
case 61...70:
grade = "C+";
break
case 71...80:
grade = "B";
break
case 81...90:
grade = "B+";
break
case 91...100:
grade = "A";
break
default:
grade = "Invalid!";
}
if grade != "Invalid!" {
print("Anda mendapatkan grade nilai: \(grade).")
print("Anda mendapatkan total nilai: \(sum), dengan rata-rata: \(average)")
} else {
print("Nilai Anda Invalid!")
}
} else {
print("Nilai Anda Invalid!")
}
print("\n==============================================================")
/*
func functionName(parameters) -> returnType {
statement1
statement2
...
statementN
return parameters
} */
func greet(person: String, greeted: Bool) -> String {
if greeted {
return "Hello again, \(person)!"
} else {
return "Hello, \(person)!"
}
}
func arithmeticMean(_ numbers: Double...) -> Double {
var total: Double = 0
for number in numbers {
total += number
}
mean = total / Double(numbers.count)
return mean
} // argumen _ numbers memungkinkan memasukkan banyak nilai sbb:
// arithmeticMean(1,2,3,4,5,9) dinamakan parameter variadic
// function inout, argumentya bisa dimanipulasi!
func swapInts(_ a: inout Int, _ b: inout Int) -> (first: Int, second: Int) {
let temporaryA = a
a = b
b = temporaryA
return (a, b)
}
var firstInt = 5
var anotherInt = 905
swapInts(&firstInt, &anotherInt) // pakai ampersand untuk menyatakan inout, saat memasukkan parameter