LAPORAN PRATIKUM JAVA SCRIPT
NAMA : REHAN ANUGRAH
NIM : 105841103123
KELAS : 2-A INFORMATIKA
1. VAR, LET, CONST DAN ATURAN PENAMAAN VARIABEL
1. PROGRAM I
var umur = 19;
console.log("Nilai awal umur:", umur);
umur = 10000;
console.log("Nilai umur setelah abadi (var):", umur);
// Menggunakan let
let nama = "agunz";
console.log("nama anda adalah adalah :", nama);
nama = "komang agung";
console.log("nama anda sekarang adalah:", nama);
// Menggunakan const
const sigma = "yeah";
console.log("anda sigma):", sigma);
OUTPUT
a. KONDISI PROGRAM I
Kondisi 1
Var umur = 19; kita membuat variabel bernama umur menggunakan kata lunci var dan memberi
nilai awal 19 dan outputnya meneunjukkan nilai awal dari variabel umur
Umur = 19; kita mengubah nilai umur menjadi 19, karena var memiliki cakupan yang luas, dan
dapat mengubah nilainya kapan saja. Dan outpunya menunjukkan nilai umur setelah
perubahan.
Kondisi 2
Let nama= ‘agunz’; kita membuat variabel bernama nama menggunakan kata kunci let dan
memberi nilai awal agung,. Dan outputnya menunjukkan nilai awal dari variabel nama
Nama = “komang agung; mengubah nil;ai huruf menjadi komang agung. Sama seperi var, let juga
memungkinkan perubahan nilai setelah dideklarasikan. Outputnya menunjukkan nilau huruf
setelah perubahan.
Kondisi 3
Const sigma = “yeah”; membuat varibel bernama sigma menggunakan kata kunci const dan
memberi nilai awal “yeah”. Outputnya menunjukkan nilai awal dari variabel
Const memiliki cakupan blok. Tidak dapat dideklarasikan ulkang dan nilainya tidak dapt diubah
setelah di inisialisasi.
2. PROGRAM 2
a. SOURCE CODE
91umur= 123;
Nick MOLE= "RAJA SIGMA";
var = 21;
nick &= "RAJA GULA";
b. OUTPUT
a. KONDISI 1
Nama varibel tidak boleh diawali dengan angka karena dapat membingungkan interpreter JS dalam
membedakan antara variabel dan literal angka.
b. KONDISI 2
Spasi tidak diperbolehkan dalam nama variabel karena dapat menyebabkan masalah dalam parsing
kode
c. KONDISI 3
Kunci JS seperti var, let, const, if, else, dan lainnya adalah kata kata yang sudah memiliki arti khusus
dalam bahasa JS dan tidak boleh digunakan sebagai nama variabel
d. KONDISI 4
Hanya (_) yang di perbolehkan sebagai karakter spesial dalam nama variabel, karakter spesial seperti
%#&$ tidak akan valid.
3. PROGRAM 3
a. SOURCE CODE
if (true) {
let nama = "Budiono siregar";
const citacita= kapal laut;
console.log("Perkenalan:", nama,citacita);
console.log("Di luar blok:", nama, citacita);
b. OUTPUT
c. KONDISI 1
Variabel nama dan cita cita dideklarasikan menggunakan let dan const di dalam blok if. Jadi, variabel ini
hanya dapat diakses dalam blok tersebut, perintah console.log pertama kan mencetak nilai kedua
variabel tersebut.
d. KONDISI 2
Ketika mencoba mengakses nama dan umur di luar blok if, JS akan menghasilkan eror karena variabel
tersebut tidak terdefinisi di luar cakupannya
2. VAR DEKLARASI / PENAMAAN VARIABEL
1. PROGRAM 1
a. SOURCE CODE
function fungsi() {
var bark= 23;
console.log( bark);
var angka = 20;
console.log(angka);
funsi();
b. OUTPUT
kita mendendeklarasikan varibel angka dengan nilai 10. Kemudian, kita mendeklarasikan ulang variabel
angka dengan nilai 20. Deklarasi kedua ini akan menimpa nilai sebelumnya, sehingga nilai angka yang
terakhir adalah 20. Ketika kita mencetak nilai angka kedua kalinya, yang muncul adalah nilai terakhir,
yaitu 20. var memiliki cakupan fungsional. Artinya, variabel yang dideklarasikan dengan var dalam
sebuah fungsi hanya berlaku di dalam fungsi tersebut.
2. PROGRAM 2
a. SOURCE CODE
function myFunction() {
var nama = "agung";
console.log("Di dalam fungsi:", nama);
myFunction();
console.log("Di luar fungsi:", nama);
b. OUTPUT
Variabel nama dideklarasikan dengan var di dalam fungsi myFunction. Jadi, variabel ini hanya dapat
diakses di dalam fungsi tersebut. Perintah console.log pertama akan mencetak nilai "agung". Ketika kita
mencoba mengakses nama di luar fungsi myFunction, JavaScript akan menghasilkan error karena
variabel nama tidak terdefinisi di luar cakupannya.
3. TIPE DATA
1. PROGRAM 1
a. SOURCE CODE
let str = "Hello, world!";
console.log( str, "| Tipe data str:", typeof str);
// Number
let num = 90;
console.log( num, "| Tipe data num:", typeof num);
// BigInt
let bigInt =437235637235235982356238552n;
console.log( bigInt, "| Tipe data bigInt:", typeof bigInt);
// Boolean
let bool = true;
console.log( bool, "| Tipe data bool:", typeof bool);
// Null
let nothing = null;
console.log( nothing, "| Tipe data nothing:", typeof nothing);
b. OUTPUT
String:
let str = "Hello, world!"; mendeklarasikan variabel str dengan nilai teks "Hello, world!".
typeof str mengembalikan "string" karena str adalah sebuah string.
Number:
let num = 90; mendeklarasikan variabel num dengan nilai angka 90.
typeof num mengembalikan "number" karena num adalah sebuah angka.
BigInt:
let bigInt =437235637235235982356238552n; mendeklarasikan variabel bigInt dengan nilai bilangan
bulat yang sangat besar menggunakan tipe data bigint.
typeof bigInt mengembalikan "bigint" karena bigInt adalah sebuah bilangan bulat besar.
Boolean:
let bool = true; mendeklarasikan variabel bool dengan nilai boolean true.
typeof bool mengembalikan "boolean" karena bool adalah sebuah nilai boolean.
Null:
let nothing = null; mendeklarasikan variabel nothing dengan nilai null.
typeof nothing mengembalikan "object" secara tidak tepat. Ini adalah salah satu keanehan dalam
JavaScript. Null sebenarnya mewakili ketidakhadiran nilai, tetapi karena alasan historis, ia memiliki tipe
data object.
2. PROGRAM 2
a. SOURCE CODE
// String yang tidak valid untuk konversi
let str = "Hello, world!";
let num = Number(str); // Menggunakan Number() untuk konversi
console.log(num, "| Tipe data num:", typeof num); // Output: NaN | Tipe data num: number
b. OUTPUT
Variabel str diinisialisasi dengan nilai string "Hello, world!".
Konversi Menggunakan Number():
Fungsi Number() mencoba mengonversi string str menjadi angka (number).
Number() dapat mengonversi string yang berisi angka valid seperti "123" menjadi 123, tetapi jika string
tidak berisi angka yang dapat dikenali, seperti "Hello, world!", hasil konversi adalah NaN.
Hasil Konversi
NaN (Not-a-Number): NaN adalah nilai khusus yang menunjukkan bahwa hasil konversi atau operasi
numerik tidak valid atau tidak terdefinisi. Ini adalah hasil dari Number() ketika string yang diberikan tidak
dapat dikonversi menjadi angka.
Tipe Data: Meskipun NaN menunjukkan nilai numerik yang tidak valid, tipe datanya adalah number. Ini
karena NaN termasuk dalam jenis number di JavaScript.
NaN: Menunjukkan bahwa konversi gagal dan hasilnya adalah NaN.
typeof num: Menghasilkan "number" karena NaN termasuk dalam tipe data number.
3. PROGRAM 3
a. SOURCE CODE
// Boolean
let bool = true;
console.log(bool, "| Tipe data bool:", typeof bool);
// Konversi boolean ke string
let boolToString = String(bool);
console.log(boolToString, "| Tipe data boolToString:", typeof boolToString);
// Konversi boolean ke number
let boolToNumber = Number(bool);
console.log(boolToNumber, "| Tipe data boolToNumber:", typeof boolToNumber);
b. OUTPUT
Deklarasi: Variabel bool dideklarasikan dengan nilai true.
Pemeriksaan Tipe: typeof bool mengembalikan "boolean" karena bool adalah sebuah nilai boolean.
Konversi: String(bool) mengubah nilai boolean true menjadi string "true".
Pemeriksaan Tipe: typeof boolToString mengembalikan "string" karena boolToString sekarang adalah
sebuah string.
Konversi: Number(bool) mengubah nilai boolean true menjadi angka 1. Nilai false akan dikonversi
menjadi 0.
Pemeriksaan Tipe: typeof boolToNumber mengembalikan "number" karena boolToNumber sekarang
adalah sebuah angka.
4. OBJECT, OKJECT PROTOTYPE, PROTOTYPE INHERITANCE
1. PROGRAM 1
a. SOURCE CODE
const orang = {
nama: "Agund",
umur: 87,
alamat: {
jalan: "jalanin",
kota: "aja duli"
},
hobi: ["menulis", "ngoding", "ngoding tangan"]
};
console.log("Nama:", orang.nama);
console.log("Umur:", orang.umur);
console.log("Kota:", orang.alamat.kota);
console.log("Hobi:", orang.hobi[2]);
b. OUTPUT
Objek orang memiliki properti alamat yang juga merupakan sebuah objek. Kita bisa mengakses properti
dalam objek bersarang dengan menggunakan notasi titik berulang. Array sebagai properti hobi adalah
sebuah array yang berisi nilai-nilai string. Kita bisa mengakses elemen dalam array menggunakan indeks.
2. PROGRAM 2
a. SOURCE CODE
const orang = {
nama: "Lutfi wan pis",
umur: 90,
alamat: {
jalan: "bartolomeo",
kota: "Marinfort"
},
hobi: ["menulis", "ngoding", "ngoding tangan"]
};
// Menambahkan properti baru
orang.pekerjaan = "Yonkou";
orang.tanggalLahir = "27-09-1999";
// Mengakses semua properti
console.log("Nama:", orang.nama);
console.log("Umur:", orang.umur);
console.log("Kota:", orang.alamat.kota);
console.log("Hobi:", orang.hobi[2]);
console.log("Pekerjaan:", orang.pekerjaan);
console.log("Tanggal Lahir:", orang.tanggalLahir);
b. OUTPUT
Kita menambahkan dua properti baru, yaitu pekerjaan dengan nilai "Mahasiswa" dan tanggalLahir
dengan nilai "27-08-2005". Kita mencetak semua properti objek orang termasuk properti baru yang telah
ditambahkan.
3. PROGRAM 3
a. SOURCE CODE
const orang = {
nama: "akaiunu",
umur: 72,
salam: function() {
console.log("Halo, nama saya " + this.nama);
}
};
const mahasiswa = Object.create(orang);
mahasiswa.jurusan = "Informatika";
console.log(mahasiswa.nama);
console.log(mahasiswa.jurusan);
mahasiswa.salam();
b. OUTPUT
Kita membuat objek orang yang akan menjadi objek induk atau prototype. Objek ini memiliki properti
nama, umur, dan metode salam. Kita menggunakan Object.create(orang) untuk membuat objek baru
mahasiswa. Objek mahasiswa secara otomatis mewarisi semua properti dan metode dari orang. Kita
menambahkan properti jurusan yang spesifik untuk objek mahasiswa. Kita dapat mengakses properti
dan metode yang diwarisi dari objek induk maupun properti yang unik pada objek baru.
4. PROGRAM 4
a. SOURCE CODE
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.sayHello = function() {
console.log("Halo, nama saya " + this.name + ", Umur saya: " +this.age);
};
const person1 = new Person("Roger", 32);
const person2 = new Person("Garp", 77);
person1.sayHello();
person2.sayHello();
b. OUTPUT
mendefinisikan fungsi konstruktor bernama Personyang mengambil dua argumen: dan . nameage. Di
dalam fungsi, dan digunakan untuk menetapkan argumen yang disediakan ke properti objek yang sedang
dibuat. this.namethis.age. Baris ini menambahkan metode yang dipanggil sayHelloke Personprototipe
fungsi. Prototipe adalah objek yang berfungsi sebagai cetak biru untuk semua contoh yang dibuat
menggunakan Personkonstruktor. Metode ini sayHellomenggunakan literal templat ( "tanda petik
terbalik ") to create a formatted string that includes the object'snama andumur orang . Theini1
orang2`).keyword within the method refers to the specific object that is calling the method (eitheror.
const person1 = new Person("Roger", 32);membuat objek baru bertipe Personbernama person1.
Argumen "Roger" dan 32 diteruskan ke konstruktor dan ditetapkan ke person1.namedan person1.age,
masing-masing. const person2 = new Person("Garp", 72);membuat Personobjek lain bernama
person2dengan nilai "Garp" untuk namedan 72 untuk age. person1.sayHello();memanggil
sayHellometode pada objek person1. Karena person1.name"Roger" dan person1.age32, metode akan
menampilkan string person2.sayHello();panggilan sayHellopada person2. Karena person2.name"Garp"
person2.ageberusia 32 tahun.
5. VALUE COMPARISON OPERATORS
1. PROGRAM 1
a. SOURCE CODE
let angkaSebagaiString = "42";
let angkaSebagaiAngka = 42;
console.log(angkaSebagaiString == angkaSebagaiAngka);
console.log(angkaSebagaiString === angkaSebagaiAngka);
b. OUTPUT
Operator == Lebih fleksibel karena melakukan konversi tipe data. Namun, bisa menyebabkan hasil yang
tidak terduga jika tidak digunakan dengan hati-hati. Operator === Lebih ketat dan memberikan hasil yang
lebih konsisten. Sebaiknya gunakan operator ini jika Anda ingin memastikan bahwa kedua variabel
memiliki nilai dan tipe data yang sama persis.
2. PROGRAM 2
a. SOURCE CODE
let angka = 10;
let teks = "10";
console.log(angka != teks);
console.log(angka !== teks);
b. OUTPUT
Meskipun keduanya memiliki nilai yang sama secara numerik, tipe datanya berbeda. Karena tipe datanya
berbeda, maka perbandingan != menghasilkan true. Karena nilai dan tipe datanya berbeda, maka
perbandingan !== juga menghasilkan true.
3. PROGRAM 3
a. SOURCE CODE
let angka1 = 10;
let angka2 = 5;
console.log(angka1 > angka2);
console.log(angka1 < angka2);
console.log(angka1 >= angka2);
console.log(angka1 <= angka2);
b. OUTPUT
Operator > (lebih besar dari): Mengembalikan true jika nilai di sebelah kiri lebih besar dari nilai di
sebelah kanan. Operator < (lebih kecil dari): Mengembalikan true jika nilai di sebelah kiri lebih kecil dari
nilai di sebelah kanan. Operator >= (lebih besar dari atau sama dengan): Mengembalikan true jika nilai di
sebelah kiri lebih besar dari atau sama dengan nilai di sebelah kanan. Operator <= (lebih kecil dari atau
sama dengan): Mengembalikan true jika nilai di sebelah kiri lebih kecil dari atau sama dengan nilai di
sebelah kanan.
6. ARRAY
1. PROGRAM 1
a. SOURCE CODE
let myArray = [10, 20, 30, 40];
console.log("Array awal:", myArray);
myArray.push(50);
console.log("Setelah menambahkan 50:", myArray);
myArray.pop();
console.log("Setelah menghapus elemen terakhir:", myArray);
b. OUTPUT
let myArray = [10, 20, 30, 40]; membuat sebuah array yang berisi angka 10, 20, 30, dan 40.
myArray.push(50); menambahkan angka 50 ke akhir array. Metode push() digunakan untuk
menambahkan satu atau lebih elemen ke akhir array. myArray.pop(); menghapus elemen terakhir dari
array. Metode pop() menghapus dan mengembalikan elemen terakhir dari array.
2. PROGRAM 2
a. SOURCE CODE
let myArray = [10, 20, 30, 40];
console.log("Array awal:", myArray);
myArray[2] = 99;
console.log("Array setelah perubahan:", myArray);
b. OUTPUT
let myArray = [10, 20, 30, 40]; membuat sebuah array yang berisi angka 10, 20, 30, dan 40. myArray[2] =
99;mengakses elemen pada indeks 2 (yang sebenarnya adalah elemen ketiga karena indeks dimulai dari
0) dan mengubah nilainya menjadi 99.
3. PROGRAM 3
a. SOURCE CODE
let myArray = [10, "Hello", true, { name: "John", age: 30 }, [1, 2, 3]];
for (let i = 0; i < myArray.length; i++) {
console.log("Elemen ke-" + i + " bertipe data:", typeof myArray[i]);
b. OUTPUT
let myArray = [10, "Hello", true, { name: "John", age: 30 }, [1, 2, 3]];membuat array yang berisi:
Angka (10)
String ("Halo")
Boolean (benar)
Objek ({nama: "John", umur: 30})
Susunan ([1, 2, 3])
Menggunakan perulangan for, kita mengakses setiap elemen dalam array.
typeof myArray[i]digunakan untuk mendapatkan tipe data dari elemen saat ini.
console.log()mencetak tipe data ke konsol.
7. TYPE CASTING
1. PROGRAM 1
a. SOURCE CODE
let angkaSebagaiString = "48";
let angka = Number(angkaSebagaiString);
console.log(angka);
console.log(typeof angka);
b. OUTPUT
let angkaSebagaiString = "48"; membuat sebuah variabel string yang berisi karakter angka "48". let angka
= Number(angkaSebagaiString); menggunakan fungsi Number() untuk mengubah string menjadi number.
Hasil konversi disimpan dalam variabel angka. console.log(angka); mencetak nilai angka yang sekarang
bertipe number. console.log(typeof angka); mencetak tipe data dari angkaBahasa Indonesia: yang
seharusnya adalah "number".
2. PROGRAM 2
a. SOURCE CODE
let nilaiBoolean = true;
let stringDariBoolean = String(nilaiBoolean);
console.log(stringDariBoolean);
let angkaDariBoolean = Number(nilaiBoolean);
console.log(angkaDariBoolean);
b. OUTPUT
Boolean ke String: Ketika dikonversi menjadi string, nilai boolean true akan menjadi string "true", dan
false akan menjadi string "false". Boolean ke Number: Ketika dikonversi menjadi number, nilai boolean
true akan menjadi angka 1, dan false akan menjadi angka 0.
8. LOOPING
1. PROGRAM 1
a. SOURCE CODE
for (let i = 1; i <= 10; i++) {
console.log(i);
b. OUTPUT
for (let i = 1; i <= 10; i++): Ini adalah struktur dasar loop for di JavaScript.
let i = 1;: Membuat variabel i dengan nilai awal 1. Variabel ini akan menjadi counter untuk perulangan.
i <= 10;: Kondisi yang harus dipenuhi agar loop terus berjalan. Selama nilai i kurang dari atau sama
dengan 10, loop akan terus berulang.
i++: Setelah setiap iterasi, nilai i akan bertambah 1.
console.log(i);: Perintah ini akan mencetak nilai i ke konsol pada setiap iterasi.
2. PROGRAM 2
a. SOURCE CODE
let i = 1;
while (i <= 10) {
console.log(i);
i++;
b. OUTPUT
let i = 1;: Kita mendeklarasikan variabel i dengan nilai awal 1. Variabel ini akan berfungsi sebagai counter
untuk perulangan. while (i <= 10): Kondisi dalam loop ini memeriksa apakah nilai i kurang dari atau sama
dengan 10. Selama kondisi ini benar, loop akan terus berjalan. console.log(i);: Perintah ini mencetak nilai
i ke konsol. i++;: Nilai i kemudian dinaikkan satu menggunakan operator ++. Ini memastikan bahwa pada
iterasi berikutnya, nilai i akan bertambah.
3. PROGRAM 3
a. SOURCE CODE
let i = 1;
do {
console.log(i);
i++;
} while (i <= 10);
b. OUTPUT
do { ... } while (i <= 10);: Blok kode di dalam do akan selalu dijalankan setidaknya sekali, bahkan jika
kondisi dalam while awalnya sudah salah. Setelah itu, kondisi i <= 10 akan diperiksa. i++;: Nilai i
kemudian dinaikkan satu menggunakan operator ++. Ini memastikan bahwa pada iterasi berikutnya, nilai
i akan bertambah.
4. PROGRAM 4
a. SOURCE CODE
const myArray = [10, 20, 30, 40, 50];
for (let i = 0; i < myArray.length; i++) {
console.log(myArray[i]);
for (const element of myArray) {
console.log(element);
let i = 0;
while (i < myArray.length) {
console.log(myArray[i]);
i++;
b. OUTPUT
for loop: Merupakan loop yang paling umum digunakan dan sangat fleksibel. Kita menentukan nilai awal,
kondisi akhir, dan cara mengubah nilai iterasi di setiap langkah.
untuk...dari loop (JavaScript): Khusus untuk bahasa-bahasa yang mendukung iterasi langsung pada
elemen-elemen iterable (seperti array), loop ini lebih ringkas dan mudah dibaca.
perulangan while: Loop ini akan terus berjalan selama kondisi yang diberikan bernilai benar. Kita perlu
mengelola indeks atau counter secara manual.
perulangan for-each (Java): Mirip dengan for...of loop di JavaScript, digunakan untuk iterasi langsung
pada elemen-elemen array tanpa perlu mengelola indeks.
5. PROGRAM 5
a. SOURCE CODE
const people = [
{ name: agung', age: 18 },
{ name: 'Suki', age: 35 },
{ name: 'AMBATUKAM', age: 73 }
];
const adults = people.filter(person => person.age > 25);
console.log(adults);
const names = people.map(person => person.name.toUpperCase());
console.log(names);
b. OUTPUT
Membuat array baru dengan elemen yang memenuhi kondisi tertentu.
Menggunakan fungsi filter()dalam JavaScript dan filter()ekspresi lambda dengan Python.
Mengembalikan array baru tanpa mengubah array asli.
Membuat array baru dengan mengubah setiap elemen sesuai dengan fungsi yang diberikan.
Menggunakan fungsi map()dalam JavaScript danmap() dengan lambda expression dalam Python.
Mengembalikan array baru tanpa mengubah array asli.