Laporan Pratikum Java Script
Laporan Pratikum Java Script
NIM : 105841103123
1. PROGRAM I
umur = 10000;
// Menggunakan let
// Menggunakan const
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;
var = 21;
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) {
console.log("Perkenalan:", 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
1. PROGRAM 1
a. SOURCE CODE
function fungsi() {
console.log( bark);
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() {
myFunction();
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
// Number
// BigInt
// Boolean
// Null
b. OUTPUT
String:
let str = "Hello, world!"; mendeklarasikan variabel str dengan nilai teks "Hello, world!".
Number:
let num = 90; mendeklarasikan variabel num dengan nilai angka 90.
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:
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
console.log(num, "| Tipe data num:", typeof num); // Output: NaN | Tipe data num: number
b. OUTPUT
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.
typeof num: Menghasilkan "number" karena NaN termasuk dalam tipe data number.
3. PROGRAM 3
a. SOURCE CODE
// Boolean
b. OUTPUT
Pemeriksaan Tipe: typeof bool mengembalikan "boolean" karena bool adalah sebuah nilai boolean.
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.
1. PROGRAM 1
a. SOURCE CODE
const orang = {
nama: "Agund",
umur: 87,
alamat: {
jalan: "jalanin",
},
};
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 = {
umur: 90,
alamat: {
jalan: "bartolomeo",
kota: "Marinfort"
},
};
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);
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() {
}
};
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
this.name = name;
this.age = age;
}
Person.prototype.sayHello = function() {
console.log("Halo, nama saya " + this.name + ", Umur saya: " +this.age);
};
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.
a. SOURCE CODE
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
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 angka2 = 5;
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
myArray.push(50);
myArray.pop();
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
myArray[2] = 99;
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]];
b. OUTPUT
let myArray = [10, "Hello", true, { name: "John", age: 30 }, [1, 2, 3]];membuat array yang berisi:
Angka (10)
String ("Halo")
Boolean (benar)
typeof myArray[i]digunakan untuk mendapatkan tipe data dari elemen saat ini.
7. TYPE CASTING
1. PROGRAM 1
a. SOURCE CODE
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
console.log(stringDariBoolean);
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
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.
2. PROGRAM 2
a. SOURCE CODE
let i = 1;
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++;
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
console.log(myArray[i]);
console.log(element);
let i = 0;
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 = [
];
console.log(adults);
console.log(names);
b. OUTPUT
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.