﻿1
00:00:01,120 --> 00:00:03,120
‫Instruktur: Dalam video ini

2
00:00:03,120 --> 00:00:06,030
‫dan video berikutnya kita akan menyelami bagian

3
00:00:06,030 --> 00:00:08,870
‫penting lain dari arsitektur Node JS dengan

4
00:00:08,870 --> 00:00:11,093
‫event JS dan arsitektur event-driven.

5
00:00:12,370 --> 00:00:15,210
‫Jadi sebagian besar modul inti Node, seperti

6
00:00:15,210 --> 00:00:19,780
‫yang telah kita gunakan, seperti HTTP, Sistem File, dan Timer dibangun di

7
00:00:19,780 --> 00:00:23,200
‫sekitar arsitektur yang digerakkan oleh peristiwa, dan tentu saja

8
00:00:23,200 --> 00:00:25,830
‫kita juga dapat menggunakan arsitektur ini

9
00:00:25,830 --> 00:00:28,720
‫untuk keuntungan kita dalam kode kita sendiri.

10
00:00:28,720 --> 00:00:31,910
‫Dan konsepnya sebenarnya cukup sederhana.

11
00:00:31,910 --> 00:00:34,780
‫Jadi, di Node, ada objek tertentu yang

12
00:00:34,780 --> 00:00:37,843
‫disebut penghasil peristiwa yang memancarkan peristiwa bernama

13
00:00:37,843 --> 00:00:41,520
‫segera setelah sesuatu yang penting terjadi di aplikasi, seperti

14
00:00:41,520 --> 00:00:45,360
‫permintaan yang mengenai server, atau timer yang kedaluwarsa, atau file

15
00:00:45,360 --> 00:00:47,660
‫yang selesai untuk dibaca.

16
00:00:47,660 --> 00:00:51,030
‫Event-event ini kemudian dapat diambil oleh event listener

17
00:00:51,030 --> 00:00:54,380
‫yang kami atur oleh developer, yang

18
00:00:54,380 --> 00:00:58,870
‫akan mengaktifkan fungsi callback yang dilampirkan ke setiap listener, oke.

19
00:00:58,870 --> 00:01:02,150
‫Jadi sekali lagi, di satu sisi, kita memiliki

20
00:01:02,150 --> 00:01:05,470
‫pemancar acara, dan di sisi lain pendengar acara yang akan

21
00:01:05,470 --> 00:01:08,940
‫bereaksi terhadap peristiwa yang dipancarkan dengan memanggil fungsi panggilan balik.

22
00:01:08,940 --> 00:01:10,540
‫Sederhana, bukan?

23
00:01:10,540 --> 00:01:12,900
‫Dan mungkin cara terbaik untuk memahami ini

24
00:01:12,900 --> 00:01:14,630
‫adalah dengan melihat sebuah contoh.

25
00:01:14,630 --> 00:01:17,760
‫Jadi mari kita pahami secara singkat bagaimana

26
00:01:17,760 --> 00:01:21,330
‫Node menggunakan arsitektur yang digerakkan oleh peristiwa untuk menangani

27
00:01:21,330 --> 00:01:25,950
‫permintaan server dalam modul HTTP yang telah kita gunakan di bagian lain.

28
00:01:25,950 --> 00:01:28,600
‫Jadi ketika kita ingin membuat server,

29
00:01:28,600 --> 00:01:30,384
‫kita menggunakan metode

30
00:01:30,384 --> 00:01:33,900
‫Create Server dan menyimpannya ke dalam Server Variable.

31
00:01:33,900 --> 00:01:36,260
‫Implementasi ini di sini sedikit berbeda

32
00:01:36,260 --> 00:01:40,270
‫dari apa yang kami lakukan sebelumnya, tetapi cara kerjanya persis sama.

33
00:01:40,270 --> 00:01:44,040
‫Bagaimanapun, server ini. pada metode adalah bagaimana

34
00:01:44,040 --> 00:01:49,040
‫kita benar-benar membuat pendengar, dan dalam hal ini untuk acara "permintaan".

35
00:01:49,070 --> 00:01:51,390
‫Jadi katakanlah kita menjalankan

36
00:01:51,390 --> 00:01:53,770
‫server kita, dan permintaan baru dibuat.

37
00:01:53,770 --> 00:01:57,410
‫Server bertindak sebagai emitor, dan secara otomatis

38
00:01:57,410 --> 00:02:01,220
‫akan memancarkan peristiwa yang disebut "permintaan" setiap kali

39
00:02:01,220 --> 00:02:02,810
‫permintaan mengenai server.

40
00:02:02,810 --> 00:02:04,350
‫Sederhana, bukan?

41
00:02:04,350 --> 00:02:07,100
‫Kemudian, karena kita sudah memiliki listener

42
00:02:07,100 --> 00:02:10,830
‫yang disiapkan untuk kejadian persis ini, fungsi callback yang kita

43
00:02:10,830 --> 00:02:14,000
‫lampirkan ke listener ini akan secara otomatis dipanggil.

44
00:02:14,000 --> 00:02:16,780
‫Dan fungsi semacam ini sudah kita ketahui

45
00:02:16,780 --> 00:02:20,040
‫sebelumnya, itu hanya akan mengirim beberapa data kembali ke klien.

46
00:02:20,040 --> 00:02:22,970
‫Sekarang, ia bekerja dengan cara ini karena di

47
00:02:22,970 --> 00:02:26,074
‫balik layar server sebenarnya adalah turunan dari kelas

48
00:02:26,074 --> 00:02:28,980
‫Node JS EventEmitter, jadi ia mewarisi semua

49
00:02:28,980 --> 00:02:32,500
‫logika pemancar dan pendengaran peristiwa ini dari kelas EventEmitter

50
00:02:32,500 --> 00:02:35,410
‫itu, dan jangan khawatir, kita akan menggunakan

51
00:02:35,410 --> 00:02:38,410
‫semuanya baik-baik saja di video berikutnya, sehingga Anda

52
00:02:38,410 --> 00:02:41,210
‫menjadi terbiasa dengan semua logika ini.

53
00:02:41,210 --> 00:02:43,340
‫Sekarang, hanya untuk menyelesaikan kuliah ini,

54
00:02:43,340 --> 00:02:46,800
‫saya percaya penting untuk menyebutkan bahwa logika EventEmitter ini

55
00:02:46,800 --> 00:02:49,960
‫disebut Pola Pengamat dalam pemrograman Javascript secara umum,

56
00:02:49,960 --> 00:02:53,160
‫dan itu pola yang cukup populer dengan banyak

57
00:02:53,160 --> 00:02:54,740
‫kasus yang digunakan.

58
00:02:54,740 --> 00:02:57,090
‫Jadi idenya adalah saya menempatkan

59
00:02:57,090 --> 00:03:00,370
‫seorang pengamat, dalam hal ini pendengar acara, yang

60
00:03:00,370 --> 00:03:03,450
‫terus menunggu, terus mengamati subjek yang pada akhirnya

61
00:03:03,450 --> 00:03:06,486
‫akan memancarkan acara yang ditunggu-tunggu oleh pendengar.

62
00:03:06,486 --> 00:03:09,680
‫Dan kebalikan dari pola ini hanyalah fungsi yang

63
00:03:09,680 --> 00:03:12,370
‫memanggil fungsi lain, yang sebenarnya lebih

64
00:03:12,370 --> 00:03:14,530
‫sering kita lakukan, bukan?

65
00:03:14,530 --> 00:03:16,490
‫Tetapi pola pengamat

66
00:03:16,490 --> 00:03:19,020
‫telah dirancang untuk bereaksi daripada memanggil.

67
00:03:19,020 --> 00:03:22,330
‫Dan itu karena ada manfaat besar

68
00:03:22,330 --> 00:03:25,248
‫menggunakan arsitektur ini, yaitu fakta bahwa

69
00:03:25,248 --> 00:03:27,420
‫semuanya lebih terpisah.

70
00:03:27,420 --> 00:03:30,340
‫Kami tidak memiliki, misalnya, fungsi dari modul

71
00:03:30,340 --> 00:03:33,610
‫Sistem File yang memanggil fungsi dari modul HTTP karena

72
00:03:33,610 --> 00:03:35,770
‫itu akan menjadi kekacauan besar.

73
00:03:35,770 --> 00:03:38,690
‫Sebagai gantinya, modul-modul ini dipisahkan dengan baik dan

74
00:03:38,690 --> 00:03:41,470
‫mandiri, masing-masing memancarkan peristiwa yang dapat ditanggapi

75
00:03:41,470 --> 00:03:44,380
‫oleh fungsi lain, bahkan jika mereka berasal

76
00:03:44,380 --> 00:03:46,120
‫dari modul lain.

77
00:03:46,120 --> 00:03:49,170
‫Juga, menggunakan arsitektur yang digerakkan oleh peristiwa

78
00:03:49,170 --> 00:03:52,390
‫membuatnya jauh lebih mudah untuk bereaksi beberapa kali terhadap

79
00:03:52,390 --> 00:03:53,760
‫peristiwa yang sama.

80
00:03:53,760 --> 00:03:58,210
‫Yang harus kita lakukan adalah menyiapkan banyak pendengar, bukan?

81
00:03:58,210 --> 00:04:01,760
‫Oke dan itu adalah arsitektur event-driven Node

82
00:04:01,760 --> 00:04:03,020
‫secara singkat.

83
00:04:03,020 --> 00:04:06,050
‫Dan jangan khawatir jika ini tampak terlalu teoretis,

84
00:04:06,050 --> 00:04:08,730
‫Anda akan melihat logika ini digunakan

85
00:04:08,730 --> 00:04:12,183
‫dalam banyak situasi sepanjang kursus, mulai dari video berikutnya.

