Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,24 @@
# Week 1 - Welcome to Code!

![HD-wallpaper-welcome-beach-funny-ocean](https://github.com/user-attachments/assets/d76c18fb-6f11-4671-8277-11454fa7b48e)

Selamat datang di RPN Phase-0 Week 1! Repo ini dibuat khusus untuk pemula yang ingin belajar coding dengan fokus pada JavaScript fundamental. Di sini, kalian akan menemukan materi yang mencakup dasar-dasar pemrograman, seperti variabel, tipe data, conditional statement, looping, fungsi, dan banyak lagi.

## Apa yang akan Kalian pelajari di week1 ?

1. **Dasar-dasar Pemrograman**

- Algorithm & Pseudocode
- Variable & Type Data
- Logical Operator

2. **Conditional Statements**

- If...else statements
- Switch case

3. **Looping**

- For loop
- While loop

Expand All @@ -29,6 +33,7 @@ Selamat datang di RPN Phase-0 Week 1! Repo ini dibuat khusus untuk pemula yang i
3. **Bergabunglah dengan komunitas.** Jangan ragu untuk bertanya atau berdiskusi dengan sesama pemula di bagian issues atau melalui pull requests.

## Week 1 Study Materials

- [Apa saja yang harus disiapkan](./study-materials/part1.md)
- [Belajar Algoritma](./study-materials/part2.md)
- [Sintaks JavaScript](./study-materials/part3.md)
Expand All @@ -37,6 +42,7 @@ Selamat datang di RPN Phase-0 Week 1! Repo ini dibuat khusus untuk pemula yang i
- [Belajar Function](./study-materials/part6.md)

## Week 1 Logic Nolep (quiz)

- [Part1](https://github.com/RPN-Phase-0/Week1-Welcome-to-Code/blob/main/quiz/part1/README.md)
- [Part2](https://github.com/RPN-Phase-0/Week1-Welcome-to-Code/tree/main/quiz/part2)
- [Part3](https://github.com/RPN-Phase-0/Week1-Welcome-to-Code/tree/main/quiz/part3)
Expand Down
57 changes: 57 additions & 0 deletions quiz/part1/soal1.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
// Kamu diminta untuk memprogram suatu game sederhana, Proxytia namanya.
// Untuk memulai game itu diperlukan 2 variabel (untuk sekarang),
// yaitu nama dan peran. Variabel peran harus memiliki isi data,
// bila nama kosong, pemain akan diberikan peringatan berupa "nama wajib diisi"
// bila kosong pemain akan diberikan peringatan berupa "Pilih Peranmu untuk memulai game".
// Terdapat 3 peran berbeda yaitu Ksatria, Tabib, dan Penyihir.
// Tugas Anda adalah untuk membuat program yang mengecek isi variabel
// peran serta mengeluarkan respon sesuai isi variabel tersebut.
//ada 4 jenis respons sesuai dengan 3 jenis peran yaitu
//halo Ksatria ${nama} , kamu dapat menyerang dengan senjatamu!
//halo Tabib ${nama} , kamu akan membantu temanmu yang terluka
//halo Penyihir ${nama} , ciptakan keajaiban yang membantu kemenanganmu!
//tapi kayaknya kamu jadi bot aja ya, peran yang kamu pilih ga ada
//tips belajar penggunaan `` (backtick) pada javascript agar
//mudah dalam memasukan variabel ke dalam string
//tapi tanpa backtick juga ga masalah sih yg penting output sesuai

// algoritma
//isi algoritma mu disini (AWAS KALO GA DI ISI!!!!)

let nama = "Dier", peran = "Acumalaka";

console.log(`nama \t: ${nama !== "" ? nama : "---"}\nperan \t: ${peran !== "" ? peran : "---"}\n`)

if (nama == "" || peran == "") {
// berikan peringatan ketika nama kosong
if (nama == "") {
console.log("nama wajib diisi");
}

// berikan peringatan dan tampilkan output jika peran tidak diisi
if (peran == "") {
console.log("Pilih Peranmu untuk memulai game");
}

return;
}

// tampilkan output jika peran adalah Ksatria
if (peran == "Ksatria") {
console.log(`halo Ksatria ${nama}, kamu dapat menyerang dengan senjatamu!`);
}

// tampilkan output jika peran adalah Tabib
else if (peran == "Tabib") {
console.log(`halo Tabib ${nama}, kamu akan membantu temanmu yang terluka`);
}

// tampilkan output jika peran adalah Penyihir
else if (peran == "Penyihir") {
console.log(`halo Penyihir ${nama}, ciptakan keajaiban yang membantu kemenanganmu!`);
}

// tampilkan output jika peran yang dimasukkan tidak ada
else {
console.log(`tapi kayaknya kamu jadi bot aja ya, peran yang kamu pilih ga ada`);
}
32 changes: 32 additions & 0 deletions quiz/part1/soal2.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
// Kamu akan diberikan sebuah tanggal dalam tiga variabel, yaitu hari, bulan, dan tahun. Disini kamu diminta untuk membuat format tanggal. Misal tanggal yang diberikan adalah hari 1, bulan 5, dan tahun 1945. Maka, output yang harus kamu proses adalah menjadi 1 Mei 1945.

// Gunakan switch case untuk kasus ini!

// Contoh:

// let hari = 21; let bulan = 1; let tahun = 1945;

// Maka hasil yang akan tampil di console adalah: '21 Januari 1945';

//tips gunakan keyword ini di google "conditional switch case javascript"
//dan mulailah membaca dan mencontek di stackoverflow xixixi

let tanggal = 30; // assign nilai variabel tanggal disini! (dengan angka antara 1 - 31)
let bulan = 9; // assign nilai variabel bulan disini! (dengan angka antara 1 - 12)
let tahun = 1965; // assign nilai variabel tahun disini! (dengan angka antara 1900 - 2200)

switch (bulan) {
case 1: console.log(`\n${tanggal} Januari ${tahun}\n`); break;
case 2: console.log(`\n${tanggal} Februari ${tahun}\n`); break;
case 3: console.log(`\n${tanggal} Maret ${tahun}\n`); break;
case 4: console.log(`\n${tanggal} April ${tahun}\n`); break;
case 5: console.log(`\n${tanggal} Mei ${tahun}\n`); break;
case 6: console.log(`\n${tanggal} Juni ${tahun}\n`); break;
case 7: console.log(`\n${tanggal} Juli ${tahun}\n`); break;
case 8: console.log(`\n${tanggal} Agustus ${tahun}\n`); break;
case 9: console.log(`\n${tanggal} September ${tahun}\n`); break;
case 10: console.log(`\n${tanggal} Oktober ${tahun}\n`); break;
case 11: console.log(`\n${tanggal} November ${tahun}\n`); break;
case 12: console.log(`\n${tanggal} Desember ${tahun}\n`); break;
default: console.log(`\nMasukkan "angka" bulan yang valid yaitu "antara 1 - 12"\n`); break;
}
17 changes: 17 additions & 0 deletions quiz/part2/soal1.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
//1. Let's Form a Sentence

// Problem
// Pada tugas ini kamu diminta untuk melakukan penambahan string menggunakan simbol +.
// Disediakan variable word. Tambahkan nilai word satu per satu dengan nilai variable lain
// untuk membentuk sebuah kalimat. Jangan lupa menambahkan spasi di setiap kata, dan
// tampilkan di console hasil penggabungannya! Kamu tidak perlu membuat variable baru!

let word = 'JavaScript';
let second = 'is';
let third = 'awesome';
let fourth = 'and';
let fifth = 'I';
let sixth = 'love';
let seventh = 'it!';

console.log(word + " " + second + " " + third + " " + fourth + " " + fifth + " " + sixth + " " + seventh);
33 changes: 33 additions & 0 deletions quiz/part2/soal2.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
// Problem
// Pada tugas ini kamu diminta untuk "memecah" sebuah kalimat dan menampilkan setiap kata didalamnya.
// Untuk soal nomor ini, gunakan akses satu per satu karakter dari string untuk mengambil setiap huruf dalam kata.
// Terasa manual? Tidak apa-apa, kita coba ini dulu untuk saat ini.

// Hints
// Saat kamu mendapatkan tiap huruf, untuk membentuk setiap kata kamu tinggal menggunakan simbol + untuk membentuk kata
// tersebut!

let word = 'wow JavaScript is so cool';
let exampleFirstWord = word[0] + word[1] + word[2];

console.log('First Word: ' + exampleFirstWord);

// KATA KEDUA
let SecondWord = word[4] + word[5] + word[6] + word[7] + word[8] + word[9] + word[10] + word[11] + word[12] + word[13];

console.log('Second Word: ' + SecondWord);

// KATA KETIGA
let ThirdWord = word[15] + word[16];

console.log('Third Word: ' + ThirdWord);

// KATA KEEMPAT
let FourthWord = word[18] + word[19];

console.log('Fourth Word: ' + FourthWord);

// KATA KELIMA
let FifthWord = word[21] + word[22] + word[23] + word[24];

console.log('Fifth Word: ' + FifthWord);
27 changes: 27 additions & 0 deletions quiz/part2/soal3.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
// Problem
// Mirip seperti soal nomor 2, namun kali ini gunakan substring untuk mengambil potongan dari tiap kata!

let word3 = 'wow JavaScript is so cool';
let exampleFirstWord3 = word3.substring(0, 3);

console.log('First Word: ' + exampleFirstWord3);

// KATA KEDUA
let SecondWord = word3.substring(4, 14);

console.log('Second Word: ' + SecondWord);

// KATA KETIGA
let ThirdWord = word3.substring(15, 17);

console.log('Third Word: ' + ThirdWord);

// KATA KEEMPAT
let FourthWord = word3.substring(18, 20);

console.log('Fourth Word: ' + FourthWord);

// KATA KELIMA
let FifthWord = word3.substring(21, 25);

console.log('Fifth Word: ' + FifthWord);
31 changes: 31 additions & 0 deletions quiz/part2/soal4.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
// Problem
// Mirip seperti soal nomor 3, tapi tampilkan juga panjang kata masing-masingnya!


let word4 = 'wow JavaScript is so cool';
let exampleFirstWord4 = word4.substring(0, 3);

let firstWordLength = exampleFirstWord4.length;

// exampleFirstWord tidak ada karena variabel yang benar adalah exampleFirstWord4
console.log('First Word: ' + exampleFirstWord4 + ', with length: ' + firstWordLength);

// KATA KEDUA
let SecondWord = word4.substring(4, 14);

console.log('Second Word: ' + SecondWord + ', with length: ' + SecondWord.length);

// KATA KETIGA
let ThirdWord = word4.substring(15, 17);

console.log('Third Word: ' + ThirdWord + ', with length: ' + ThirdWord.length);

// KATA KEEMPAT
let FourthWord = word4.substring(18, 20);

console.log('Fourth Word: ' + FourthWord + ', with length: ' + FourthWord.length);

// KATA KELIMA
let FifthWord = word4.substring(21, 25);

console.log('Fifth Word: ' + FifthWord + ', with length: ' + FifthWord.length);
16 changes: 16 additions & 0 deletions quiz/part3/soal1.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// PERULANGAN PERTAMA
perulangan_pertama = 1;
console.log("\n\nLOOPING PERTAMA\n");
while (perulangan_pertama <= 10) {
console.log(perulangan_pertama);
perulangan_pertama++;
}

// PERULANGAN KEDUA
perulangan_kedua = 10;
console.log("\n\nLOOPING KEDUA\n");
while (perulangan_kedua >= 1) {
console.log(perulangan_kedua);

perulangan_kedua--;
}
11 changes: 11 additions & 0 deletions quiz/part3/soal2.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// PERULANGAN PERTAMA
console.log("\n\nLOOPING PERTAMA\n");
for (let i = 1; i <= 10; i++) {
console.log(i);
}

// PERULANGAN KEDUA
console.log("\n\nLOOPING KEDUA\n");
for (let i = 10; i >= 1; i--) {
console.log(i);
}
5 changes: 5 additions & 0 deletions quiz/part3/soal3.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
console.log("\n\n PENGECEKAN COUNTER GANJIL GENAP\n")
for (let i = 1; i <= 100; i++) {
if (i % 2 === 0) console.log(`${i} \t--> GENAP`)
if (i % 2 === 1) console.log(`${i} \t--> GANJIL`)
}
17 changes: 17 additions & 0 deletions quiz/part3/soal4.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// KELIPATAN 3 DI PERTAMBAHAN 2
console.log("\n\nPENGECEKAN KELIPATAN 3 DI PERTAMBAHAN 2\n")
for (let i = 1; i <= 100; i = i + 2) {
if (i % 3 === 0) console.log(`${i} \tkelipatan\t3`)
}

// KELIPATAN 6 DI PERTAMBAHAN 5
console.log("\n\nPENGECEKAN KELIPATAN 6 DI PERTAMBAHAN 5\n")
for (let i = 1; i <= 100; i = i + 5) {
if (i % 6 === 0) console.log(`${i} \tkelipatan\t6`)
}

// KELIPATAN 10 DI PERTAMBAHAN 5
console.log("\n\nPENGECEKAN KELIPATAN 10 DI PERTAMBAHAN 9\n")
for (let i = 1; i <= 100; i = i + 9) {
if (i % 10 === 0) console.log(`${i} \tkelipatan\t10`)
}
9 changes: 9 additions & 0 deletions quiz/part3/soal5.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
let input = 5;
let bintang = "*";

while (input >= 1) {
console.log(bintang);

bintang = bintang + "*"
input--;
}
13 changes: 13 additions & 0 deletions quiz/part4/soal1.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
function shoutOut() {
return "Halo Function!";
}

// ------------------------------------
console.log('\n')
// ------------------------------------

console.log(shoutOut());

// ------------------------------------
console.log('\n')
// ------------------------------------
17 changes: 17 additions & 0 deletions quiz/part4/soal2.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
function calculateMultiply(num1, num2) {
return num1 * num2;
}

// ------------------------------------
console.log('\n')
// ------------------------------------

let num1 = 3;
let num2 = 2;

let hasilPerkalian = calculateMultiply(num1,num2);
console.log(hasilPerkalian);

// ------------------------------------
console.log('\n')
// -----------------------------------
19 changes: 19 additions & 0 deletions quiz/part4/soal3.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
function processSentence(name, age, address, hobby) {
return `Nama saya ${name}, umur saya ${age} tahun, alamat saya di ${address}, dan saya punya hobby yaitu ${hobby}!`;
}

// ------------------------------------
console.log('\n')
// ------------------------------------

let name = "Agus";
let age = 30;
let address = "Jln. Malioboro, Yogjakarta";
let hobby = "gaming";

let fullSentence = processSentence(name, age, address, hobby);
console.log(fullSentence);

// ------------------------------------
console.log('\n')
// ------------------------------------
17 changes: 17 additions & 0 deletions quiz/ujian/soal1.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// Problem
// Diberikan sebuah function bandingkanAngka(angka1, angka2) yang menerima dua parameter angka.
// Function akan me-return nilai true jika angka2 lebih besar dari angka1, dan false jika sebaliknya.
// Jika kedua angka bernilai sama, function akan me-return -1.

function bandingkanAngka(angka1, angka2) {
if (angka2 > angka1) return true;
if (angka2 < angka1) return false;
if (angka2 === angka1) return -1;
}

// TEST CASES
console.log(bandingkanAngka(5, 8)); // true
console.log(bandingkanAngka(5, 3)); // false
console.log(bandingkanAngka(4, 4)); // -1
console.log(bandingkanAngka(3, 3)); // -1
console.log(bandingkanAngka(17, 2)); // false
Loading