﻿1
00:00:01,170 --> 00:00:02,830
‫Instruktur: Sekarang, untuk mengatur

2
00:00:02,830 --> 00:00:04,710
‫panggung untuk beberapa kuliah berikutnya,

3
00:00:04,710 --> 00:00:08,083
‫mari kita mulai dengan belajar sedikit tentang arsitektur Node.

4
00:00:09,430 --> 00:00:11,980
‫Jadi mari kita nyatakan arsitektur itu

5
00:00:11,980 --> 00:00:14,610
‫di sini dalam hal dependensi Node,

6
00:00:14,610 --> 00:00:16,620
‫yang hanya beberapa

7
00:00:16,620 --> 00:00:20,300
‫perpustakaan tempat Node bergantung agar berfungsi dengan baik.

8
00:00:20,300 --> 00:00:23,320
‫Jadi run time Node memiliki beberapa

9
00:00:23,320 --> 00:00:25,010
‫ketergantungan, dan yang

10
00:00:25,010 --> 00:00:29,030
‫paling penting adalah mesin V8 (bergumam) dan libuv.

11
00:00:29,030 --> 00:00:32,800
‫Sekarang kami katakan sebelumnya bahwa Node adalah run time

12
00:00:32,800 --> 00:00:35,570
‫JavaScript berdasarkan mesin V8 Google, bukan?

13
00:00:35,570 --> 00:00:39,140
‫Jadi, itulah mengapa itu muncul di sini sebagai ketergantungan.

14
00:00:39,140 --> 00:00:42,620
‫Jika bukan karena V8, Node sama sekali tidak

15
00:00:42,620 --> 00:00:45,980
‫akan mengerti kode JavaScript yang kita tulis.

16
00:00:45,980 --> 00:00:48,770
‫Dan oleh karena itu, V8 adalah bagian

17
00:00:48,770 --> 00:00:50,880
‫mendasar dalam arsitektur Node.

18
00:00:50,880 --> 00:00:55,450
‫Jadi sekali lagi, mesin V8 adalah yang mengubah kode JavaScript menjadi

19
00:00:55,450 --> 00:00:59,470
‫kode mesin yang benar-benar dapat dipahami oleh komputer.

20
00:00:59,470 --> 00:01:03,370
‫Oke, tapi itu saja tidak cukup untuk membuat keseluruhan kerangka

21
00:01:03,370 --> 00:01:05,380
‫kerja sisi server seperti Node.js.

22
00:01:05,380 --> 00:01:09,100
‫Dan itulah mengapa kami juga memiliki libuv di Node.js.

23
00:01:09,100 --> 00:01:12,380
‫Dan libuv adalah perpustakaan sumber terbuka dengan

24
00:01:12,380 --> 00:01:15,060
‫fokus kuat pada IO asinkron.

25
00:01:15,060 --> 00:01:16,860
‫Jadi, masukan keluaran.

26
00:01:16,860 --> 00:01:19,500
‫Lapisan inilah yang memberi Node akses

27
00:01:19,500 --> 00:01:21,790
‫ke sistem operasi komputer

28
00:01:21,790 --> 00:01:25,240
‫yang mendasarinya, sistem file, jaringan, dan banyak lagi.

29
00:01:25,240 --> 00:01:28,440
‫Selain itu, libuv juga mengimplementasikan dua fitur yang sangat penting

30
00:01:28,440 --> 00:01:30,540
‫dari Node.js. JS yang

31
00:01:30,540 --> 00:01:34,010
‫merupakan loop acara dan juga kumpulan utas.

32
00:01:34,010 --> 00:01:37,130
‫Dan secara sederhana, loop acara bertanggung jawab

33
00:01:37,130 --> 00:01:40,430
‫untuk menangani tugas-tugas mudah seperti menjalankan panggilan balik

34
00:01:40,430 --> 00:01:44,790
‫dan IO jaringan sementara kumpulan utas adalah untuk pekerjaan yang lebih berat

35
00:01:44,790 --> 00:01:48,200
‫seperti akses file atau kompresi atau sesuatu seperti itu.

36
00:01:48,200 --> 00:01:50,120
‫Tetapi Anda akan mempelajari

37
00:01:50,120 --> 00:01:52,430
‫semua tentang itu, tentang loop peristiwa dan

38
00:01:52,430 --> 00:01:54,430
‫kumpulan utas, dalam beberapa video berikutnya.

39
00:01:54,430 --> 00:01:56,080
‫Satu hal penting yang

40
00:01:56,080 --> 00:01:59,010
‫perlu diperhatikan di sini adalah bahwa libuv sebenarnya

41
00:01:59,010 --> 00:02:01,840
‫sepenuhnya ditulis dalam C++ dan bukan dalam JavaScript.

42
00:02:01,840 --> 00:02:06,840
‫Dan V8 sendiri, juga menggunakan kode C++ selain JavaScript.

43
00:02:06,950 --> 00:02:10,150
‫Jadi oleh karena itu, Node sendiri adalah program

44
00:02:10,150 --> 00:02:14,170
‫yang ditulis dalam C++ dan JavaScript dan bukan hanya dalam JavaScript

45
00:02:14,170 --> 00:02:16,530
‫seperti yang Anda harapkan, bukan?

46
00:02:16,530 --> 00:02:19,660
‫Sekarang keindahan dari ini adalah Node. JS mengikat

47
00:02:19,660 --> 00:02:22,310
‫semua perpustakaan ini bersama-sama, tidak peduli

48
00:02:22,310 --> 00:02:25,640
‫apakah ditulis dalam C++ atau JavaScript dan

49
00:02:25,640 --> 00:02:30,380
‫kemudian memberi kami akses pengembang ke fungsi mereka dalam JavaScript murni.

50
00:02:30,380 --> 00:02:33,090
‫Jadi itu benar-benar memberi kita

51
00:02:33,090 --> 00:02:37,290
‫lapisan abstraksi yang sangat bagus untuk membuat hidup kita

52
00:02:37,290 --> 00:02:41,200
‫jauh lebih mudah daripada kita harus mengacaukan kode C++.

53
00:02:41,200 --> 00:02:43,970
‫Itu akan menjadi pengalaman yang mengerikan, bukan?

54
00:02:43,970 --> 00:02:47,450
‫Jadi sekali lagi, arsitektur ini memungkinkan kita untuk menulis

55
00:02:47,450 --> 00:02:49,490
‫kode JavaScript murni 100 persen,

56
00:02:49,490 --> 00:02:52,960
‫berjalan di Node.js. JS dan masih

57
00:02:52,960 --> 00:02:55,490
‫mengakses fungsi seperti untuk membaca file,

58
00:02:55,490 --> 00:02:57,650
‫yang di balik layar sebenarnya

59
00:02:57,650 --> 00:03:01,290
‫diimplementasikan di libuv atau perpustakaan lain dalam bahasa C++.

60
00:03:01,290 --> 00:03:03,090
‫Dan berbicara

61
00:03:03,090 --> 00:03:06,750
‫tentang perpustakaan lain, Node sebenarnya tidak hanya

62
00:03:06,750 --> 00:03:10,920
‫mengandalkan V8 dan libuv, tetapi juga pada http-parser

63
00:03:10,920 --> 00:03:15,920
‫untuk mengurai http, c-ares atau semacamnya untuk beberapa hal permintaan

64
00:03:16,420 --> 00:03:21,420
‫DNS, OpenSSL untuk keepography, dan juga zlib untuk kompresi.

65
00:03:21,490 --> 00:03:24,740
‫Dan ini tidak begitu penting untuk dipahami, oke?

66
00:03:24,740 --> 00:03:27,830
‫Jadi pada akhirnya, ketika kita memiliki semua bagian ini

67
00:03:27,830 --> 00:03:32,030
‫dengan baik, kita berakhir dengan Node.js. JS siap digunakan

68
00:03:32,030 --> 00:03:35,000
‫di sisi server keempat aplikasi.

69
00:03:35,000 --> 00:03:37,670
‫Dan selanjutnya, Anda akan mempelajari lebih lanjut tentang utas

70
00:03:37,670 --> 00:03:39,600
‫di Node dan kumpulan utas.

71
00:03:39,600 --> 00:03:41,663
‫Jadi pantau terus untuk yang satu itu.

