Swift
// var helloMessage: String = "Selamat Datang"
// print("Selamat Pagi dan \(helloMessage)")
// let valueMax = Int32.max; print(valueMax)
// tipe data predicted
// let age = 20; print(age)
// akan memprediksi bertipe data integer
// let pi = 3.14125; print(pi)
// akan memprediksi bertipe data double, pada dasarnya swift akan mendahlukan double
// dari pada float pada saat prediksi dengan floating point
// materi numeric literals
// Numerik literal dapat ditulis dengan berbagai macam:
// Angka desimal, tanpa awalan.
// Angka biner, dengan awalan 0b.
// Angka oktal, dengan awalan 0o.
// Angka heksadesimal, dengan awalan 0x.
// let decimalInteger = 18 //desimal
// let binaryInteger = 0b10010 // 18 in binary notasi
// let octalInteger = 0o22 // 18 in octal notasi
// let hexadecimalInteger = 0x12 // 18 in hexadesimal
// print(decimalInteger, binaryInteger, octalInteger, hexadecimalInteger)
// floating point literal
// let decimalDouble = 12.1875
// let exponentDouble = 1.231252e1
// let hexadesimalDouble = 0xC.3p0
// print(decimalDouble, exponentDouble, hexadesimalDouble)
// integer konfersi
// let cannotBeNegative: UInt8 = -1
// UInt8 tidak dapat menyimpan angka negatif, dan akan menyebabkan error.
// let tooBig: Int8 = Int8.max + 1
// Int8 tidak dapat menyimpan sebuah angka yang lebih besar dari nilai maksimumnya, dan akan menyebabkan error.
// let twoThousand: UInt16 = 2_000
// let one: UInt8 = 1
// let twoThousandAndOne = twoThousand + UInt16(one); print(twoThousandAndOne)
// let three = 3
// let point = 0.4123
// let pi = Double(three) + point; print(pi)
// Type Alias
// Menginisasi nilai tertetu dengan alias tertentu
// typealias AudioSample = UInt16
// var maxAudioSample = AudioSample.max; print(maxAudioSample)
// Booelan
// seperti biasanya
// let jerukWarnaOrange = false
// let jambuWarnaHitam = false
// if jerukWarnaOrange != true{
// print("Benar sekali, jeruk berwarna oren")
// }else{
// print("Oops anda belum beruntung")
// }
// Tuples
// tuples adalah struktur data yang digunakan untuk menyimpan sekumpulan data
// let http404Error = (404, "Not Found")
// cara lain
// let http404Error = (statusCode: "200", description: "OK")
// let (statusCode, statusMessage) = http404Error
// jika ingin mengambil salah satu data dari tupples
// let (justStatusCode, _) = http404Error
// print("The status code is \(http404Error.statusCode)")
// Optionals
// let possibleNumber = "123"
// let convertNumber = Int(possibleNumber)
// print(type(of: convertNumber))
// Null masih dalam optionals
// var serverResponseCode: Int? = 404
// serverResponseCode = nil
// print(type(of: serverResponseCode))
// print(serverResponseCode)
// if serverResponseCode != nil {
// print("serverResponseCode have some integer value")
// }else{
// print("Wrong way")
// }
// Ketika mengunakan string? maka data akan nil
// var myName: String?
// print(myName)
// Optional Binding
// digunakan untuk mencari tahu apakah sbuah opsional mengadung nilai atau tidak
// let possibleNumber = "123"
// if let actualNumber = Int(possibleNumber) {
// print("The string \"(possibleNumber)\" has an integer value of \(actualNumber)")
// }
// if let firstNumber = Int("4") {
// if let secondNumber = Int("42") {
// if firstNumber < secondNumber && secondNumber < 100 {
// print("\(firstNumber) < \(secondNumber) < 100")
// }
// }
// }
// Erorr Handling
// bisa menggunakan throw , catch, propagating atau modulationINFO