Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

Nama: One Octadion

NIM: 215150209111010

Observable
1. Observable dengan satu item

Main.kt
1 import io.reactivex.rxjava3.core.Observable

2 fun main(args: Array<String>) {


3 val observableSatu: Observable<String> =
4 Observable.just("Satu")
val subsciberSatu = observableSatu.subscribe {
5
println(it)
6
}
7 }

Screenshot:

2. Observable dengan > 1 item

Main.kt
1 import io.reactivex.rxjava3.core.Observable

2 fun main(args: Array<String>) {


3 val observableBanyak = Observable.just("Satu",
4 "Dua", "Lima")
val subscriberBanyak = observableBanyak.subscribe(){
5
println("Subscriber Banyak:"+it)
6
}
7 }

Screenshot:
3. Contoh lain Observable dengan > 1 item

Main.kt
1 import io.reactivex.rxjava3.core.Observable

2 fun main(args: Array<String>) {


3 val observableBanyak_range: Observable<Int> =
4 Observable.range(1,10)
val subscriberBanyak_range =
5
observableBanyak_range.subscribe(){
6
print(it)
7 }
8 }

Screenshot:

4. Observable dengan 0 item

Main.kt
1 import io.reactivex.rxjava3.core.Observable

2 fun main(args: Array<String>) {


3 val observableKosong = Observable.empty<Unit>()
4 val subscriberKosong = observableKosong.subscribe(){
print(it)
5
}
6
}
7

Screenshot:
5. Observable dengan never

Main.kt
1 import io.reactivex.rxjava3.core.Observable

2 fun main(args: Array<String>) {


3 val observableNever = Observable.never<Any>()
4 val subcriberNever = observableNever.subscribe(){
print(it)
5
}
6 }
7

Screenshot:

6. Subscribe ke Observable

Main.kt
1 import io.reactivex.rxjava3.core.Observable
2 import io.reactivex.rxjava3.kotlin.subscribeBy
3 fun main(args: Array<String>) {
4 val observableSatu: Observable<String> =
5 Observable.just("Satu")
val subsciberSatu = observableSatu.subscribe {
6
println(it)
7
}
8 observableSatu.subscribeBy(
9 onNext = { println("Next:"+it) },
10 onComplete = { println("selesai") }
)
11
12 val observableBanyak = Observable.just("Satu",
13 "Dua", "Lima")
14 val subscriberBanyak = observableBanyak.subscribe(){
15 println("Subscriber Banyak:"+it)
16 }
observableBanyak.subscribeBy(
17
onNext = { println("Next:"+it) },
18
onComplete = { println("selesai") }
19 )
20 }

Screenshot:

7. Disposing dan Terminating

Main.kt
1 import io.reactivex.rxjava3.core.Observable
2 import io.reactivex.rxjava3.kotlin.subscribeBy
3 fun main(args: Array<String>) {
4 val observableSatu: Observable<String> =
5 Observable.just("Satu")
val subsciberSatu = observableSatu.subscribe {
6
println(it)
7
}
8 val subscription = observableSatu.subscribeBy(
9 onNext = { println(it) },
10 onComplete = { println("selesai") }
11 )
12 subscription.dispose()
13 }

Screenshot:
8. Composite Disposable

Main.kt
1 import io.reactivex.rxjava3.core.Observable
2 import io.reactivex.rxjava3.kotlin.subscribeBy
3 import
4 io.reactivex.rxjava3.disposables.CompositeDisposable
5 fun main(args: Array<String>) {
val observableSatu: Observable<String> =
6
Observable.just("Satu")
7
val observableBanyak = Observable.just("Satu",
8 "Dua", "Lima")

9 val subscriptions = CompositeDisposable()


10 val subscriptionSatu = observableSatu.subscribeBy(
11 onNext = { println(it) },
12 onComplete = { println("selesai") }
13 )
14 subscriptions.add(subscriptionSatu)
15 val subscriptionBanyak =
16 observableBanyak.subscribeBy(
17 onNext = { println(it) },
onComplete = { println("selesai") }
18
)
19 subscriptions.add(subscriptionBanyak)
20 subscriptions.dispose()
21 }

Screenshot:
9. Eksperimen dengan Create (1)

Main.kt
1 import io.reactivex.rxjava3.core.Observable
2 import io.reactivex.rxjava3.kotlin.subscribeBy

3 fun main(args: Array<String>) {


4 Observable.create<String> { emitter ->
emitter.onNext("1")
5
emitter.onComplete()
6
emitter.onNext("2")
7 }. subscribeBy(
8 onNext = { println(it) },
9 onComplete = { println("selesai")}
10 )
11 }

Screenshot:

10. Eksperimen dengan Create (2)

Main.kt
1 import io.reactivex.rxjava3.core.Observable
2 import io.reactivex.rxjava3.kotlin.subscribeBy

3 fun main(args: Array<String>) {


4 Observable.create<String> { emitter ->
emitter.onNext("1")
5
emitter.onError(RuntimeException("Error"))
6 emitter.onComplete()
7 emitter.onNext("2")
8 }.subscribeBy(
9 onNext = { println(it) },
10 onError = { println(it) },
11 onComplete = { println("selesai")}
12 )
13 }

Screenshot:
11. Eksperimen dengan Create (3)

Main.kt
1 import io.reactivex.rxjava3.core.Observable
2 import io.reactivex.rxjava3.kotlin.subscribeBy

3 fun main(args: Array<String>) {


4 Observable.create<String> { emitter ->
emitter.onNext("1")
5
emitter.onNext("2")
6
}.subscribeBy(
7 onNext = { println(it) },
8 onError = { println("error") },
9 onComplete = { println("selesai")}
10 )
11 }

Screenshot:

12. Observable Factories

Main.kt
1 import io.reactivex.rxjava3.core.Observable
2 import io.reactivex.rxjava3.kotlin.subscribeBy
3 import
4 io.reactivex.rxjava3.disposables.CompositeDisposable
5
fun main(args: Array<String>) {
6
val disposable = CompositeDisposable()
7
var flip = false
8 val factory: Observable<Int> = Observable.defer{
9 flip = !flip
10 if(flip){
11 Observable.just(1,2,3)
12 } else {
Observable.just(4,5,6)
13
}
14
}
15 for(i in 1..3) {
16 disposable.add(
17 factory.subscribe {
18 println(it)
19 }
20 )
21 }
22 disposable.dispose()
23 }

Screenshot:

13. Penggunaan Single

Main.kt
1 import io.reactivex.rxjava3.core.Observable
2 import io.reactivex.rxjava3.kotlin.subscribeBy
3 import java.io.File
4 import java.io.FileNotFoundException
5 import io.reactivex.rxjava3.core.Single
import
6
io.reactivex.rxjava3.disposables.CompositeDisposable
7
fun main(args: Array<String>) {
8 val subscriptions = CompositeDisposable()
9 fun loadText(filename: String): Single<String> {
10 return Single.create create@{ emitter ->
11 val file = File(filename)
12 if(!file.exists()) {
13
14 emitter.onError(FileNotFoundException("File tidak
15 ditemukan $filename"))
16 return@create
17 }
18 val contents = file.readText(Charsets.UTF_8)
emitter.onSuccess(contents)
19
20 }
21 }
22 val observer = loadText("baca.txt")
23 .subscribeBy(
24 onSuccess = { println(it) },
onError = { println("Error, $it") }
25
)
26
subscriptions.add(observer)
27 }

Screenshot:

You might also like