<div class="km kn do aw ko b kp kq kr ks kt ku kv kw kx ky kz" data-selectable-paragraph="" id="55a1" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.004em; line-height: 1.58; margin-bottom: -0.46em; margin-top: 2em;"> Banyak orang salah kaprah pada saat berbicara tentang <a class="dg ca la lb lc ld" href="https://developers.google.com/web/progressive-web-apps/" style="-webkit-tap-highlight-color: transparent; background-image: url("data:image/svg+xml; background-position: 0px calc(1em + 1px); background-repeat: repeat-x; background-size: 1px 1px; box-sizing: inherit; http: //www.w3.org/2000/svg\"><line x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\" stroke=\"rgba(0, 0, 0, 0.84)\" /></svg>"); text-decoration-line: none;" target="_blank"><em class="le" style="box-sizing: inherit;">Progressive Web App</em>(PWA)</a>, bahwa untuk bisa memiliki PWA harus <em class="le" style="box-sizing: inherit;">Single Page Application</em>(SPA), atau harus menggunakan <em class="le" style="box-sizing: inherit;">framework</em> modern seperti React, Angular, Polymer, dan lainnya. Sehingga banyak developer yang merasa bahwa mereka tidak bisa menerapkan PWA karena mereka masih menggunakan <em class="le" style="box-sizing: inherit;">server rendered framework</em> seperti PHP atau Ruby Framework. Padahal berbicara PWA, tentunya yang utama adalah kata <em class="le" style="box-sizing: inherit;">progressive</em> di mana maksud sebenarnya adalah peningkatan pengalaman user secara progresif atau bertahap. Nah pertanyaannya mulai dari mana sih kalau ingin membuat sebuah aplikasi PWA? Tulisan ini semoga bisa membantu kalian untuk menjawabnya.</div> <h1 class="lf lg do aw av dm lh li lj lk ll lm ln lo lp lq lr" data-selectable-paragraph="" id="09f6" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-sans-serif-font, "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Arial, sans-serif; font-size: 34px; letter-spacing: -0.022em; line-height: 1.12; margin: 1.95em 0px -0.28em;"> <span class="bi" style="box-sizing: inherit; font-weight: inherit;">Keamanan HTTPS Adalah Pondasi Dasar</span></h1> <div class="km kn do aw ko b kp ls kr lt kt lu kv lv kx lw kz" data-selectable-paragraph="" id="5c95" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.004em; line-height: 1.58; margin-bottom: -0.46em; margin-top: 0.86em;"> Keamanan di web merupakan isu yang cukup besar karena banyaknya <em class="le" style="box-sizing: inherit;">phising</em>, <em class="le" style="box-sizing: inherit;">content hijacking</em>, dan isu keamanan lainnya. Sebagian besar isu ini mengeksploitasi kemudahan web yang sangat mudah diakses. Hanya dengan URL, kita bisa mengakses tanpa perlu meng-<em class="le" style="box-sizing: inherit;">install</em> apapun di perangkat kita. Dengan itu, <a class="dg ca la lb lc ld" href="https://developers.google.com/web/fundamentals/security/encrypt-in-transit/why-https" style="-webkit-tap-highlight-color: transparent; background-image: url("data:image/svg+xml; background-position: 0px calc(1em + 1px); background-repeat: repeat-x; background-size: 1px 1px; box-sizing: inherit; http: //www.w3.org/2000/svg\"><line x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\" stroke=\"rgba(0, 0, 0, 0.84)\" /></svg>"); text-decoration-line: none;" target="_blank">penggunaan HTTPS adalah wajib di sisi <em class="le" style="box-sizing: inherit;">web server</em></a>, karena hampir semua fungsi dari PWA cuma bisa berjalan di HTTPS. Dan sekarang dengan adanya <a class="dg ca la lb lc ld" href="https://letsencrypt.org/" style="-webkit-tap-highlight-color: transparent; background-image: url("data:image/svg+xml; background-position: 0px calc(1em + 1px); background-repeat: repeat-x; background-size: 1px 1px; box-sizing: inherit; http: //www.w3.org/2000/svg\"><line x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\" stroke=\"rgba(0, 0, 0, 0.84)\" /></svg>"); text-decoration-line: none;" target="_blank"><em class="le" style="box-sizing: inherit;">SSL certificate</em> gratis</a>, maka tidak ada alasan lagi untuk tidak menggunakan HTTPS di web kalian. Tentu ini juga panggilan buat para provider hosting untuk bisa menyediakan SSL gratis di semua server mereka. Tanpa dukungan pihak <em class="le" style="box-sizing: inherit;">hosting provider</em> maka web yang aman akan tetap menjadi isu.</div> <h1 class="lf lg do aw av dm lh li lj lk ll lm ln lo lp lq lr" data-selectable-paragraph="" id="4ccf" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-sans-serif-font, "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Arial, sans-serif; font-size: 34px; letter-spacing: -0.022em; line-height: 1.12; margin: 1.95em 0px -0.28em;"> Meningkatkan pengalaman pengguna secara bertahap</h1> <div class="km kn do aw ko b kp ls kr lt kt lu kv lv kx lw kz" data-selectable-paragraph="" id="11f2" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.004em; line-height: 1.58; margin-bottom: -0.46em; margin-top: 0.86em;"> Setelah memiliki pondasi, baru kita bisa memulai untuk meningkatkan pengalaman pengguna web kita secara bertahap. Dan tentu tidak semua harus didukung, tapi kita perlu memilih berdasarkan jenis aplikasi web kita. PWA bukanlah teknologi yang semua komponen harus dibuat. Komponen PWA yang ada di bawah ini bersifat modular, jadi bisa saja beberapa komponen tidak digunakan, atau cuma mengimplementasi 2 atau 3 komponen saja. Dan berikut adalah tahapan yang kalian bisa coba.</div> <br /> <figure class="ly lz ma mb mc ep x y paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="md me ed mf ab" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;"> <div class="x y lx" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 816px;"> <div class="mj l ed mk" style="background-color: rgba(0, 0, 0, 0.05); box-sizing: inherit; margin: auto; position: relative;"> <div class="ml l" style="box-sizing: inherit; padding-bottom: 228.328px;"> <div class="cw mg gd n o gc ab cf mh mi" style="box-sizing: inherit; height: 228.328px; left: 0px; opacity: 0; overflow: hidden; position: absolute; top: 0px; transform: translateZ(0px); transition: opacity 100ms ease 400ms; width: 680px; will-change: transform;"> <img class="gd n o gc ab mm mn qz ra" height="274" src="https://miro.medium.com/max/60/1*l-A9d_a86O8KjMbxIDOTZA.png?q=20" style="box-sizing: inherit; filter: blur(20px); height: 228.328px; left: 0px; position: absolute; top: 0px; transform: scale(1.1); transition: visibility 0ms ease 400ms; vertical-align: middle; visibility: hidden; width: 680px;" width="816" /></div> <img class="nk nl gd n o gc ab ga" height="274" src="https://miro.medium.com/max/816/1*l-A9d_a86O8KjMbxIDOTZA.png" style="background: rgb(255, 255, 255); box-sizing: inherit; height: 228.328px; left: 0px; opacity: 1; position: absolute; top: 0px; transition: opacity 400ms ease 0ms; vertical-align: middle; width: 680px;" width="816" /></div> </div> </div> </div> <figcaption class="ba ds mp mq he cu x y mr ms av dr" data-selectable-paragraph="" style="box-sizing: inherit; color: rgba(0, 0, 0, 0.54); font-family: medium-content-sans-serif-font, "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Arial, sans-serif; font-size: 16px; line-height: 1.4; margin-left: auto; margin-right: auto; margin-top: 10px; max-width: 728px; text-align: center;">Skema komponen fungsi PWA</figcaption></figure><br /> <h1 class="lf lg do aw av dm lh li lj lk ll lm ln lo lp lq lr" data-selectable-paragraph="" id="102a" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-sans-serif-font, "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Arial, sans-serif; font-size: 34px; letter-spacing: -0.022em; line-height: 1.12; margin: 1.95em 0px -0.28em;"> 1. Siap untuk PWA</h1> <div class="km kn do aw ko b kp ls kr lt kt lu kv lv kx lw kz" data-selectable-paragraph="" id="9cbb" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.004em; line-height: 1.58; margin-bottom: -0.46em; margin-top: 0.86em;"> Yang pertama adalah apakah website kalian sudah siap untuk PWA. Karena sebelum kita mencoba menerapkan fungsi PWA maka website kita harus siap untuk dioptimasi. Dua checklist yang saya rekomendasikan untuk memastikan website kalian siap untuk PWA adalah:</div> <ol class="" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; list-style: none none; margin: 0px; padding: 0px;"> <li class="km kn do aw ko b kp kq kr ks kt ku kv kw kx ky kz mt mu mv" data-selectable-paragraph="" id="f97b" style="box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.004em; line-height: 1.58; list-style-type: decimal; margin-bottom: -0.46em; margin-left: 30px; margin-top: 2em; padding-left: 0px;"><a class="dg ca la lb lc ld" href="https://developers.google.com/web/fundamentals/security/encrypt-in-transit/enable-https" style="-webkit-tap-highlight-color: transparent; background-image: url("data:image/svg+xml; background-position: 0px calc(1em + 1px); background-repeat: repeat-x; background-size: 1px 1px; box-sizing: inherit; http: //www.w3.org/2000/svg\"><line x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\" stroke=\"rgba(0, 0, 0, 0.84)\" /></svg>"); text-decoration-line: none;" target="_blank">Menggunakan protokol HTTPS</a>. Tanpa HTTPS maka hampir sebagian besar komponen PWA tidak akan bisa diimplementasikan.</li> <li class="km kn do aw ko b kp mw kr mx kt my kv mz kx na kz mt mu mv" data-selectable-paragraph="" id="7522" style="box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.004em; line-height: 1.58; list-style-type: decimal; margin-bottom: -0.46em; margin-left: 30px; margin-top: 1.05em; padding-left: 0px;">Menggunakan <a class="dg ca la lb lc ld" href="https://developers.google.com/web/fundamentals/architecture/app-shell" style="-webkit-tap-highlight-color: transparent; background-image: url("data:image/svg+xml; background-position: 0px calc(1em + 1px); background-repeat: repeat-x; background-size: 1px 1px; box-sizing: inherit; http: //www.w3.org/2000/svg\"><line x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\" stroke=\"rgba(0, 0, 0, 0.84)\" /></svg>"); text-decoration-line: none;" target="_blank"><em class="le" style="box-sizing: inherit;">App Shell Architecture</em></a>, ini merupakan hal yang paling susah karena terkadang memerlukan penulisan ulang aplikasi. Tapi menurut saya, PWA tetap masih bisa diimplementasi walaupun ada beberapa hal yang terbatasi tanpa <em class="le" style="box-sizing: inherit;">App Shell Architecture</em> ini.</li> </ol> <h1 class="lf lg do aw av dm lh li lj lk ll lm ln lo lp lq lr" data-selectable-paragraph="" id="8890" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-sans-serif-font, "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Arial, sans-serif; font-size: 34px; letter-spacing: -0.022em; line-height: 1.12; margin: 1.95em 0px -0.28em;"> 2. Tingkatkan kecepatan loading dan respon</h1> <div class="km kn do aw ko b kp ls kr lt kt lu kv lv kx lw kz" data-selectable-paragraph="" id="336b" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.004em; line-height: 1.58; margin-bottom: -0.46em; margin-top: 0.86em;"> Kecepatan <em class="le" style="box-sizing: inherit;">loading</em> dan respon menurut saya adalah yang paling penting dan harus menjadi langkah pertama untuk optimalisasi PWA. Tanpa kecepatan maka pengguna akan meninggalkan <em class="le" style="box-sizing: inherit;">website</em> kalian tanpa mencoba pengalaman lainnya. Bahkan <span class="ko nb" style="box-sizing: inherit; font-weight: 700;">data yang ada menyebutkan </span><a class="dg ca la lb lc ld" href="https://www.doubleclickbygoogle.com/articles/mobile-speed-matters/" style="-webkit-tap-highlight-color: transparent; background-image: url("data:image/svg+xml; background-position: 0px calc(1em + 1px); background-repeat: repeat-x; background-size: 1px 1px; box-sizing: inherit; http: //www.w3.org/2000/svg\"><line x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\" stroke=\"rgba(0, 0, 0, 0.84)\" /></svg>"); text-decoration-line: none;" target="_blank"><span class="ko nb" style="box-sizing: inherit; font-weight: 700;">3 detik website tidak tampil, 53% pengguna akan pergi</span></a>. Buat apa membuat sesuatu sedemikian baik tapi akhirnya orang tidak memakai karena terlalu lambat.</div> <div class="km kn do aw ko b kp kq kr ks kt ku kv kw kx ky kz" data-selectable-paragraph="" id="0d0d" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.004em; line-height: 1.58; margin-bottom: -0.46em; margin-top: 2em;"> Dengan <em class="le" style="box-sizing: inherit;">loading</em> yang cepat maka pengguna akan dapat merasakan <em class="le" style="box-sizing: inherit;">value</em>yang kalian coba tawarkan dan selanjutnya baru menentukan apakah kalian bisa membuat mereka tinggal atau pergi.</div> <br /> <figure class="ly lz ma mb mc ep x y paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="x y nc" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 644px;"> <div class="mj l ed mk" style="background-color: rgba(0, 0, 0, 0.05); box-sizing: inherit; margin: auto; position: relative;"> <div class="nd l" style="box-sizing: inherit; padding-bottom: 411px;"> <div class="cw mg gd n o gc ab cf mh mi" style="box-sizing: inherit; height: 411px; left: 0px; opacity: 0; overflow: hidden; position: absolute; top: 0px; transform: translateZ(0px); transition: opacity 100ms ease 400ms; width: 644px; will-change: transform;"> <img class="gd n o gc ab mm mn qz ra" height="411" src="https://miro.medium.com/max/60/1*-eFQOPTVr3cR7wJXSSdGWQ.png?q=20" style="box-sizing: inherit; filter: blur(20px); height: 411px; left: 0px; position: absolute; top: 0px; transform: scale(1.1); transition: visibility 0ms ease 400ms; vertical-align: middle; visibility: hidden; width: 644px;" width="644" /></div> <img class="nk nl gd n o gc ab ga" height="411" src="https://miro.medium.com/max/644/1*-eFQOPTVr3cR7wJXSSdGWQ.png" style="background: rgb(255, 255, 255); box-sizing: inherit; height: 411px; left: 0px; opacity: 1; position: absolute; top: 0px; transition: opacity 400ms ease 0ms; vertical-align: middle; width: 644px;" width="644" /></div> </div> </div> <figcaption class="ba ds mp mq he cu x y mr ms av dr" data-selectable-paragraph="" style="box-sizing: inherit; color: rgba(0, 0, 0, 0.54); font-family: medium-content-sans-serif-font, "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Arial, sans-serif; font-size: 16px; line-height: 1.4; margin-left: auto; margin-right: auto; margin-top: 10px; max-width: 728px; text-align: center;">Source: DoubleClick — The need for mobile speed, September 2016</figcaption></figure><br /> <div class="km kn do aw ko b kp kq kr ks kt ku kv kw kx ky kz" data-selectable-paragraph="" id="47bc" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.004em; line-height: 1.58; margin-bottom: -0.46em; margin-top: 2em;"> Untuk meningkatkan kecepatan <em class="le" style="box-sizing: inherit;">website</em>, kalian bisa melihat <a class="dg ca la lb lc ld" href="https://developers.google.com/web/fundamentals/performance/rail" style="-webkit-tap-highlight-color: transparent; background-image: url("data:image/svg+xml; background-position: 0px calc(1em + 1px); background-repeat: repeat-x; background-size: 1px 1px; box-sizing: inherit; http: //www.w3.org/2000/svg\"><line x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\" stroke=\"rgba(0, 0, 0, 0.84)\" /></svg>"); text-decoration-line: none;" target="_blank">beberapa petunjuk di sini</a>.</div> <h1 class="lf lg do aw av dm lh li lj lk ll lm ln lo lp lq lr" data-selectable-paragraph="" id="4fa4" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-sans-serif-font, "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Arial, sans-serif; font-size: 34px; letter-spacing: -0.022em; line-height: 1.12; margin: 1.95em 0px -0.28em;"> 3. Memasang <span class="ne" style="box-sizing: inherit; font-style: inherit;">service worker</span> untuk dukungan <span class="ne" style="box-sizing: inherit; font-style: inherit;">offline</span> dan peningkatan kecepatan serta pengalaman extra</h1> <div class="km kn do aw ko b kp ls kr lt kt lu kv lv kx lw kz" data-selectable-paragraph="" id="bda2" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.004em; line-height: 1.58; margin-bottom: -0.46em; margin-top: 0.86em;"> <a class="dg ca la lb lc ld" href="https://developers.google.com/web/fundamentals/primers/service-workers/" style="-webkit-tap-highlight-color: transparent; background-image: url("data:image/svg+xml; background-position: 0px calc(1em + 1px); background-repeat: repeat-x; background-size: 1px 1px; box-sizing: inherit; http: //www.w3.org/2000/svg\"><line x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\" stroke=\"rgba(0, 0, 0, 0.84)\" /></svg>"); text-decoration-line: none;" target="_blank"><em class="le" style="box-sizing: inherit;">Service worker</em></a> adalah komponen yang bisa diprogram dan berada di antara <em class="le" style="box-sizing: inherit;">browser</em> dan <em class="le" style="box-sizing: inherit;">web server</em>. Dengan memasang <em class="le" style="box-sizing: inherit;">service worker</em> maka kita bisa melakukan cache pada resources yang dibutuhkan dan juga memungkinkan aplikasi kita tetap bisa diakses dengan baik walaupun di jaringan yang tidak stabil atau <a class="dg ca la lb lc ld" href="https://developers.google.com/web/fundamentals/instant-and-offline/offline-cookbook/" style="-webkit-tap-highlight-color: transparent; background-image: url("data:image/svg+xml; background-position: 0px calc(1em + 1px); background-repeat: repeat-x; background-size: 1px 1px; box-sizing: inherit; http: //www.w3.org/2000/svg\"><line x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\" stroke=\"rgba(0, 0, 0, 0.84)\" /></svg>"); text-decoration-line: none;" target="_blank">bahkan <em class="le" style="box-sizing: inherit;">offline</em></a>.</div> <div class="km kn do aw ko b kp kq kr ks kt ku kv kw kx ky kz" data-selectable-paragraph="" id="eb89" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.004em; line-height: 1.58; margin-bottom: -0.46em; margin-top: 2em;"> Tujuannya adalah untuk kondisi pengguna yang sudah merasakan <em class="le" style="box-sizing: inherit;">value</em>yang kalian tawarkan dan mereka merasa ingin terus menggunakannya. Maka untuk pengguna seperti ini, mereka harus bisa merasakan pengalaman dari value yang ditawarkan lebih baik lagi. Seperti aplikasi tetap responsif di kondisi apapun.</div> <div class="km kn do aw ko b kp kq kr ks kt ku kv kw kx ky kz" data-selectable-paragraph="" id="cc75" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.004em; line-height: 1.58; margin-bottom: -0.46em; margin-top: 2em;"> <em class="le" style="box-sizing: inherit;">Service worker</em> juga memungkinkan kita untuk melakukan fungsi ekstra seperti <a class="dg ca la lb lc ld" href="https://developers.google.com/web/updates/2015/12/background-sync" style="-webkit-tap-highlight-color: transparent; background-image: url("data:image/svg+xml; background-position: 0px calc(1em + 1px); background-repeat: repeat-x; background-size: 1px 1px; box-sizing: inherit; http: //www.w3.org/2000/svg\"><line x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\" stroke=\"rgba(0, 0, 0, 0.84)\" /></svg>"); text-decoration-line: none;" target="_blank"><em class="le" style="box-sizing: inherit;">background sync</em></a><em class="le" style="box-sizing: inherit;"> </em>di mana aplikasi bisa melakukan sinkronisasi data pada saat kondisi kembali online walaupun website tidak sedang dibuka, dan <a class="dg ca la lb lc ld" href="https://developers.google.com/web/updates/2015/03/push-notifications-on-the-open-web" style="-webkit-tap-highlight-color: transparent; background-image: url("data:image/svg+xml; background-position: 0px calc(1em + 1px); background-repeat: repeat-x; background-size: 1px 1px; box-sizing: inherit; http: //www.w3.org/2000/svg\"><line x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\" stroke=\"rgba(0, 0, 0, 0.84)\" /></svg>"); text-decoration-line: none;" target="_blank"><em class="le" style="box-sizing: inherit;">push notification</em></a><em class="le" style="box-sizing: inherit;"> </em>untuk mengirimkan notifikasi kepada pengguna atau menjalankan fungsi tertentu di aplikasi.</div> <h1 class="lf lg do aw av dm lh li lj lk ll lm ln lo lp lq lr" data-selectable-paragraph="" id="7c65" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-sans-serif-font, "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Arial, sans-serif; font-size: 34px; letter-spacing: -0.022em; line-height: 1.12; margin: 1.95em 0px -0.28em;"> 4. Push notification untuk mengingatkan value dan membawa pengguna kembali</h1> <div class="km kn do aw ko b kp ls kr lt kt lu kv lv kx lw kz" data-selectable-paragraph="" id="2338" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.004em; line-height: 1.58; margin-bottom: -0.46em; margin-top: 0.86em;"> Setelah pengguna betah dengan <em class="le" style="box-sizing: inherit;">value</em> yang ditawarkan, maka selanjutnya adalah bagaimana untuk mengingatkan mereka akan <em class="le" style="box-sizing: inherit;">value</em> kalian. Salah satu caranya tentu dengan mengingatkan mereka. Dan media yang bisa dicoba selain <em class="le" style="box-sizing: inherit;">email</em> adalah dengan <a class="dg ca la lb lc ld" href="https://developers.google.com/web/fundamentals/push-notifications/" style="-webkit-tap-highlight-color: transparent; background-image: url("data:image/svg+xml; background-position: 0px calc(1em + 1px); background-repeat: repeat-x; background-size: 1px 1px; box-sizing: inherit; http: //www.w3.org/2000/svg\"><line x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\" stroke=\"rgba(0, 0, 0, 0.84)\" /></svg>"); text-decoration-line: none;" target="_blank"><em class="le" style="box-sizing: inherit;">push notification</em></a>.</div> <div class="km kn do aw ko b kp kq kr ks kt ku kv kw kx ky kz" data-selectable-paragraph="" id="16f4" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.004em; line-height: 1.58; margin-bottom: -0.46em; margin-top: 2em;"> Tapi yang ini kalian harus berhati-hati jangan sampai terlalu sering mengingatkan dan akhirnya akan terganggu oleh notifikasi yang terlalu sering. Pastikan notifikasi yang kalian kirimkan memiliki kriteria agar pengguna tidak menganggap notifikasi kalian sebagai <em class="le" style="box-sizing: inherit;">spam</em> pengganggu. Karena hasil riset yang ada menunjukkan notifikasi adalah salah satu alasan sebuah aplikasi dihapus. Dan di <em class="le" style="box-sizing: inherit;">web</em>, bila notifikasi kalian diblok maka kemungkinan besar kalian akan diblok selamanya hingga pengguna mengganti perangkat.</div> <br /> <figure class="ly lz ma mb mc ep x y paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="md me ed mf ab" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;"> <div class="x y nf" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 905px;"> <div class="mj l ed mk" style="background-color: rgba(0, 0, 0, 0.05); box-sizing: inherit; margin: auto; position: relative;"> <div class="ng l" style="box-sizing: inherit; padding-bottom: 427.531px;"> <div class="cw mg gd n o gc ab cf mh mi" style="box-sizing: inherit; height: 427.531px; left: 0px; opacity: 0; overflow: hidden; position: absolute; top: 0px; transform: translateZ(0px); transition: opacity 100ms ease 400ms; width: 680px; will-change: transform;"> <img class="gd n o gc ab mm mn qz ra" height="569" src="https://miro.medium.com/max/60/1*E7LBDjGP8KitbD31FD9KrA.png?q=20" style="box-sizing: inherit; filter: blur(20px); height: 427.531px; left: 0px; position: absolute; top: 0px; transform: scale(1.1); transition: visibility 0ms ease 400ms; vertical-align: middle; visibility: hidden; width: 680px;" width="905" /></div> <img class="nk nl gd n o gc ab ga" height="569" src="https://miro.medium.com/max/905/1*E7LBDjGP8KitbD31FD9KrA.png" style="background: rgb(255, 255, 255); box-sizing: inherit; height: 427.531px; left: 0px; opacity: 1; position: absolute; top: 0px; transition: opacity 400ms ease 0ms; vertical-align: middle; width: 680px;" width="905" /></div> </div> </div> </div> <figcaption class="ba ds mp mq he cu x y mr ms av dr" data-selectable-paragraph="" style="box-sizing: inherit; color: rgba(0, 0, 0, 0.54); font-family: medium-content-sans-serif-font, "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Arial, sans-serif; font-size: 16px; line-height: 1.4; margin-left: auto; margin-right: auto; margin-top: 10px; max-width: 728px; text-align: center;">Source: <a class="dg ca la lb lc ld" href="http://www.uxbooth.com/articles/rules-for-creating-perfect-push-notifications/" style="-webkit-tap-highlight-color: transparent; background-image: url("data:image/svg+xml; background-position: 0px calc(1em + 1px); background-repeat: repeat-x; background-size: 1px 1px; box-sizing: inherit; http: //www.w3.org/2000/svg\"><line x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\" stroke=\"rgba(0, 0, 0, 0.84)\" /></svg>"); text-decoration-line: none;" target="_blank">http://www.uxbooth.com/articles/rules-for-creating-perfect-push-notifications/</a></figcaption></figure><br /> <h1 class="lf lg do aw av dm lh li lj lk ll lm ln lo lp lq lr" data-selectable-paragraph="" id="0df0" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-sans-serif-font, "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Arial, sans-serif; font-size: 34px; letter-spacing: -0.022em; line-height: 1.12; margin: 1.95em 0px -0.28em;"> 5. Add to homescreen untuk kemudahan akses</h1> <div class="km kn do aw ko b kp ls kr lt kt lu kv lv kx lw kz" data-selectable-paragraph="" id="00d3" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.004em; line-height: 1.58; margin-bottom: -0.46em; margin-top: 0.86em;"> Setelah secara kecepatan akses sudah baik dan value sudah diterima dengan baik, selanjutnya adalah memudahkan pengguna untuk mengakses aplikasi kita semudah memilih <em class="le" style="box-sizing: inherit;">icon</em> aplikasi di layar <em class="le" style="box-sizing: inherit;">smart phone</em>. Untuk itu PWA sudah dilengkapi dengan komponen <a class="dg ca la lb lc ld" href="https://developers.google.com/web/fundamentals/app-install-banners/" style="-webkit-tap-highlight-color: transparent; background-image: url("data:image/svg+xml; background-position: 0px calc(1em + 1px); background-repeat: repeat-x; background-size: 1px 1px; box-sizing: inherit; http: //www.w3.org/2000/svg\"><line x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\" stroke=\"rgba(0, 0, 0, 0.84)\" /></svg>"); text-decoration-line: none;" target="_blank"><em class="le" style="box-sizing: inherit;">add to home screen</em></a> di mana aplikasi <em class="le" style="box-sizing: inherit;">web</em> kalian akan menawarkan opsi untuk menyimpan icon aplikasi kalian di home screen perangkat mereka.</div> <br /> <figure class="ly lz ma mb mc ep x y paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="x y nh" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 597px;"> <div class="mj l ed mk" style="background-color: rgba(0, 0, 0, 0.05); box-sizing: inherit; margin: auto; position: relative;"> <div class="ni l" style="box-sizing: inherit; padding-bottom: 721px;"> <div class="cw mg gd n o gc ab cf mh mi" style="box-sizing: inherit; height: 721px; left: 0px; opacity: 0; overflow: hidden; position: absolute; top: 0px; transform: translateZ(0px); transition: opacity 100ms ease 400ms; width: 597px; will-change: transform;"> <img class="gd n o gc ab mm mn qz ra" height="721" src="https://miro.medium.com/freeze/max/50/1*krd0HBNhJJEcSooQJGZ1CA.gif?q=20" style="box-sizing: inherit; filter: blur(20px); height: 721px; left: 0px; position: absolute; top: 0px; transform: scale(1.1); transition: visibility 0ms ease 400ms; vertical-align: middle; visibility: hidden; width: 597px;" width="597" /></div> <img class="nk nl gd n o gc ab ga" height="721" src="https://miro.medium.com/max/597/1*krd0HBNhJJEcSooQJGZ1CA.gif" style="background: rgb(255, 255, 255); box-sizing: inherit; height: 721px; left: 0px; opacity: 1; position: absolute; top: 0px; transition: opacity 400ms ease 0ms; vertical-align: middle; width: 597px;" width="597" /></div> </div> </div> <figcaption class="ba ds mp mq he cu x y mr ms av dr" data-selectable-paragraph="" style="box-sizing: inherit; color: rgba(0, 0, 0, 0.54); font-family: medium-content-sans-serif-font, "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Arial, sans-serif; font-size: 16px; line-height: 1.4; margin-left: auto; margin-right: auto; margin-top: 10px; max-width: 728px; text-align: center;">Add to home screen</figcaption></figure><br /> <div class="km kn do aw ko b kp kq kr ks kt ku kv kw kx ky kz" data-selectable-paragraph="" id="7dc7" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.004em; line-height: 1.58; margin-bottom: -0.46em; margin-top: 2em;"> Cara agar tawaran ke pengguna bisa muncul adalah kalian harus melengkapi aplikasi kalian dengan <a class="dg ca la lb lc ld" href="https://developers.google.com/web/fundamentals/web-app-manifest/" style="-webkit-tap-highlight-color: transparent; background-image: url("data:image/svg+xml; background-position: 0px calc(1em + 1px); background-repeat: repeat-x; background-size: 1px 1px; box-sizing: inherit; http: //www.w3.org/2000/svg\"><line x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\" stroke=\"rgba(0, 0, 0, 0.84)\" /></svg>"); text-decoration-line: none;" target="_blank"><em class="le" style="box-sizing: inherit;">file manifest</em></a> lengkap dengan <em class="le" style="box-sizing: inherit;">icon</em> dan <em class="le" style="box-sizing: inherit;">meta data</em> lainnya. User yang merasakan value dan suka maka akan mencoba menggunakan aplikasi kalian lagi. Dengan memberikan kemudahan pada mereka untuk mengakses aplikasi kalian maka pengalaman pengguna akan lebih baik.</div> <h1 class="lf lg do aw av dm lh li lj lk ll lm ln lo lp lq lr" data-selectable-paragraph="" id="e0e4" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-sans-serif-font, "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Arial, sans-serif; font-size: 34px; letter-spacing: -0.022em; line-height: 1.12; margin: 1.95em 0px -0.28em;"> 6. Memudahkan pengguna untuk registrasi dan masuk ke website kalian</h1> <div class="km kn do aw ko b kp ls kr lt kt lu kv lv kx lw kz" data-selectable-paragraph="" id="480a" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.004em; line-height: 1.58; margin-bottom: -0.46em; margin-top: 0.86em;"> Membuat user mendaftarkan diri mereka adalah salah satu bagian yang paling susah. Kendala pertama tentu memberikan alasan untuk mendaftarkan diri, kenapa mereka harus mendaftarkan diri mereka. Selanjutnya adalah adalah memudahkan usaha yang diperlukan untuk mendaftar atau masuk ke website kalian.</div> <div class="km kn do aw ko b kp kq kr ks kt ku kv kw kx ky kz" data-selectable-paragraph="" id="2cc7" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.004em; line-height: 1.58; margin-bottom: -0.46em; margin-top: 2em;"> Dengan memudahkan pengguna mendaftar dan masuk ke website kalian maka kalian bisa lebih mudah dalam mempelajari tingkah laku mereka dan bisa mengetahui bagaimana kalian bisa memberikan value yang lebih baik lagi untuk pengguna kalian.</div> <div class="km kn do aw ko b kp kq kr ks kt ku kv kw kx ky kz" data-selectable-paragraph="" id="8f6c" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.004em; line-height: 1.58; margin-bottom: -0.46em; margin-top: 2em;"> Beberapa cara untuk memudahkan pengguna untuk mendaftarkan diri dan masuk ke website kalian adalah <a class="dg ca la lb lc ld" href="https://developers.google.com/web/fundamentals/security/credential-management/" style="-webkit-tap-highlight-color: transparent; background-image: url("data:image/svg+xml; background-position: 0px calc(1em + 1px); background-repeat: repeat-x; background-size: 1px 1px; box-sizing: inherit; http: //www.w3.org/2000/svg\"><line x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\" stroke=\"rgba(0, 0, 0, 0.84)\" /></svg>"); text-decoration-line: none;" target="_blank">pengaturan <em class="le" style="box-sizing: inherit;">credentials</em></a>, masuk dengan akun social media seperti Facebook atau Twitter, serta <a class="dg ca la lb lc ld" href="https://developers.google.com/identity/one-tap/web/" style="-webkit-tap-highlight-color: transparent; background-image: url("data:image/svg+xml; background-position: 0px calc(1em + 1px); background-repeat: repeat-x; background-size: 1px 1px; box-sizing: inherit; http: //www.w3.org/2000/svg\"><line x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\" stroke=\"rgba(0, 0, 0, 0.84)\" /></svg>"); text-decoration-line: none;" target="_blank"><em class="le" style="box-sizing: inherit;">Google one-tap sign-up and auto sign-in</em></a>.</div> <h1 class="lf lg do aw av dm lh li lj lk ll lm ln lo lp lq lr" data-selectable-paragraph="" id="8ae3" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-sans-serif-font, "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Arial, sans-serif; font-size: 34px; letter-spacing: -0.022em; line-height: 1.12; margin: 1.95em 0px -0.28em;"> 7. Memudahkan proses pembayaran</h1> <div class="km kn do aw ko b kp ls kr lt kt lu kv lv kx lw kz" data-selectable-paragraph="" id="daa3" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.004em; line-height: 1.58; margin-bottom: -0.46em; margin-top: 0.86em;"> Bila kalian adalah startup atau layanan yang memerlukan proses pembayaran, salah satu isu terbesar di <em class="le" style="box-sizing: inherit;">mobile</em> adalah kompleksitas pembayaran. Banyaknya informasi yang harus dimasukkan dengan layar dan papan ketik terbatas membuat orang kebanyakan jadi malas untuk melanjutkan.</div> <div class="km kn do aw ko b kp kq kr ks kt ku kv kw kx ky kz" data-selectable-paragraph="" id="eb06" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.004em; line-height: 1.58; margin-bottom: -0.46em; margin-top: 2em;"> Konversi pembayaran di <em class="le" style="box-sizing: inherit;">mobile</em> masih di bawah <em class="le" style="box-sizing: inherit;">desktop</em> padahal dari sisi trafik <em class="le" style="box-sizing: inherit;">mobile</em> masih lebih besar dari <em class="le" style="box-sizing: inherit;">desktop</em>. Salah satu yang kalian bisa lakukan implementasi<em class="le" style="box-sizing: inherit;"> </em><a class="dg ca la lb lc ld" href="https://developers.google.com/web/updates/2015/06/checkout-faster-with-autofill" style="-webkit-tap-highlight-color: transparent; background-image: url("data:image/svg+xml; background-position: 0px calc(1em + 1px); background-repeat: repeat-x; background-size: 1px 1px; box-sizing: inherit; http: //www.w3.org/2000/svg\"><line x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\" stroke=\"rgba(0, 0, 0, 0.84)\" /></svg>"); text-decoration-line: none;" target="_blank"><em class="le" style="box-sizing: inherit;">auto fill checkout form</em></a> atau <a class="dg ca la lb lc ld" href="https://developers.google.com/web/fundamentals/payments/" style="-webkit-tap-highlight-color: transparent; background-image: url("data:image/svg+xml; background-position: 0px calc(1em + 1px); background-repeat: repeat-x; background-size: 1px 1px; box-sizing: inherit; http: //www.w3.org/2000/svg\"><line x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\" stroke=\"rgba(0, 0, 0, 0.84)\" /></svg>"); text-decoration-line: none;" target="_blank"><em class="le" style="box-sizing: inherit;">Payment Request API</em></a>untuk memudah pembayaran. Dua cara tersebut mampu mengurangi usaha yang diperlukan oleh pengguna untuk menyelesaikan proses pembayaran.</div> <h1 class="lf lg do aw av dm lh li lj lk ll lm ln lo lp lq lr" data-selectable-paragraph="" id="0f59" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-sans-serif-font, "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Arial, sans-serif; font-size: 34px; letter-spacing: -0.022em; line-height: 1.12; margin: 1.95em 0px -0.28em;"> Penutup</h1> <div class="km kn do aw ko b kp ls kr lt kt lu kv lv kx lw kz" data-selectable-paragraph="" id="fe6c" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.004em; line-height: 1.58; margin-bottom: -0.46em; margin-top: 0.86em;"> Itulah 7 langkah yang kalian bisa coba untuk memberikan pengalaman progresif atau bertahap kepada pengguna kalian di web. Dari 7 langkah tersebut, tahapan 1–3 merupakan yang paling prioritas karena bertujuan untuk memberikan kemudahan untuk pengguna bisa mengenal <em class="le" style="box-sizing: inherit;">value</em> yang kalian tawarkan. Dan tidak harus sekaligus, kalian bisa mengimplementasikan komponen tersebut secara bertahap. Setelah itu kalian bisa melihat tergantung dari kebutuhan pengguna kalian.<br /> <br /> sumber : <a href="https://medium.com/wwwid/progressive-web-apps-mulai-dari-mana-bd223a941782" style="letter-spacing: -0.004em;">https://medium.com/wwwid/progressive-web-apps-mulai-dari-mana-bd223a941782</a></div>
<div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj54mtR5fkcNm_Lce7hw7f1O_dR9yABGzR3qaWgPeBaxBRwD8QkUYzKLO4qwip23jaban3X-Jm7onPkgxuZsgARAD3UX4O1knRQk-aFm7G27m7bg9Lp8OEldnL9SbTRnZcp_dRnOOTMKcDM/s1600/Artboard-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="400" data-original-width="760" height="168" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj54mtR5fkcNm_Lce7hw7f1O_dR9yABGzR3qaWgPeBaxBRwD8QkUYzKLO4qwip23jaban3X-Jm7onPkgxuZsgARAD3UX4O1knRQk-aFm7G27m7bg9Lp8OEldnL9SbTRnZcp_dRnOOTMKcDM/s320/Artboard-2.png" width="320" /></a></div> <div class="highlighted" style="background-color: white; box-sizing: inherit; color: #777777; font-family: "Roboto Slab", sans-serif; font-size: 16px; margin-bottom: 20px;"> Google dan Facebook adalah dua perusahaan terkuat di dunia dan masing-masing telah membuat kerangka kerja untuk membangun aplikasi web. Transisi dari sisi template server statis (di mana peran JavaScript biasanya dikurangi menjadi manipulasi DOM jQuery) ke Aplikasi Laman Tunggal (utamanya didasarkan pada perutean Front-End dan API REST) memberi dampak besar pada keseluruhan industri web.</div> <div style="background-color: white; box-sizing: inherit; color: #777777; font-family: "Roboto Slab", sans-serif; font-size: 16px; margin-bottom: 20px;"> <span id="more-1298" style="box-sizing: inherit;"></span></div> <div style="background-color: white; box-sizing: inherit; color: #777777; font-family: "Roboto Slab", sans-serif; font-size: 16px; margin-bottom: 20px;"> Selain itu, alasan intensitas dibalik pengenalan kerangka kerja baru yang hampir setiap hari, memaksa Pengembang Front-End untuk terus belajar tentang dunia teknologi / preprocessors / kompiler yang populer saat ini, namun tidak selalu praktis untuk saat ini, seperti Grunt, Bower, RequireJS, dll.</div> <h3 style="background-color: white; box-sizing: inherit; color: #333333; font-family: "Roboto Slab", sans-serif; font-size: 22px; font-weight: 400; letter-spacing: 0.04em; line-height: 1.2em; margin-bottom: 20px; margin-top: 0px;"> <span class="notranslate" style="box-sizing: inherit;">Permulaan Angular dan React</span></h3> <div style="background-color: white; box-sizing: inherit; color: #777777; font-family: "Roboto Slab", sans-serif; font-size: 16px; margin-bottom: 20px;"> <span class="notranslate" style="box-sizing: inherit;">Versi pertama dari Angular diciptakan oleh Google pada tahun 2010. Mereka memberikan pola arsitektur MV * ( Model, View, Apa pun), dan injeksi data dua arah sebagai fungsionalitas inti kerangka kerja.</span> <span class="notranslate" style="box-sizing: inherit;">Dengan penggunaan yang mudah, implementasi perintah yang cepat, dan kode yang terdokumentasi dengan baik, sehingga cepat mendapatkan popularitas di antara pengembang web.</span> <span class="notranslate" style="box-sizing: inherit;">Dulu fitur ini cukup berarti, jadi Angular mendapatkan banyak pendukung.</span> <span class="notranslate" style="box-sizing: inherit;">Dan, karena selain itu juga diiklankan dengan baik, ada banyak kursus gratis untuk setiap pemula pengembangan JavaScript yang ingin menjadi seorang profesional.</span></div> <div style="background-color: white; box-sizing: inherit; color: #777777; font-family: "Roboto Slab", sans-serif; font-size: 16px; margin-bottom: 20px;"> <span class="notranslate" style="box-sizing: inherit;">Namun, karena AngularJS bukanlah alat yang sempurna, banyak pengembang mulai mengeluh sambil menggali lebih dalam kerangka ini .</span> <span class="notranslate" style="box-sizing: inherit;">Salah satu kelemahan terbesar AngularJS adalah kinerjanya.</span> <span class="notranslate" style="box-sizing: inherit;">Pengambilan data dua arah, konsep yang sama terdengar sangat mengagumkan saat Angular diluncurkan. Namun p</span><span class="notranslate" style="box-sizing: inherit;">ada tahun 2013 isu skalabilitas, kinerja, dan pengoptimalan telah diselesaikan oleh Facebook dengan diperkenalkannya React.</span> <span class="notranslate" style="box-sizing: inherit;">Alih-alih mengikat data dua arah, React menggunakan konsep pemrograman yang berbeda dan beralih ke arus data searah.</span> <span class="notranslate" style="box-sizing: inherit;">React sintaknya lebih bersih mudah dipelajari dan dipahami, karena itu pengembang mulai berganti sisi memilih React.</span> <span class="notranslate" style="box-sizing: inherit;">Selain itu, berkat dukungan JSX, React mengajarkan satu hal menarik lagi (yang pada saat bersamaan agak aneh) – mengetik HTML di dalam JavaScript.</span></div> <div style="background-color: white; box-sizing: inherit; color: #777777; font-family: "Roboto Slab", sans-serif; font-size: 16px; margin-bottom: 20px;"> <span class="notranslate" style="box-sizing: inherit;">Sebagai tanggapan dari Facebook, Google mengumumkan versi baru Angular, yang secara resmi dirilis pada akhir tahun 2016.</span> <span class="notranslate" style="box-sizing: inherit;">Banyak konsep lama tetap (injeksi ketergantungan misalnya), namun Angular punya kemampuan baru.</span><span class="notranslate" style="box-sizing: inherit;">Beberapa dari mereka dipinjam langsung dari React (misalnya struktur berbasis komponen atau data satu arah).</span> <span class="notranslate" style="box-sizing: inherit;">Kemajuan terbesar adalah beralih dari JavaScript biasa ke sebuah TypeScript – sebuah bahasa yang dikembangkan oleh Microsoft (yang disusun ke JavaScript namun mengenalkan banyak fitur yang tidak tersedia dalam JavaScript).</span> <span class="notranslate" style="box-sizing: inherit;">Fitur baru lainnya yang ditambahkan ke Angular adalah <a href="http://reactivex.io/rxjs/" rel="nofollow noopener" style="background: transparent; box-sizing: inherit; color: #333333; outline: none; text-decoration-line: none; transition: all 0.3s cubic-bezier(0.5, 0.2, 0.5, 1) 0s;" target="_blank" title="RxJS - perpustakaan ReactiveX untuk JavaScript">RxJS</a> – sebuah perpustakaan untuk menangani arus data asynchronous.</span></div> <div style="background-color: white; box-sizing: inherit; color: #777777; font-family: "Roboto Slab", sans-serif; font-size: 16px; margin-bottom: 20px;"> <span class="notranslate" style="box-sizing: inherit;">Satu hal lagi.</span> <span class="notranslate" style="box-sizing: inherit;">Sebelum kita melangkah lebih jauh perbedaannya, mari kita lihat sekilas bagaimana popularitas React dan Angular dalam beberapa kurun waktu ini.</span></div> <h3 style="background-color: white; box-sizing: inherit; color: #333333; font-family: "Roboto Slab", sans-serif; font-size: 22px; font-weight: 400; letter-spacing: 0.04em; line-height: 1.2em; margin-bottom: 20px; margin-top: 0px;"> <span class="notranslate" style="box-sizing: inherit;">Perbedaan utama antara Angular dan React</span></h3> <div style="background-color: white; box-sizing: inherit; color: #777777; font-family: "Roboto Slab", sans-serif; font-size: 16px; margin-bottom: 20px;"> <span class="notranslate" style="box-sizing: inherit;">Pertama-tama yang paling penting untuk diingat adalah bahwa kenyataannya React bukanlah kerangka kerja.</span><span class="notranslate" style="box-sizing: inherit;">Namun “hanya” sebuah perpustakaan yang menangani terutama dengan lapisan View dari arsitektur MVC, tanpa paket eksternal, dan tidak menyediakan routing.</span> <span class="notranslate" style="box-sizing: inherit;">Untungnya, komunitas React sangat besar, dan orang dapat menjelajahi berbagai komponen siap pakai dan sering diperbarui yang akan membantu mereka membangun aplikasinya dengan lebih cepat.</span> <span class="notranslate" style="box-sizing: inherit;">Di sisi lain, Angular adalah kerangka kerja dan dilengkapi dengan banyak modul built-in seperti angular router, angular HTTP module, bahkan angular forms.</span> <span class="notranslate" style="box-sizing: inherit;">Dengan demikian, Anda sebenarnya tidak memerlukan sesuatu lagi untuk mulai mengembangkan aplikasi yang kompleks.</span> Hal i<span class="notranslate" style="box-sizing: inherit;">ni juga berarti bahwa React mungkin juga sesuai jika Anda mengerjakan proyek kecil yang tidak memerlukan banyak pilihan.</span> <span class="notranslate" style="box-sizing: inherit;">Di sisi lain jika menggunakan React Anda perlu menambahkan banyak komponen kustom jika ingin memiliki kontrol yang lebih besar terhadap struktur kode Anda.</span> <span class="notranslate" style="box-sizing: inherit;">Jika tidak – pilihlah Angular.</span> <span class="notranslate" style="box-sizing: inherit;">Bagi Anda yang ingin tahu lebih banyak tentang perbedaan antara framework dan library, lihat artikel saya <a href="https://rifqifai.com/framework-vs-library-perbedaan-dalam-pengembangan-web/" rel="noopener" style="background: transparent; box-sizing: inherit; color: #333333; outline: none; text-decoration-line: none; transition: all 0.3s cubic-bezier(0.5, 0.2, 0.5, 1) 0s;" target="_blank">Framework vs Library – perbedaan dalam pengembangan web</a>.</span></div> <h4 style="background-color: white; box-sizing: inherit; color: #333333; font-family: "Roboto Slab", sans-serif; font-size: 16px; font-weight: 400; letter-spacing: 0.04em; line-height: 1.2em; margin-bottom: 20px; margin-top: 0px;"> <span class="notranslate" style="box-sizing: inherit;">Bagaimana Angular dan React bekerja dengan DOM</span></h4> <div style="background-color: white; box-sizing: inherit; color: #777777; font-family: "Roboto Slab", sans-serif; font-size: 16px; margin-bottom: 20px;"> <span class="notranslate" style="box-sizing: inherit;">Perbedaan utama lainnya adalah React menangani HTML menggunakan DOM Virtual – representasi virtual dari Document Object Model (DOM mendefinisikan struktur dokumen yang logis dan direpresentasikan berupa <a href="https://www.w3schools.com/js/js_htmldom.asp" rel="noopener" style="background: transparent; box-sizing: inherit; color: #333333; outline: none; text-decoration-line: none; transition: all 0.3s cubic-bezier(0.5, 0.2, 0.5, 1) 0s;" target="_blank">pohon objek</a>).</span> <span class="notranslate" style="box-sizing: inherit;">DOM virtual hanyalah sebuah salinan ringan DOM biasa yang tidak memiliki kemampuan untuk langsung mengubah apa yang ada di layar. </span><span class="notranslate" style="box-sizing: inherit;">Dengan cara ini React memperbarui elemen HTML sebenarnya, hanya jika benar-benar diperlukan.</span> <span class="notranslate" style="box-sizing: inherit;">Di sisi lain, untuk membuat elemennya dapat digunakan kembali dan merangkum pandangan Angular menggunakan <a href="https://www.webcomponents.org/introduction" rel="noopener" style="background: transparent; box-sizing: inherit; color: #333333; outline: none; text-decoration-line: none; transition: all 0.3s cubic-bezier(0.5, 0.2, 0.5, 1) 0s;" target="_blank">komponen web</a>. Bahkan ketika kita masih beroperasi pada file HTML biasa, kita dapat menyertakan tag HTML khusus dan keseluruhan aplikasi akan tetap bekerja dengan baik di semua browser modern.</span> <span class="notranslate" style="box-sizing: inherit;">Untuk mencapai hal ini, komponen Angular didasarkan pada konsep Shadow DOM dimana kita dapat menyembunyikan DOM logic dan styling, yang membuatnya hanya dapat dicapai melalui sebuah komponen.</span></div> <div style="background-color: white; box-sizing: inherit; color: #777777; font-family: "Roboto Slab", sans-serif; font-size: 16px; margin-bottom: 20px;"> <span class="notranslate" style="box-sizing: inherit; line-height: inherit;">Untuk menangani pendekatan JavaScript React dan merasa lebih nyaman dengan elemen DOM yang berbasis pada DOM Virtual, React menggunakan JSX – preprocessor yang membuat kode Anda lebih elegan dan mudah dibaca.</span><span class="notranslate" style="box-sizing: inherit; line-height: inherit;">JSX memberikan perasaan alami struktur DOM karena apa yang Anda lakukan adalah menulis HTML di JavaScript (yang pada awalnya mungkin tampak sedikit aneh).</span> <span class="notranslate" style="box-sizing: inherit; line-height: inherit;">Satu-satunya masalah dengan pendekatan ini adalah Anda harus ingat tentang sintaks khusus untuk beberapa atribut mirip HTML tertentu jika Anda ingin menghindari penamaan konflik.</span> <span class="notranslate" style="box-sizing: inherit; line-height: inherit;">Misalnya, “Class”, kata yang dicadangkan di JS, sekarang “className”.</span></div> <div style="background-color: white; box-sizing: inherit; color: #777777; font-family: "Roboto Slab", sans-serif; font-size: 16px; margin-bottom: 20px;"> <span class="notranslate" style="box-sizing: inherit;"></span></div> <div class="columns fixed" style="background-color: white; box-sizing: inherit; color: #777777; font-family: "Roboto Slab", sans-serif; font-size: 16px;"> <div class="wysiwyg" style="box-sizing: inherit;"> <div style="box-sizing: inherit; margin-bottom: 20px;"> <span class="notranslate" style="box-sizing: inherit;">Di sisi lain, Angular secara default menggunakan TypeScript.</span> <span class="notranslate" style="box-sizing: inherit;">Penjabaran dari JavaScript yang membuatnya lebih mirip dengan bahasa pemrograman (seperti Java) dan memberinya “kekuatan super”, fitur baru seperti enum, dekorator, atau antarmuka.</span><span class="notranslate" style="box-sizing: inherit;"> </span></div> <table border="0" style="border-collapse: collapse; border-spacing: 0px; box-sizing: inherit; height: 410px; margin-bottom: 20px; margin-top: 0px; table-layout: fixed; width: 880px;"><tbody style="box-sizing: inherit;"> <tr style="box-sizing: inherit;"><td style="background-color: #2786bc; border: 1px dotted rgb(187, 187, 187); box-sizing: inherit; padding: 5px 20px; text-align: center;"><span style="box-sizing: inherit; color: white;"><strong style="box-sizing: inherit;">ANGULAR</strong></span></td><td style="background-color: #2786bc; border: 1px dotted rgb(187, 187, 187); box-sizing: inherit; padding: 5px 20px; text-align: center;"><span style="box-sizing: inherit; color: white;"><strong style="box-sizing: inherit;">REACT</strong></span></td></tr> <tr style="box-sizing: inherit;"><td align="center" style="border: 1px dotted rgb(187, 187, 187); box-sizing: inherit; height: 50px; padding: 5px 20px; text-align: center; width: 500px;" valign="middle">adalah framework yang lebih besar</td><td align="center" style="border: 1px dotted rgb(187, 187, 187); box-sizing: inherit; height: 50px; padding: 5px 20px; text-align: center; width: 500px;" valign="middle">adalah library yang lebih kecil</td></tr> <tr style="box-sizing: inherit;"><td align="center" style="border: 1px dotted rgb(187, 187, 187); box-sizing: inherit; height: 50px; padding: 5px 20px; text-align: center; width: 500px;" valign="middle">dibuat oleh Google</td><td align="center" style="border: 1px dotted rgb(187, 187, 187); box-sizing: inherit; height: 50px; padding: 5px 20px; text-align: center; width: 500px;" valign="middle">dibuat oleh Facebook</td></tr> <tr style="box-sizing: inherit;"><td align="center" style="border: 1px dotted rgb(187, 187, 187); box-sizing: inherit; height: 50px; padding: 5px 20px; text-align: center; width: 500px;" valign="middle">membutuhkan lebih banyak alat namun memberi Anda kerangka kerja matang</td><td align="center" style="border: 1px dotted rgb(187, 187, 187); box-sizing: inherit; height: 50px; padding: 5px 20px; text-align: center; width: 500px;" valign="middle">mudah dipelajari (dalam tingkat dasar)</td></tr> <tr style="box-sizing: inherit;"><td align="center" style="border: 1px dotted rgb(187, 187, 187); box-sizing: inherit; height: 50px; padding: 5px 20px; text-align: center; width: 500px;" valign="middle">arsitektur proyek standar</td><td align="center" style="border: 1px dotted rgb(187, 187, 187); box-sizing: inherit; height: 50px; padding: 5px 20px; text-align: center; width: 500px;" valign="middle">memiliki arsitektur yang fleksibel</td></tr> <tr style="box-sizing: inherit;"><td align="center" style="border: 1px dotted rgb(187, 187, 187); box-sizing: inherit; height: 50px; padding: 5px 20px; text-align: center; width: 500px;" valign="middle">menggunakan DOM Reguler + komponen web + sintaks Angular tambahan</td><td align="center" style="border: 1px dotted rgb(187, 187, 187); box-sizing: inherit; height: 50px; padding: 5px 20px; text-align: center; width: 500px;" valign="middle">menggunakan DOM virtual</td></tr> <tr style="box-sizing: inherit;"><td align="center" style="border: 1px dotted rgb(187, 187, 187); box-sizing: inherit; height: 50px; padding: 5px 20px; text-align: center; width: 500px;" valign="middle">menggunakan konsep “JavaScript ke HTML”</td><td align="center" style="border: 1px dotted rgb(187, 187, 187); box-sizing: inherit; height: 50px; padding: 5px 20px; text-align: center; width: 500px;" valign="middle">aplikasi hanya dibangun dalam JavaScript</td></tr> <tr style="box-sizing: inherit;"><td align="center" style="border: 1px dotted rgb(187, 187, 187); box-sizing: inherit; height: 50px; padding: 5px 20px; text-align: center; width: 500px;" valign="middle">TypeScript + RxJS sebagai fitur tambahan untuk dipelajari</td><td align="center" style="border: 1px dotted rgb(187, 187, 187); box-sizing: inherit; height: 50px; padding: 5px 20px; text-align: center; width: 500px;" valign="middle">Sintaks JSX untuk belajar</td></tr> </tbody></table> <h3 style="box-sizing: inherit; color: #333333; font-size: 22px; font-weight: 400; letter-spacing: 0.04em; line-height: 1.2em; margin-bottom: 20px; margin-top: 0px;"> <span class="notranslate" style="box-sizing: inherit;">Persamaan antara Angular dan React</span></h3> <h4 style="box-sizing: inherit; color: #333333; font-weight: 400; letter-spacing: 0.04em; line-height: 1.2em; margin-bottom: 20px; margin-top: 0px;"> <span class="notranslate" style="box-sizing: inherit;">Arsitektur berbasis komponen</span></h4> <div style="box-sizing: inherit; margin-bottom: 20px;"> <span class="notranslate" style="box-sizing: inherit;">Setiap komponen memiliki metode siklus hidup sendiri yang dipecat saat beberapa tindakan tertentu terjadi.</span><span class="notranslate" style="box-sizing: inherit;">Misalnya, Anda bisa menggunakan metode “ngOnInit” di Angular, sedangkan di React kita memiliki “componentDidMount”.</span> <span class="notranslate" style="box-sizing: inherit;">Keduanya akan mengeksekusi kode di dalam metode setelah komponen dibuat.</span> <span class="notranslate" style="box-sizing: inherit;">Demikian pula, sebelum Anda menghapus komponen apapun, Anda mungkin ingin menjalankan beberapa fungsi.</span> <span class="notranslate" style="box-sizing: inherit;">Untuk melakukannya, Anda akan menggunakan metode “ngOnDestroy” di Angular atau “componentWillUnmount” in React.</span></div> <h4 style="box-sizing: inherit; color: #333333; font-weight: 400; letter-spacing: 0.04em; line-height: 1.2em; margin-bottom: 20px; margin-top: 0px;"> <span class="notranslate" style="box-sizing: inherit;">Komunitas dan library</span></h4> <div style="box-sizing: inherit; margin-bottom: 20px;"> <span class="notranslate" style="box-sizing: inherit;">Secara teoritis, bahkan jika Angular memberi Anda semua yang diperlukan untuk membangun sebuah aplikasi, Anda akan segera mengetahui bahwa akan lebih baik jika mengimplementasikan beberapa perpustakaan pihak ketiga yang dibuat oleh komunitas.</span> <span class="notranslate" style="box-sizing: inherit;">Tanpa komunitas besar, library maupun framework yang bagus pun akan sulit diterapkan.</span> Jika Anda b<span class="notranslate" style="box-sizing: inherit;">utuh bantuan dengan sesuatu yang spesifik?</span> <span class="notranslate" style="box-sizing: inherit;">Di GitHub, Anda akan menemukan katalog berupa Komponen dan library untuk kedua <a href="https://github.com/brillout/awesome-angular-components" rel="noopener" style="background: transparent; box-sizing: inherit; color: #333333; outline: none; text-decoration-line: none; transition: all 0.3s cubic-bezier(0.5, 0.2, 0.5, 1) 0s;" target="_blank">Angular </a>dan <a href="https://github.com/brillout/awesome-react-components" rel="nofollow noopener" style="background: transparent; box-sizing: inherit; color: #333333; outline: none; text-decoration-line: none; transition: all 0.3s cubic-bezier(0.5, 0.2, 0.5, 1) 0s;" target="_blank" title="GitHub: Katalog Komponen Reaktan dan Perpustakaan">React</a> .</span></div> <div style="box-sizing: inherit; margin-bottom: 20px;"> <span class="notranslate" style="box-sizing: inherit;">Ada juga implementasi framework dan konsep UI yang paling populer – Bootstrap atau<strong style="box-sizing: inherit;"> </strong>Material Design (catatan: Versi Material Design untuk Angular mungkin beberapa komponen masih missing), jadi sangat mudah untuk menyesuaikan tata letak yang sama dengan dua cara.</span> <span class="notranslate" style="box-sizing: inherit;"><a href="https://github.com/ngReact/ngReact" rel="nofollow noopener" style="background: transparent; box-sizing: inherit; color: #333333; outline: none; text-decoration-line: none; transition: all 0.3s cubic-bezier(0.5, 0.2, 0.5, 1) 0s;" target="_blank" title="GitHub - ngReact / ngReact: Gunakan Komponen Reaktan dalam Sudut">Anda bahkan bisa menggunakan komponen React di dalam Angular!</a></span> <span class="notranslate" style="box-sizing: inherit;"><img alt="🙂" class="emoji" draggable="false" src="https://s.w.org/images/core/emoji/12.0.0-1/svg/1f642.svg" style="background: none !important; border: none !important; box-shadow: none !important; box-sizing: inherit; display: inline !important; height: 1em !important; margin: 0px 0.07em !important; max-width: 100%; padding: 0px !important; vertical-align: -0.1em !important; width: 1em !important;" /></span></div> <div style="box-sizing: inherit; margin-bottom: 20px;"> <span class="notranslate" style="box-sizing: inherit;">Sejak beberapa tahun terakhir, bahasa JavaScript berkembang dan menjadi nyata di web dan aplikasi web seluler.</span><span class="notranslate" style="box-sizing: inherit;">Belum lama ini, satu-satunya solusi menggabungkan desktop dan ponsel adalah membuat aplikasi hibrid.</span> <span class="notranslate" style="box-sizing: inherit;">Saat ini, berkat pengetahuan React atau Angular pengembang dapat mengekspansi lebih jauh dan mengelola aplikasi asli yang ditulis dalam JavaScript, kemudian dikompilasi ke bahasa induk mereka.</span> <span class="notranslate" style="box-sizing: inherit;">Klaim utama Angular adalah “One framework. Mobile & desktop.”, Yang banyak menjelaskannya.</span> <span class="notranslate" style="box-sizing: inherit;">Angular hadir dengan ionik 2 atau nativeScript, React di sisi lain bisa digunakan via React Native.</span></div> <h4 style="box-sizing: inherit; color: #333333; font-weight: 400; letter-spacing: 0.04em; line-height: 1.2em; margin-bottom: 20px; margin-top: 0px;"> <span class="notranslate" style="box-sizing: inherit;">Kinerja</span></h4> <div style="box-sizing: inherit; margin-bottom: 20px;"> <span class="notranslate" style="box-sizing: inherit;">Sejauh ini sangat sulit untuk membandingkan React dan Angular mengenai kinerja karena keduanya sangat cepat dan efektif.</span> <span class="notranslate" style="box-sizing: inherit;">Mungkin, pada saat rilis selanjutnya React bisa berubah banyak.</span> Hal tersebut karena<span class="notranslate" style="box-sizing: inherit;"> React akan ditulis ulang saat versi 16.0 diluncurkan, React Fiber mungkin akan menjadi kinerja penguasa berkat rendering tambahannya.</span></div> <h3 style="box-sizing: inherit; color: #333333; font-size: 22px; font-weight: 400; letter-spacing: 0.04em; line-height: 1.2em; margin-bottom: 20px; margin-top: 0px;"> <span class="notranslate" style="box-sizing: inherit;">Ringkasan</span></h3> <div style="box-sizing: inherit; margin-bottom: 20px;"> <span class="notranslate" style="box-sizing: inherit;">Angular dan React dibuat untuk memecahkan masalah serupa namun dengan cara yang sangat berbeda.</span> <span class="notranslate" style="box-sizing: inherit;">Jika Anda ingin memiliki framework yang matang, dan lebih banyak opsi dalam proses pengembangan aplikasi – pilih Angular.</span> <span class="notranslate" style="box-sizing: inherit;">Jika Anda ingin yang lebih fleksibel dalam hal apa dan bagaimana yang Anda gunakan – pilih React.</span><span class="notranslate" style="box-sizing: inherit;">Dengan React Anda bisa memulai pengembangan dengan tepat melalui konfigurasi yang minimal, jadi mungkin pilihan yang lebih baik untuk proyek skala lebih kecil.</span></div> <div style="box-sizing: inherit; margin-bottom: 20px;"> <span class="notranslate" style="box-sizing: inherit;">Sulit untuk mengatakan “Angular is better” or “React rules, forget Angular”.</span> <span class="notranslate" style="box-sizing: inherit;">Karena keduanya adalah tools yang sangat baik untuk membuat Halaman Aplikasi, jadi cobalah keduanya dan berpegang pada apa yang paling sesuai untuk Anda.</span></div> <div style="box-sizing: inherit; margin-bottom: 20px;"> <span class="notranslate" style="box-sizing: inherit;"><br /></span></div> <div style="box-sizing: inherit; margin-bottom: 20px;"> <span class="notranslate" style="box-sizing: inherit;">sumber : </span><a href="https://rifqifai.com/angular-vs-react-pertempuran-bagi-masa-depan-pengembang-front-end-web-development/">https://rifqifai.com/angular-vs-react-pertempuran-bagi-masa-depan-pengembang-front-end-web-development/</a></div> </div> </div>
<div style="background-color: snow; border: 0px; box-sizing: inherit; color: #333333; font-family: "Open Sans"; font-size: 20px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1em; padding: 0px;"> Jika anda membaca tulisan saya tentang Pengertian angular cli dan single page application, maka setidaknya anda akan paham apa itu angular cli. Artikel ini akan membahas sisi praktis dari artikel sebelumnya yaitu bagaimana cara menginstall angular 6 serta membuat project pertama anda dengan angular.</div> <h4 style="background-color: snow; border: 0px; box-sizing: inherit; clear: both; color: #333333; font-family: "Open Sans Condensed"; font-size: 1.672em; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-weight: 300; line-height: 1.3; margin: 1em 0px 0.5em; padding: 0px;"> Kebutuhan Installasi</h4> <ul style="background-color: snow; border: 0px; box-sizing: inherit; color: #333333; font-family: "Open Sans"; font-size: 20px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; list-style-image: initial; list-style-position: outside; margin: 0px 0px 1em 2em; padding: 0px;"> <li style="border: 0px; box-sizing: inherit; font: inherit; margin: 0px; padding: 0px;">node, hingga saat artikel ini ditulis node telah mencapai versi 10.12.0 dengan versi LTS nya 8.12.0. Saya menyarankan anda menggunakan versi LTS.</li> <li style="border: 0px; box-sizing: inherit; font: inherit; margin: 0px; padding: 0px;">npm (node package manager), package manajer untuk node. Nantinya penggunaan library tambahan dalam angular memakai npm.</li> </ul> <div style="background-color: snow; border: 0px; box-sizing: inherit; color: #333333; font-family: "Open Sans"; font-size: 20px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1em; padding: 0px;"> Kedua kebutuhan diatas dapat di install sekaligus melalui node. Masuklah ke laman <a href="https://nodejs.org/en/" style="border: 0px; box-sizing: inherit; color: #0085b2; font: inherit; margin: 0px; padding: 0px; text-decoration-line: none;">node</a> untuk mendowload installernya. Installasi node cukup mudah, cukup ikuti wizard hingga selesai.</div> <div style="background-color: snow; border: 0px; box-sizing: inherit; color: #333333; font-family: "Open Sans"; font-size: 20px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1em; padding: 0px;"> Untuk memastikan node telah terinstall di komputer anda, gunakan perintah berikut pada terminal.</div> <div class="crayon-syntax crayon-theme-prism-like crayon-font-ubuntu-mono crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" id="crayon-5d5cdd2b62d38429049700" style="background: rgb(245, 245, 245) !important; border-color: rgb(222, 222, 222) !important; border-image: initial; border-radius: 5px; border-style: solid !important; border-width: 1px !important; box-sizing: border-box; color: #333333; direction: ltr !important; font-family: Monaco, MonacoRegular, "Courier New", monospace; font-size: 18px !important; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; height: auto; line-height: 25px !important; margin: 14px 0px; overflow: hidden !important; padding: 0px; position: relative !important; text-size-adjust: none; width: 762.344px;"> <div class="crayon-plain-wrap" style="background: 0px center; border: 0px; box-sizing: inherit; font-family: "Ubuntu Mono", UbuntuMonoRegular, "Courier New", monospace !important; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; height: auto !important; line-height: inherit; margin: 0px !important; padding: 0px !important;"> </div> <div class="crayon-main" style="background: 0px center; border: 0px; box-sizing: inherit; font-family: "Ubuntu Mono", UbuntuMonoRegular, "Courier New", monospace !important; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; overflow: hidden; padding: 0px; position: relative; width: 760.344px; z-index: 1;"> <table class="crayon-table" style="background: none !important; border-collapse: collapse !important; border-spacing: 0px !important; border: none !important; box-sizing: inherit; font-size: 12px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin-bottom: 0px !important; margin-left: -23px; margin-right: 0px !important; margin-top: 0px !important; max-width: 100%; padding: 0px !important; table-layout: auto !important; vertical-align: top; width: auto !important;"><tbody style="border: 0px; box-sizing: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px;"> <tr class="crayon-row" style="background: 0px center; border: none !important; box-sizing: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px !important; padding: 0px !important; vertical-align: top !important;"><td class="crayon-nums " data-settings="hide" style="background-attachment: initial; background-clip: initial; background-color: rgb(238, 238, 238) !important; background-image: initial; background-origin: initial; background-position: 0px center; background-repeat: initial; background-size: initial; border: 0px; box-sizing: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px !important; padding: 0px !important; vertical-align: top !important;"><div class="crayon-nums-content" style="background: 0px center; border: 0px; box-sizing: inherit; font-size: 18px !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: 25px !important; margin: 0px; padding-bottom: 3px !important; padding-left: 0px; padding-right: 0px; padding-top: 5px !important; white-space: nowrap;"> <div class="crayon-num" data-line="crayon-5d5cdd2b62d38429049700-1" style="background: 0px center; border-bottom: 0px; border-image: initial; border-left: 0px; border-right: 1px solid rgb(222, 222, 222) !important; border-top: 0px; box-sizing: inherit; color: rgb(170, 170, 170) !important; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; min-width: 1.2em !important; padding: 0px 5px; text-align: right !important;"> 1</div> </div> </td><td class="crayon-code" style="background: 0px center; border: 0px; box-sizing: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px !important; padding: 0px !important; vertical-align: top !important; width: 738px;"><div class="crayon-pre" style="background: none !important; border: none !important; box-sizing: inherit; font-size: 18px !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: 25px !important; margin: 0px; overflow: visible; padding-bottom: 3px !important; padding-left: 0px; padding-right: 0px; padding-top: 5px !important; tab-size: 4; white-space: pre;"> <div class="crayon-line" id="crayon-5d5cdd2b62d38429049700-1" style="background: 0px center; border: 0px; box-sizing: inherit; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px 5px;"> <span class="crayon-v" style="border: 0px; box-sizing: inherit; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;">node</span><span class="crayon-h" style="border: 0px; box-sizing: inherit; color: rgb(0, 111, 224) !important; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;"> </span><span class="crayon-o" style="border: 0px; box-sizing: inherit; color: rgb(166, 127, 89) !important; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;">-</span><span class="crayon-v" style="border: 0px; box-sizing: inherit; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;">v</span></div> </div> </td></tr> </tbody></table> </div> </div> <div style="background-color: snow; border: 0px; box-sizing: inherit; color: #333333; font-family: "Open Sans"; font-size: 20px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1em; padding: 0px;"> </div> <h4 style="background-color: snow; border: 0px; box-sizing: inherit; clear: both; color: #333333; font-family: "Open Sans Condensed"; font-size: 1.672em; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-weight: 300; line-height: 1.3; margin: 1em 0px 0.5em; padding: 0px;"> Cara menginstall angular 6</h4> <div style="background-color: snow; border: 0px; box-sizing: inherit; color: #333333; font-family: "Open Sans"; font-size: 20px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1em; padding: 0px;"> Ketikkan perintah berikut pada terminal anda untuk menginstall angular cli.</div> <div class="crayon-syntax crayon-theme-prism-like crayon-font-ubuntu-mono crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" id="crayon-5d5cdd2b62d49735962625" style="background: rgb(245, 245, 245) !important; border-color: rgb(222, 222, 222) !important; border-image: initial; border-radius: 5px; border-style: solid !important; border-width: 1px !important; box-sizing: border-box; color: #333333; direction: ltr !important; font-family: Monaco, MonacoRegular, "Courier New", monospace; font-size: 18px !important; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; height: auto; line-height: 25px !important; margin: 14px 0px; overflow: hidden !important; padding: 0px; position: relative !important; text-size-adjust: none; width: 762.344px;"> <div class="crayon-plain-wrap" style="background: 0px center; border: 0px; box-sizing: inherit; font-family: "Ubuntu Mono", UbuntuMonoRegular, "Courier New", monospace !important; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; height: auto !important; line-height: inherit; margin: 0px !important; padding: 0px !important;"> </div> <div class="crayon-main" style="background: 0px center; border: 0px; box-sizing: inherit; font-family: "Ubuntu Mono", UbuntuMonoRegular, "Courier New", monospace !important; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; overflow: hidden; padding: 0px; position: relative; width: 760.344px; z-index: 1;"> <table class="crayon-table" style="background: none !important; border-collapse: collapse !important; border-spacing: 0px !important; border: none !important; box-sizing: inherit; font-size: 12px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin-bottom: 0px !important; margin-left: -23px; margin-right: 0px !important; margin-top: 0px !important; max-width: 100%; padding: 0px !important; table-layout: auto !important; vertical-align: top; width: auto !important;"><tbody style="border: 0px; box-sizing: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px;"> <tr class="crayon-row" style="background: 0px center; border: none !important; box-sizing: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px !important; padding: 0px !important; vertical-align: top !important;"><td class="crayon-nums " data-settings="hide" style="background-attachment: initial; background-clip: initial; background-color: rgb(238, 238, 238) !important; background-image: initial; background-origin: initial; background-position: 0px center; background-repeat: initial; background-size: initial; border: 0px; box-sizing: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px !important; padding: 0px !important; vertical-align: top !important;"><div class="crayon-nums-content" style="background: 0px center; border: 0px; box-sizing: inherit; font-size: 18px !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: 25px !important; margin: 0px; padding-bottom: 3px !important; padding-left: 0px; padding-right: 0px; padding-top: 5px !important; white-space: nowrap;"> <div class="crayon-num" data-line="crayon-5d5cdd2b62d49735962625-1" style="background: 0px center; border-bottom: 0px; border-image: initial; border-left: 0px; border-right: 1px solid rgb(222, 222, 222) !important; border-top: 0px; box-sizing: inherit; color: rgb(170, 170, 170) !important; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; min-width: 1.2em !important; padding: 0px 5px; text-align: right !important;"> 1</div> </div> </td><td class="crayon-code" style="background: 0px center; border: 0px; box-sizing: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px !important; padding: 0px !important; vertical-align: top !important; width: 738px;"><div class="crayon-pre" style="background: none !important; border: none !important; box-sizing: inherit; font-size: 18px !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: 25px !important; margin: 0px; overflow: visible; padding-bottom: 3px !important; padding-left: 0px; padding-right: 0px; padding-top: 5px !important; tab-size: 4; white-space: pre;"> <div class="crayon-line" id="crayon-5d5cdd2b62d49735962625-1" style="background: 0px center; border: 0px; box-sizing: inherit; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px 5px;"> <span class="crayon-e" style="border: 0px; box-sizing: inherit; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;">npm </span><span class="crayon-v" style="border: 0px; box-sizing: inherit; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;">install</span><span class="crayon-h" style="border: 0px; box-sizing: inherit; color: rgb(0, 111, 224) !important; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;"> </span><span class="crayon-o" style="border: 0px; box-sizing: inherit; color: rgb(166, 127, 89) !important; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;">-</span><span class="crayon-i" style="border: 0px; box-sizing: inherit; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;">g</span><span class="crayon-h" style="border: 0px; box-sizing: inherit; color: rgb(0, 111, 224) !important; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;"> </span><span class="crayon-sy" style="border: 0px; box-sizing: inherit; color: rgb(51, 51, 51) !important; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;">@</span><span class="crayon-v" style="border: 0px; box-sizing: inherit; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;">angular</span><span class="crayon-o" style="border: 0px; box-sizing: inherit; color: rgb(166, 127, 89) !important; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;">/</span><span class="crayon-v" style="border: 0px; box-sizing: inherit; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;">cli</span></div> </div> </td></tr> </tbody></table> </div> </div> <div style="background-color: snow; border: 0px; box-sizing: inherit; color: #333333; font-family: "Open Sans"; font-size: 20px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1em; padding: 0px;"> Tunggu hingga proses installasi selesai, lalu ketikkan perintah di bawah ini untuk memastikan angular cli berhasil di install.</div> <div class="crayon-syntax crayon-theme-prism-like crayon-font-ubuntu-mono crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" id="crayon-5d5cdd2b62d4f009506637" style="background: rgb(245, 245, 245) !important; border-color: rgb(222, 222, 222) !important; border-image: initial; border-radius: 5px; border-style: solid !important; border-width: 1px !important; box-sizing: border-box; color: #333333; direction: ltr !important; font-family: Monaco, MonacoRegular, "Courier New", monospace; font-size: 18px !important; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; height: auto; line-height: 25px !important; margin: 14px 0px; overflow: hidden !important; padding: 0px; position: relative !important; text-size-adjust: none; width: 762.344px;"> <div class="crayon-plain-wrap" style="background: 0px center; border: 0px; box-sizing: inherit; font-family: "Ubuntu Mono", UbuntuMonoRegular, "Courier New", monospace !important; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; height: auto !important; line-height: inherit; margin: 0px !important; padding: 0px !important;"> </div> <div class="crayon-main" style="background: 0px center; border: 0px; box-sizing: inherit; font-family: "Ubuntu Mono", UbuntuMonoRegular, "Courier New", monospace !important; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; overflow: hidden; padding: 0px; position: relative; width: 760.344px; z-index: 1;"> <table class="crayon-table" style="background: none !important; border-collapse: collapse !important; border-spacing: 0px !important; border: none !important; box-sizing: inherit; font-size: 12px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin-bottom: 0px !important; margin-left: -23px; margin-right: 0px !important; margin-top: 0px !important; max-width: 100%; padding: 0px !important; table-layout: auto !important; vertical-align: top; width: auto !important;"><tbody style="border: 0px; box-sizing: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px;"> <tr class="crayon-row" style="background: 0px center; border: none !important; box-sizing: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px !important; padding: 0px !important; vertical-align: top !important;"><td class="crayon-nums " data-settings="hide" style="background-attachment: initial; background-clip: initial; background-color: rgb(238, 238, 238) !important; background-image: initial; background-origin: initial; background-position: 0px center; background-repeat: initial; background-size: initial; border: 0px; box-sizing: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px !important; padding: 0px !important; vertical-align: top !important;"><div class="crayon-nums-content" style="background: 0px center; border: 0px; box-sizing: inherit; font-size: 18px !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: 25px !important; margin: 0px; padding-bottom: 3px !important; padding-left: 0px; padding-right: 0px; padding-top: 5px !important; white-space: nowrap;"> <div class="crayon-num" data-line="crayon-5d5cdd2b62d4f009506637-1" style="background: 0px center; border-bottom: 0px; border-image: initial; border-left: 0px; border-right: 1px solid rgb(222, 222, 222) !important; border-top: 0px; box-sizing: inherit; color: rgb(170, 170, 170) !important; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; min-width: 1.2em !important; padding: 0px 5px; text-align: right !important;"> 1</div> </div> </td><td class="crayon-code" style="background: 0px center; border: 0px; box-sizing: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px !important; padding: 0px !important; vertical-align: top !important; width: 738px;"><div class="crayon-pre" style="background: none !important; border: none !important; box-sizing: inherit; font-size: 18px !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: 25px !important; margin: 0px; overflow: visible; padding-bottom: 3px !important; padding-left: 0px; padding-right: 0px; padding-top: 5px !important; tab-size: 4; white-space: pre;"> <div class="crayon-line" id="crayon-5d5cdd2b62d4f009506637-1" style="background: 0px center; border: 0px; box-sizing: inherit; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px 5px;"> <span class="crayon-v" style="border: 0px; box-sizing: inherit; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;">ng</span><span class="crayon-h" style="border: 0px; box-sizing: inherit; color: rgb(0, 111, 224) !important; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;"> </span><span class="crayon-o" style="border: 0px; box-sizing: inherit; color: rgb(166, 127, 89) !important; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;">-</span><span class="crayon-v" style="border: 0px; box-sizing: inherit; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;">v</span></div> </div> </td></tr> </tbody></table> </div> </div> <div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxS_bJcgjHBrgHil44ekpDCcUGVTw8qh3E5UDwUKknxyGJYzqr5f5pHvu1jiUavXbZ_I9AcwS-IaLyq-qDW-tdqUnkp2Za9pmCuznLzQTNe9d7BEREpSIPHS71s83oXhHiBHr5IuVcBOOI/s1600/Screen-Shot-2018-10-20-at-4.07.22-PM-613x300.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="300" data-original-width="613" height="156" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxS_bJcgjHBrgHil44ekpDCcUGVTw8qh3E5UDwUKknxyGJYzqr5f5pHvu1jiUavXbZ_I9AcwS-IaLyq-qDW-tdqUnkp2Za9pmCuznLzQTNe9d7BEREpSIPHS71s83oXhHiBHr5IuVcBOOI/s320/Screen-Shot-2018-10-20-at-4.07.22-PM-613x300.png" width="320" /></a></div> <div style="background-color: snow; border: 0px; box-sizing: inherit; color: #333333; font-family: "Open Sans"; font-size: 20px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1em; padding: 0px;"> <br /></div> <div style="background-color: snow; border: 0px; box-sizing: inherit; color: #333333; font-family: "Open Sans"; font-size: 20px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1em; padding: 0px;"> Jika gambar di atas muncul di terminal, maka proses pemasangan angular cli di komputer anda telah berhasil.</div> <h4 style="background-color: snow; border: 0px; box-sizing: inherit; clear: both; color: #333333; font-family: "Open Sans Condensed"; font-size: 1.672em; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-weight: 300; line-height: 1.3; margin: 1em 0px 0.5em; padding: 0px;"> Membuat project pertama anda di angular</h4> <div style="background-color: snow; border: 0px; box-sizing: inherit; color: #333333; font-family: "Open Sans"; font-size: 20px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1em; padding: 0px;"> Pertama, tentukan direktori tempat anda ingin membuat project, di sini saya akan menyimpan project di direktori /Documents. Lalu ketikkan perintah di bawah ini untuk membuat project.</div> <div class="crayon-syntax crayon-theme-prism-like crayon-font-ubuntu-mono crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" id="crayon-5d5cdd2b62d59535739182" style="background: rgb(245, 245, 245) !important; border-color: rgb(222, 222, 222) !important; border-image: initial; border-radius: 5px; border-style: solid !important; border-width: 1px !important; box-sizing: border-box; color: #333333; direction: ltr !important; font-family: Monaco, MonacoRegular, "Courier New", monospace; font-size: 18px !important; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; height: auto; line-height: 25px !important; margin: 14px 0px; overflow: hidden !important; padding: 0px; position: relative !important; text-size-adjust: none; width: 762.344px;"> <div class="crayon-plain-wrap" style="background: 0px center; border: 0px; box-sizing: inherit; font-family: "Ubuntu Mono", UbuntuMonoRegular, "Courier New", monospace !important; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; height: auto !important; line-height: inherit; margin: 0px !important; padding: 0px !important;"> </div> <div class="crayon-main" style="background: 0px center; border: 0px; box-sizing: inherit; font-family: "Ubuntu Mono", UbuntuMonoRegular, "Courier New", monospace !important; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; overflow: hidden; padding: 0px; position: relative; width: 760.344px; z-index: 1;"> <table class="crayon-table" style="background: none !important; border-collapse: collapse !important; border-spacing: 0px !important; border: none !important; box-sizing: inherit; font-size: 12px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin-bottom: 0px !important; margin-left: -23px; margin-right: 0px !important; margin-top: 0px !important; max-width: 100%; padding: 0px !important; table-layout: auto !important; vertical-align: top; width: auto !important;"><tbody style="border: 0px; box-sizing: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px;"> <tr class="crayon-row" style="background: 0px center; border: none !important; box-sizing: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px !important; padding: 0px !important; vertical-align: top !important;"><td class="crayon-nums " data-settings="hide" style="background-attachment: initial; background-clip: initial; background-color: rgb(238, 238, 238) !important; background-image: initial; background-origin: initial; background-position: 0px center; background-repeat: initial; background-size: initial; border: 0px; box-sizing: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px !important; padding: 0px !important; vertical-align: top !important;"><div class="crayon-nums-content" style="background: 0px center; border: 0px; box-sizing: inherit; font-size: 18px !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: 25px !important; margin: 0px; padding-bottom: 3px !important; padding-left: 0px; padding-right: 0px; padding-top: 5px !important; white-space: nowrap;"> <div class="crayon-num" data-line="crayon-5d5cdd2b62d59535739182-1" style="background: 0px center; border-bottom: 0px; border-image: initial; border-left: 0px; border-right: 1px solid rgb(222, 222, 222) !important; border-top: 0px; box-sizing: inherit; color: rgb(170, 170, 170) !important; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; min-width: 1.2em !important; padding: 0px 5px; text-align: right !important;"> 1</div> </div> </td><td class="crayon-code" style="background: 0px center; border: 0px; box-sizing: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px !important; padding: 0px !important; vertical-align: top !important; width: 738px;"><div class="crayon-pre" style="background: none !important; border: none !important; box-sizing: inherit; font-size: 18px !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: 25px !important; margin: 0px; overflow: visible; padding-bottom: 3px !important; padding-left: 0px; padding-right: 0px; padding-top: 5px !important; tab-size: 4; white-space: pre;"> <div class="crayon-line" id="crayon-5d5cdd2b62d59535739182-1" style="background: 0px center; border: 0px; box-sizing: inherit; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px 5px;"> <span class="crayon-e" style="border: 0px; box-sizing: inherit; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;">ng </span><span class="crayon-r" style="border: 0px; box-sizing: inherit; color: rgb(25, 144, 197) !important; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: bold !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;">new</span><span class="crayon-h" style="border: 0px; box-sizing: inherit; color: rgb(0, 111, 224) !important; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;"> </span><span class="crayon-v" style="border: 0px; box-sizing: inherit; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;">hello</span><span class="crayon-o" style="border: 0px; box-sizing: inherit; color: rgb(166, 127, 89) !important; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;">-</span><span class="crayon-v" style="border: 0px; box-sizing: inherit; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;">angular</span></div> </div> </td></tr> </tbody></table> </div> </div> <div style="background-color: snow; border: 0px; box-sizing: inherit; color: #333333; font-family: "Open Sans"; font-size: 20px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1em; padding: 0px;"> <em style="border: 0px; box-sizing: inherit; font-family: inherit; font-size: inherit; font-stretch: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px;">ng new</em> adalah command cli untuk men-generate project baru di angular, selanjutnya adalah nama untuk project anda, pada contoh di atas saya menggunakan <em style="border: 0px; box-sizing: inherit; font-family: inherit; font-size: inherit; font-stretch: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px;">hello-angular</em> untuk nama project.</div> <div style="background-color: snow; border: 0px; box-sizing: inherit; color: #333333; font-family: "Open Sans"; font-size: 20px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1em; padding: 0px;"> Tunggu beberapa saat hingga proses generate selesai, lamanya bergantung pada spesifikasi dan jaringan internet pada komputer anda.</div> <div style="background-color: snow; border: 0px; box-sizing: inherit; color: #333333; font-family: "Open Sans"; font-size: 20px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1em; padding: 0px;"> Jika berhasil, selanjutnya anda dapat menjalankan aplikasi angular pertama anda. Masuklah ke dalam direktori project, karna direktori project saya adalah hello-angular maka saya akan masuk ke direktori hello-angular.</div> <div class="crayon-syntax crayon-theme-prism-like crayon-font-ubuntu-mono crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" id="crayon-5d5cdd2b62d62782196304" style="background: rgb(245, 245, 245) !important; border-color: rgb(222, 222, 222) !important; border-image: initial; border-radius: 5px; border-style: solid !important; border-width: 1px !important; box-sizing: border-box; color: #333333; direction: ltr !important; font-family: Monaco, MonacoRegular, "Courier New", monospace; font-size: 18px !important; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; height: auto; line-height: 25px !important; margin: 14px 0px; overflow: hidden !important; padding: 0px; position: relative !important; text-size-adjust: none; width: 762.344px;"> <div class="crayon-plain-wrap" style="background: 0px center; border: 0px; box-sizing: inherit; font-family: "Ubuntu Mono", UbuntuMonoRegular, "Courier New", monospace !important; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; height: auto !important; line-height: inherit; margin: 0px !important; padding: 0px !important;"> </div> <div class="crayon-main" style="background: 0px center; border: 0px; box-sizing: inherit; font-family: "Ubuntu Mono", UbuntuMonoRegular, "Courier New", monospace !important; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; overflow: hidden; padding: 0px; position: relative; width: 760.344px; z-index: 1;"> <table class="crayon-table" style="background: none !important; border-collapse: collapse !important; border-spacing: 0px !important; border: none !important; box-sizing: inherit; font-size: 12px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin-bottom: 0px !important; margin-left: -23px; margin-right: 0px !important; margin-top: 0px !important; max-width: 100%; padding: 0px !important; table-layout: auto !important; vertical-align: top; width: auto !important;"><tbody style="border: 0px; box-sizing: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px;"> <tr class="crayon-row" style="background: 0px center; border: none !important; box-sizing: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px !important; padding: 0px !important; vertical-align: top !important;"><td class="crayon-nums " data-settings="hide" style="background-attachment: initial; background-clip: initial; background-color: rgb(238, 238, 238) !important; background-image: initial; background-origin: initial; background-position: 0px center; background-repeat: initial; background-size: initial; border: 0px; box-sizing: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px !important; padding: 0px !important; vertical-align: top !important;"><div class="crayon-nums-content" style="background: 0px center; border: 0px; box-sizing: inherit; font-size: 18px !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: 25px !important; margin: 0px; padding-bottom: 3px !important; padding-left: 0px; padding-right: 0px; padding-top: 5px !important; white-space: nowrap;"> <div class="crayon-num" data-line="crayon-5d5cdd2b62d62782196304-1" style="background: 0px center; border-bottom: 0px; border-image: initial; border-left: 0px; border-right: 1px solid rgb(222, 222, 222) !important; border-top: 0px; box-sizing: inherit; color: rgb(170, 170, 170) !important; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; min-width: 1.2em !important; padding: 0px 5px; text-align: right !important;"> 1</div> </div> </td><td class="crayon-code" style="background: 0px center; border: 0px; box-sizing: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px !important; padding: 0px !important; vertical-align: top !important; width: 738px;"><div class="crayon-pre" style="background: none !important; border: none !important; box-sizing: inherit; font-size: 18px !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: 25px !important; margin: 0px; overflow: visible; padding-bottom: 3px !important; padding-left: 0px; padding-right: 0px; padding-top: 5px !important; tab-size: 4; white-space: pre;"> <div class="crayon-line" id="crayon-5d5cdd2b62d62782196304-1" style="background: 0px center; border: 0px; box-sizing: inherit; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px 5px;"> <span class="crayon-e" style="border: 0px; box-sizing: inherit; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;">cd </span><span class="crayon-v" style="border: 0px; box-sizing: inherit; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;">hello</span><span class="crayon-o" style="border: 0px; box-sizing: inherit; color: rgb(166, 127, 89) !important; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;">-</span><span class="crayon-v" style="border: 0px; box-sizing: inherit; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;">angular</span></div> </div> </td></tr> </tbody></table> </div> </div> <div style="background-color: snow; border: 0px; box-sizing: inherit; color: #333333; font-family: "Open Sans"; font-size: 20px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1em; padding: 0px;"> Kemudian ketikkan perintah di bawah ini.</div> <div class="crayon-syntax crayon-theme-prism-like crayon-font-ubuntu-mono crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" id="crayon-5d5cdd2b62d68340969580" style="background: rgb(245, 245, 245) !important; border-color: rgb(222, 222, 222) !important; border-image: initial; border-radius: 5px; border-style: solid !important; border-width: 1px !important; box-sizing: border-box; color: #333333; direction: ltr !important; font-family: Monaco, MonacoRegular, "Courier New", monospace; font-size: 18px !important; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; height: auto; line-height: 25px !important; margin: 14px 0px; overflow: hidden !important; padding: 0px; position: relative !important; text-size-adjust: none; width: 762.344px;"> <div class="crayon-plain-wrap" style="background: 0px center; border: 0px; box-sizing: inherit; font-family: "Ubuntu Mono", UbuntuMonoRegular, "Courier New", monospace !important; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; height: auto !important; line-height: inherit; margin: 0px !important; padding: 0px !important;"> </div> <div class="crayon-main" style="background: 0px center; border: 0px; box-sizing: inherit; font-family: "Ubuntu Mono", UbuntuMonoRegular, "Courier New", monospace !important; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; overflow: hidden; padding: 0px; position: relative; width: 760.344px; z-index: 1;"> <table class="crayon-table" style="background: none !important; border-collapse: collapse !important; border-spacing: 0px !important; border: none !important; box-sizing: inherit; font-size: 12px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin-bottom: 0px !important; margin-left: -23px; margin-right: 0px !important; margin-top: 0px !important; max-width: 100%; padding: 0px !important; table-layout: auto !important; vertical-align: top; width: auto !important;"><tbody style="border: 0px; box-sizing: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px;"> <tr class="crayon-row" style="background: 0px center; border: none !important; box-sizing: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px !important; padding: 0px !important; vertical-align: top !important;"><td class="crayon-nums " data-settings="hide" style="background-attachment: initial; background-clip: initial; background-color: rgb(238, 238, 238) !important; background-image: initial; background-origin: initial; background-position: 0px center; background-repeat: initial; background-size: initial; border: 0px; box-sizing: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px !important; padding: 0px !important; vertical-align: top !important;"><div class="crayon-nums-content" style="background: 0px center; border: 0px; box-sizing: inherit; font-size: 18px !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: 25px !important; margin: 0px; padding-bottom: 3px !important; padding-left: 0px; padding-right: 0px; padding-top: 5px !important; white-space: nowrap;"> <div class="crayon-num" data-line="crayon-5d5cdd2b62d68340969580-1" style="background: 0px center; border-bottom: 0px; border-image: initial; border-left: 0px; border-right: 1px solid rgb(222, 222, 222) !important; border-top: 0px; box-sizing: inherit; color: rgb(170, 170, 170) !important; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; min-width: 1.2em !important; padding: 0px 5px; text-align: right !important;"> 1</div> </div> </td><td class="crayon-code" style="background: 0px center; border: 0px; box-sizing: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px !important; padding: 0px !important; vertical-align: top !important; width: 738px;"><div class="crayon-pre" style="background: none !important; border: none !important; box-sizing: inherit; font-size: 18px !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: 25px !important; margin: 0px; overflow: visible; padding-bottom: 3px !important; padding-left: 0px; padding-right: 0px; padding-top: 5px !important; tab-size: 4; white-space: pre;"> <div class="crayon-line" id="crayon-5d5cdd2b62d68340969580-1" style="background: 0px center; border: 0px; box-sizing: inherit; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px 5px;"> <span class="crayon-e" style="border: 0px; box-sizing: inherit; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;">ng </span><span class="crayon-v" style="border: 0px; box-sizing: inherit; font-family: inherit; font-size: inherit !important; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit !important; height: inherit; line-height: inherit !important; margin: 0px; padding: 0px;">serve</span></div> </div> </td></tr> </tbody></table> </div> </div> <div style="background-color: snow; border: 0px; box-sizing: inherit; color: #333333; font-family: "Open Sans"; font-size: 20px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1em; padding: 0px;"> Jika command di atas berhasil, anda akan melihat gambar berikut di terminal anda. Sebagai bukti bahwa project hello-angular telah siap dibuka di jendela browser.</div> <div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhu5W112tzGZ19ty8kn8pdyTCePXoyRGmVVC946meQwMzQZ52INcsbAXwEzPudi-BmK7WfM9nvWRy_MkuCZAlh-LkHi9tpBYi30y6hLb1m0UubjAkE9kz-Vc-y5frguPk74Zcm_brnvu310/s1600/Screen-Shot-2018-10-20-at-4.28.46-PM-628x251.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="251" data-original-width="628" height="127" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhu5W112tzGZ19ty8kn8pdyTCePXoyRGmVVC946meQwMzQZ52INcsbAXwEzPudi-BmK7WfM9nvWRy_MkuCZAlh-LkHi9tpBYi30y6hLb1m0UubjAkE9kz-Vc-y5frguPk74Zcm_brnvu310/s320/Screen-Shot-2018-10-20-at-4.28.46-PM-628x251.png" width="320" /></a></div> <div style="background-color: snow; border: 0px; box-sizing: inherit; color: #333333; font-family: "Open Sans"; font-size: 20px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1em; padding: 0px;"> <br /></div> <div style="background-color: snow; border: 0px; box-sizing: inherit; color: #333333; font-family: "Open Sans"; font-size: 20px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1em; padding: 0px;"> Selanjutnya, buka browser anda dan ketikkan alamat <em style="border: 0px; box-sizing: inherit; font-family: inherit; font-size: inherit; font-stretch: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px;">locahost:4200</em> pada bagian url. Maka laman browser anda akan menampilkan hasil dari project baru anda.</div> <div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgL6Avq3HJLsDh4bW0C7hZOgXUbIBMnHDv7BotRMe44CJk29-4GOWmKQXEhsBrDTWan6ialmgu_ygeDiyoa4OnHgeL10iVomCo911Hh5GmA_Zetc6sUWJd8uYbrXlyr4mnNVzjLqS6u4kit/s1600/Screen-Shot-2018-10-18-at-10.51.12-PM-768x453.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="453" data-original-width="768" height="188" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgL6Avq3HJLsDh4bW0C7hZOgXUbIBMnHDv7BotRMe44CJk29-4GOWmKQXEhsBrDTWan6ialmgu_ygeDiyoa4OnHgeL10iVomCo911Hh5GmA_Zetc6sUWJd8uYbrXlyr4mnNVzjLqS6u4kit/s320/Screen-Shot-2018-10-18-at-10.51.12-PM-768x453.png" width="320" /></a></div> <div style="background-color: snow; border: 0px; box-sizing: inherit; color: #333333; font-family: "Open Sans"; font-size: 20px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1em; padding: 0px;"> <br /></div> <div style="background-color: snow; border: 0px; box-sizing: inherit; color: #333333; font-family: "Open Sans"; font-size: 20px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1em; padding: 0px;"> Sampai di sini anda telah berhasil menginstall angular cli dan membuat project pertama anda dengan angular. Semoga bermanfaat.</div>