ROADMAP FULLSTACK

 

PENGENALAN ROADMAP

-FULLSTACK






Eiitttss sebelum masuk ke pembahasan
 Kalian pernah dengar kalimat roadmap sebelumnya?? Jika belum tau apa itu roadmap
 
•Roadmap dalam pembelajaran coding adalah panduan yang sistematis untuk memahami dan menguasai keterampilan-keterampilan yang diperlukan dalam pengembangan perangkat lunak.


      Roadmap ini mencakup langkah-langkah, teknologi, dan konsep-konsep yang perlu dipelajari, serta urutan belajar yang direkomendasikan. 


      Misalnya, seorang Full Stack Developer Roadmap mencakup keterampilan-keterampilan yang perlu dipelajari dari pemula hingga profesional, seperti penggunaan command line, version control, dasar-dasar web, dan topik-topik lainnya



Menjadi seorang fullstack

 



Hal yang wajib skill yang di punya oleh seseorang Programmer secara general ya. harus memiliki skill Yaitu :

         - HTML Hypertext Markup Language (Untuk Struktur Halaman HTML, ada banyak file namun bisa di akses file klik tombol saja)

Contoh Struktur HTML

        - CSS Cascading Style Sheets (Untuk memperbagus Halaman HTML Tapi cara ini masih sangat basic untuk web sederhana ya)
Contoh Penulisan CSS


       - JAVASCRIPT (Untuk supaya website bisa lebih interaktif /memiliki animasi dll)

 
                                                                                                                                                             
Gambaran menjadi Web devlop dasar
                             

                Sekarang jika sudah mulai paham dengan HTML,CSS,JAVASCRIPT lanjut pembahasan lain 

                                                                                                                        


Mengenal Roadmap lebih lanjut



Setelah mengerti HTML,CSS, JAVASCRIPT maka selanjutnya saya akan membahas 
  • NPM (NODE PACKAGE MANAGER) --> sering di gunakan untuk mempermudah menambahkan tools yang serupa dengan orang lain, tanpa harus buat baru lagi. tetapi tidak dapat asal COPY&PASTE begitu saja perlu penyesuaian dengan codingnnya yahhh...

  • GIT/GITHUB--> VERSION CONTROL SYSTEM (VCS)
            Git atau di kenal dengan GITHUB biasa para PROGRAMMER secara General ya,
          menggunakan GITHUB memudahkan kalian menjalakan project bersama teman kalian dengan mudah, hanya bermodalkan internet saja kalian dapat menghemat waktu kalian memerlukan bantuan dari teman/team.
        
        agar mudah memahami GIT, saya berikan contoh. sebut saja SI (A) ingin memberikan codingan dengan teman untuk di lanjutkan. sebut saja SI(B), nah sebelum GIT masuk ke dunia PERCODINGAN maka cara memasukkan filenya ke dalam FLASHDISK lalu berikan ke temannya.

        inikan memakan waktu sekali yah saat bertukar-tukar FLASHDISK belum lagi ketemu eror dan ingin balik ke codingan sebelumnya, maka muncullah si GIT/GITHUB inilah yang memudahkan para PROGRAMMER 


  • REACT (REACT adalah sebuah perpustakaan (library) React juga dapat di gunakan utnuk merender antarmuka/interfaces di sisi node.js dan juga mendukung pengembangan applikasi android melalui kerangka kerja React Native).
        Namun REACT  ada ROADMAP tersendiri nanti kita bakalan bahas juga yahhh, untuk pembahasan lebih lengkapnya

  • NODE.JS
Node.js adalah aplikasi atau lingkungan runtime untuk JavaScript yang berjalan secara langsung di sistem, bersifat open source dan lintas platform. Node.js memungkinkan JavaScript digunakan di luar browser, seperti untuk pengembangan back-end (server), program konsol, program desktop, mobile, IoT, dan game. Node.js juga memiliki keunggulan dalam penanganan asinkronus, non-blocking, dan berbasis peristiwa (event-driven), yang membuatnya berbeda dari platform lain. Singkatnya, Node.js memungkinkan JavaScript untuk dijalankan di luar lingkungan browser dan digunakan untuk berbagai keperluan pengembangan perangkat lunak.

Singkatnya NODE.JS ini dia sebagai software backend untuk menjalakan bahasa yang menggunakan server


MULAI MASUK KE SISI BACKEND nihhh.....
ROADMAP BACKEND


disini backend ada yang menggunakan MYSQL dan NON-MYSQL

  • MYSQL
Contoh penggunaan MySQL adalah ketika seorang pengembang menggunakan perintah-perintah SQL untuk berinteraksi dengan basis data MySQL. Misalnya, penggunaan perintah CREATE DATABASE untuk membuat basis data, atau SELECT, INSERT, UPDATE, dan DELETE untuk memanipulasi data di dalam basis data MySQL.

biasanya dalam sisi server menggunakan CLI, tetapi tenang Jika anda dapat menguasi CLI mysql
dijamin anda akan mudah saat mengimplementasikan kedalam codingan
  • NON-MYSQL
misalnya perintah db.collection.find() untuk melakukan pencarian data di dalam koleksi MongoDB
  1. PostgreSQL
  2. SQLite
  3. MongoDB

Selanjutnya ada
  1. RESTFULL APIs (Dulu nama-namanya sebelum di ganti menjadi APIs)
  • RPC (Remote Procedure Call): Ini adalah metode yang memungkinkan program untuk memanggil fungsi pada program lain di jaringan.
  • Web services: Ini adalah aplikasi web yang menyediakan fungsionalitas yang dapat diakses oleh program lain melalui HTTP.
  • SOAP (Simple Object Access Protocol): Ini adalah protokol standar untuk pertukaran data antara aplikasi web.
  • REST (Representational State Transfer): Ini adalah gaya arsitektur untuk web services yang menekankan penggunaan HTTP untuk manipulasi data

2. Autentikasi JWT (JSON Web Token)

Definisi:

Autentikasi JWT (JSON Web Token) adalah metode autentikasi yang menggunakan token digital untuk memverifikasi identitas pengguna. Token ini dibuat oleh server dan ditandatangani dengan kunci rahasia. Ketika pengguna ingin mengakses sumber daya yang dilindungi, mereka harus menyertakan token dalam permintaan mereka. Server akan memverifikasi token dan mengizinkan akses jika token valid.

Cara Kerja:

  1. Proses Login: Ketika pengguna login, server akan membuat token JWT yang berisi informasi tentang pengguna, seperti nama pengguna, ID pengguna, dan peran. Token ini ditandatangani dengan kunci rahasia dan dienkripsi. Server kemudian akan mengirimkan token kepada pengguna, biasanya dalam bentuk cookie atau header HTTP.
  2. Autentikasi Akses: Ketika pengguna ingin mengakses sumber daya yang dilindungi, mereka harus menyertakan token dalam permintaan mereka. Server akan menerima token dan melakukan langkah-langkah berikut
  • Memverifikasi tanda tangan: Server akan menggunakan kunci publik untuk memverifikasi tanda tangan pada token. Jika tanda tangan tidak valid, token ditolak.
  • Dekripsi token: Server akan mendekripsi token untuk mendapatkan informasi tentang pengguna.
  • Memverifikasi informasi pengguna: Server akan memverifikasi informasi pengguna dalam token. Jika informasi tidak valid, token ditolak.
  • Mengizinkan akses: Jika token valid, server akan mengizinkan akses ke sumber daya yang dilindungi.
Keunggulan Autentikasi JWT:

  • Aman: Token JWT ditandatangani dan dienkripsi, sehingga aman dari pemalsuan dan manipulasi.
  • Stateless: Autentikasi JWT tidak memerlukan penyimpanan informasi sesi di server, sehingga lebih skalabel dan efisien.
  • Fleksibel: Token JWT dapat digunakan dengan berbagai jenis aplikasi, termasuk aplikasi web, aplikasi mobile, dan API.
Kekurangan Autentikasi JWT:

Keamanan kunci rahasia: Kunci rahasia yang digunakan untuk menandatangani token harus disimpan dengan aman. Jika kunci rahasia bocor, token dapat dipalsukan.
Ukuran token: Token JWT dapat menjadi besar, yang dapat memengaruhi kinerja.

Kesimpulan:

Autentikasi JWT adalah metode autentikasi yang aman dan fleksibel yang dapat digunakan dengan berbagai jenis aplikasi. Namun, penting untuk menyimpan kunci rahasia dengan aman dan mempertimbangkan ukuran token saat menggunakan autentikasi JWT.



    3.Redis: Penyimpanan Data In-Memory yang Cepat dan Skalabel


Definisi:

Redis adalah database open-source yang menyimpan data dalam memori. Redis terkenal dengan kecepatannya yang tinggi dan kemampuannya untuk menskalakan secara horizontal. Redis dapat digunakan sebagai database utama, cache, atau message broker.

Fitur Utama:

  • Kecepatan Tinggi: Redis dapat melakukan operasi baca dan tulis dengan sangat cepat karena data disimpan dalam memori.
  • Skalabilitas: Redis dapat diskalakan secara horizontal dengan menambahkan lebih banyak server ke cluster.
  • Ketahanan: Redis dapat direplikasi untuk memastikan ketersediaan data yang tinggi.
  • Multi-Model Data: Redis mendukung berbagai struktur data, seperti string, hash, list, set, dan sorted set.
  • Kemudahan Penggunaan: Redis mudah digunakan dan dipelajari.
Penggunaan:

Redis dapat digunakan untuk berbagai macam aplikasi, seperti:
  • Caching: Redis dapat digunakan untuk cache data yang sering diakses untuk meningkatkan kinerja aplikasi.
  • Real-time applications: Redis dapat digunakan untuk membangun aplikasi real-time seperti chat dan social media.
  • Leaderboards: Redis dapat digunakan untuk membangun leaderboards untuk game dan aplikasi lainnya.
  • Messaging: Redis dapat digunakan sebagai message broker untuk decouple aplikasi dan layanan.
Kesimpulan:

Redis adalah database in-memory yang cepat, skalabel, dan tahan lama. Redis dapat digunakan untuk berbagai macam aplikasi, termasuk caching, aplikasi real-time, leaderboards, dan messaging.

Pengetahuan DevOps




Sebagai Seorang fullstack wajib paling tidak mengerti ilmu LINUX BASIC, seperti CLI di terminal linux yang simple-simple saja seperti remoe  rm "<file_name>" (tanpa tulisan di dalam kutip langsung saja sesudah rm masukkan nama filenya)

LINUX BASIC
  1. Basic AWS SERVICE/layanan
  • Route53 (untuk manage DOMAIN NAME SYSTEM (DNS) )
  • SES (Simple Email Service (SES) biasa ini lebih stabil, fleksibel dan harganya murah)
  • EC2 (Elastic Compute Cloud (EC2) layanan web yang menyediakan kapasitas bentuk server virtual )
  • VPC(Virtual Private Cloud (VPC) ini biasanya kurang lebih seperti RDP(REMOTE DESKTOP PROTOCOL) fungsi sama seperti windows biasa atau linux pada umumnya)
  • S3(Layanan penyimpanan cloud (S3) seperti google drive)
    
    2. system monit
  • Monitoring kode program:
  • Definisi: Merupakan proses mengamati dan melacak kinerja kode program. Ini dapat dilakukan dengan berbagai cara, seperti
  1. Memantau penggunaan memori dan CPU: Untuk memastikan program berjalan dengan efisien.
  2. Mencari bug dan kesalahan: Untuk memastikan program berjalan dengan benar.
  3. Melacak perubahan kode: Untuk melihat bagaimana kode telah berkembang dan bagaimana perubahan memengaruhi kinerja program.
  • Tujuan: Membantu pengembang untuk:
1.     Meningkatkan kinerja program: Dengan mengidentifikasi dan memperbaiki masalah yang menyebabkan program berjalan lambat atau tidak efisien.


2. Meningkatkan stabilitas program: Dengan mengidentifikasi dan memperbaiki bug yang menyebabkan program mogok atau menghasilkan hasil yang tidak terduga.


3. Memahami cara kerja program: Dengan melacak perubahan kode dan melihat bagaimana perubahan tersebut memengaruhi kinerja program.

  • Contoh alat monitor codingan
  1. New Relic: Alat yang populer untuk memantau kinerja aplikasi web dan mobile.
  2. AppDynamics: Alat yang populer untuk memantau kinerja aplikasi Java, .NET, dan PHP.
  3. Dynatrace: Alat yang populer untuk memantau kinerja aplikasi cloud.
Kesimpulan:

Monit codingan adalah proses penting untuk membantu pengembang meningkatkan kinerja, stabilitas, dan pemahaman mereka tentang kode program. Ada berbagai alat yang tersedia untuk membantu pengembang melakukan monitoring kode program dengan lebih mudah dan efisien.


3.    Ansible
    Ansible adalah manajemen konfigurasi sumber terbuka, penerapan aplikasi, dan alat penyediaan yang menggunakan bahasa deklaratifnya sendiri di YAML. Ansible tidak memiliki agen, artinya Anda hanya memerlukan koneksi jarak jauh melalui SSH atau Manajemen Jarak Jauh Windows melalui Powershell agar dapat berfungsi


4.Terraform adalah alat Infrastruktur sebagai Kode (IaC) open source yang sangat populer yang dapat digunakan dengan banyak cloud dan API penyedia layanan yang berbeda. Terraform berfokus pada pendekatan infrastruktur yang tidak dapat diubah, dengan pusat file status terraform untuk melacak status infrastruktur dunia nyata Anda.



Terimakasih Telah simak sampai akhir jika ada pertanyaann bisa di ajukan saja
ingin join komunitas??.....
silahkan join group telegram kita: https://t.me/+bRI7iP4IAAg5MjI1

Next Post
1 Comments
  • pusatterbuka
    pusatterbuka 10 July 2024 at 17:16

    asda

Add Comment
comment url