terimakasih atas ilmunya pak dhika. var penumpang = []; // tambah penumpang var tambahPenumpang = function(namaPenumpang) {
// jika angkot kosong if (penumpang.length == 0) { penumpang.push(namaPenumpang); return penumpang; } // jika angkot ada penumpang
// perulangan untuk menelusuri seluruh kursi dari awal for( var i = 0; i < penumpang.length; i++) { // jika kursi bernilai undefined if(penumpang[i] == undefined) {
// perulangan untuk setiap elemen array for (var j = 0; j < penumpang.length; j++) { // jika kursi bernilai undefined dan nama penumpang sama dengan salah satu elemen array if(namaPenumpang == penumpang[j]) { console.log(namaPenumpang + ' Sudah ada didalam angkot.'); return penumpang; } } // jika kursi bernilai undefined dan nama penumpang tidak sama dengan salah satu elemen array if (namaPenumpang != penumpang[i]) penumpang[i] = namaPenumpang; return penumpang; } // jika kursi tidak bernilai undefined dan nama penumang sama dengan salah satu elemen array if(namaPenumpang == penumpang[i]) { console.log(namaPenumpang + ' Sudah ada didalam angkot.'); return penumpang; } // jika kursi sudah penuh if(i == penumpang.length - 1) { penumpang.push(namaPenumpang); return penumpang; } }
} // hapus penumpang var hapusPenumpang = function(namaPenumpang) { // jika tidak ada penumpang didalam angkot if(penumpang.length == 0) { console.log('Angkot masih kosong.'); return penumpang; } // pengulangan untuk menelusuri elemen array for(var i = 0; i < penumpang.length; i++) { // jika nama penumpang yang ingin dihapus ada didalam array if( namaPenumpang == penumpang[i]) { penumpang[i] = undefined; return penumpang; } // jika nama penumpang yang ingin dihapus tidak ada didalam array else if( i == penumpang.length - 1) { console.log(namaPenumpang + ' Tidak ada didalam angkot.') return penumpang; } } }
apa cuma gw disini yaa dari semenjak awal ngikutin sampe else if while for masih bisa.. Semenjak masuk ke Function ama array trus nyoba kasus kayak gini malah jd puyeng ? yang menyebabkann gw berkali kali nonton ulang video mas sandhika tentang Function dan Array lagi??
Mantap sekali Latihan yang diberikan Pak! Baru belajar JS sudah bisa paham sampai tahap ini dan semua function yang dipelajari dapat diterapkan didalam Latihan ini, Mantap Pak! var penumpang = ['Ando', undefined, 'Loli']; var tambahPenumpang = function(nama, arr) { if (arr.length == 0) { arr.push(nama); return arr; } else { var checkPenumpang = arr.find(function(e) { if (e == nama) { return true; } }) var ambilIndexPenumpang = arr.findIndex(function(e) { return e == undefined; })
if (checkPenumpang === nama) { console.log(nama + ' sudah ada didalam angkot') return arr; } else if (ambilIndexPenumpang < 0 && checkPenumpang == undefined) { arr.push(nama); return arr; } else if (checkPenumpang == undefined && penumpang.length > 0) { arr[ambilIndexPenumpang] = nama; return arr; } } }
@Nirma Ulifa Janata Q: mas mau nanya dong, arr itu array kan ya? A: iyaa, arr adalah sebuah parameter yang menerima argument array. Q: tapi variabel kamu kan pake nama penumpang, nah itu gmna? kok bisa diganti ama arr di syntax fungsinya? A: nama juga adalah sebuah parameter didalam function tambahPenumpang, syntax bagian mna kah yang mbak anggap parameter nama diganti sama arr? hehehe Q: terus juga yang 'e', apakah 'e' itu mutlak nunjukkin elemen yang ada di array ya? A: iyaa, contohnya var checkPenumpang = arr.find(function(e) { if (e == nama) { return true; } parameter e menampung nilai yg ada didalam arr.
makasih bang berkat tambahan varialbel ini : var checkPenumpang = arr.find(function(e) { if (e == nama) { return true; } }) bisa ngecek kesebelahnya kalo yang dari pak andika dia cuma ngecek index ke 0 aja ke sebelahnya, jadi otomatis nama di penumpang di index ke 2 jadi dobel, eh btw ini funcion ekspresion kan ya namanya karna di dalam variabel?
Terimakasih Pak Sandi... Baru belajar.... hehe var penumpangAngkot1 = [] function tambahPenumpang (a,b) { if (b.find(function(e) {return e === 'Kosong'}) === 'Kosong') { var indexKosong = b.findIndex(function(e) { return e == 'Kosong' }) b[indexKosong] = a } else if(b.find(function(e) {return e == a}) ==a) { console.log('Penumpang ini Sudah ada di dalam Angkot') } else { b.push(a) } console.log(b) } function turunPenumpang (a,b){ var index = b.findIndex(function(e) { return e == a } ) b.splice(index,1,'Kosong') console.log(b) }
saya tidak kuliah/sekolah jurusan IT, tapi penjelasan pak sandhika sangat mudah dipahami code saya walau agak beda hehehe; var penumpang = []; function tambahPenumpang(nama, array) { if(array.indexOf(nama) > -1){ console.log(nama + " sudah ada di dalam angkot") } else { var kursiKosong = array.findIndex(Object.is.bind(null, undefined)); if(kursiKosong >= 0){ array[kursiKosong] = nama; } else { array.push(nama); } } return array; }
makasih bang sandhika akhrnya nongkrong lagi didpan chanell ini ilmu baru lagi..cepat sembuh bang..dan satu lagi jangan lupa titik koma :) sukses bang sandika
tambah Penumpang versi dikombinasikan dengan method includes : mana tau membantu bagi yg membutuhkan :) var penumpang = []; function tambahPenumpang(nama, arr) { if (arr.includes(nama)) { console.log(nama + ' sudah ada didalam angkot'); } else if (arr.includes(undefined)) { arr[arr.indexOf(undefined)] = nama; } else { arr.push(nama); } return arr; }
Jujur saya bingung sama kodingnya, tapi paham sama rulesnya. Masih kagok pas eksekusi bener gak yah malah eror terus. Tapi saya gak mau nyerah meskipun akhirnya nyontek juga jawabannya. Tapi saya coba ulang-ulangin dengan sambil pahami lagi kodingnya. Terutama bagian pengkodisian masih bingung kenapa di dalam Else ada If dan else if lagi. Makasih mas Dhika untuk ilmunya.
punya saya begini var penumpang = ["ayas", "budi", undefined, "otong"]; var tambahPenumpang = function(namaPenumpang, penumpang) { if(penumpang.length == 0) //angkot kosong { penumpang.unshift(namaPenumpang); } else if(typeof(penumpang) == "object")//angkot sudah berisi penumpang { var kosong = penumpang.findIndex(function(e) //cek jika ada elemen undefined { return e == undefined; //kembalikan index yang elemennya kosong }); var sama = penumpang.find(function(e) //cek jika ada elemen yang sama { return e == namaPenumpang; }); if(kosong != undefined) //jika ada elemen kosong { penumpang.splice(kosong, 1, namaPenumpang); } else if(sama == namaPenumpang)//jika ada penumpang yang namanya sama { console.log("Error, nama yang dimasukan sudah ada..."); } else //jika semua tempat duduk sudah dipenuhi { penumpang.push(namaPenumpang); } } else //angkot tidak ada { console.log("Angkot tidak ada!"); } return penumpang; };
var penumpang = ['Sandhika', 'Galih', 'Doddy']; // variabel array kursiKosong untuk mengetahui kursi yang mana saja yang masih kosong. var kursiKosong = []; // variabel sebagai penanda penumpang yang keluar itu pada indeks ke berapa var indeksPenumpangKeluar; var tambahPenumpang = function(nama){ if(penumpang.length == 0) { penumpang.push(nama); } else { // Jika tidak ada kursi yang kosong dan nama penumpang yang akan duduk tidak sama dengan nama // penumpang yang sudah ada di didalam angkot, maka langsung push bagian akhir. if( kursiKosong.length == 0 && nama != penumpang.find(function(e) { return e == nama })) { penumpang.push(nama); // Jika penumpang yang naik memiliki nama yang sama maka akan tampil message. } else if( nama == penumpang.find(function(e) { return e == nama }) ) { console.log(nama + " sudah ada di dalam Angkot "); console.log(penumpang); // jika ada kursi kosong dan nama penumpang yang masuk tidak sama, maka // penumpang akan mengisi kursi kosong paling depan } else { // value undefined pada array penumpang akan dihapus dan diganti dengan nama penumpang baru penumpang.splice(kursiKosong[0], 1, nama); // kemudian value paling depan pada array kursi kosong akan dihapus, karena sudah terisi penumpang. kursiKosong.shift(); } } } var hapusPenumpang = function(nama) { // Jika nama penumpang yang mau keluar ada, maka indeks penumpang keluar tersebut akan disimpan // pada array indeksPenumpangKeluar if( nama == penumpang.find(function(e,i) {indeksPenumpangKeluar = i; return e == nama;}) ) { // menambahkan indeks penumpang keluar pada array kursiKosong kursiKosong.push(indeksPenumpangKeluar); // Menandakan kursi kososng dengan undefined penumpang[indeksPenumpangKeluar] = undefined; // Mengurutkan value yang ada didalam array kursiKosong agar dapat mengantisipasi jika // penumpang yang paling belakang yang keluar duluan sebelum penumpang didepan // sehingga saat kursi kosong diisi itu selalu paling depan kursiKosong.sort(); } else { console.log("Nama " + nama + " tidak ada di dalam Angkot."); } }
mantap! walaupun work tapi saya agak beda dikit sih pak hehe var penumpang = ["andi", undefined, "rafi"]; function tambahPenumpang(penumpang, arrayPenumpang) { // menambahkan penumpang if (arrayPenumpang.length == 0) { arrayPenumpang.push(penumpang); return arrayPenumpang; } // jika nama sama for (var i = 0; i < arrayPenumpang.length; i++) { if (arrayPenumpang[i] == penumpang) { console.log("Penumpang " + penumpang + " sudah ada"); return arrayPenumpang; } } // jika penumpang undefined for (var i = 0; i < arrayPenumpang.length; i++) { if (arrayPenumpang[i] === undefined) { arrayPenumpang[i] = penumpang; return arrayPenumpang; } } // jika penuh arrayPenumpang.push(penumpang); return arrayPenumpang; }
Bismillah.. Dari Array penumpang = ['sandika', undifened, 'galih'] Ketika kita masukkan nama 'sandika' maka nama 'sandika' tidak bisa masuk. namun ketika kita masukkan nama 'galih'.. Array penumpang menjadi ['sandika', 'galih', 'galih'] Jadi mungkin perlu perbaikan pak..
yup harusnya kita telusurin dulu seluruh isi array ada yang namanya sama kayak penumpang yang mau masuk/ngga, kalo ada print dia udah masuk angkot, kalo ngga baru ke program nyari kursi kosong
tinggal nambah syarat aja untuk ifnya angkot[i] !== undefined // membuat array penumpang var angkot = ['sandika', undefined, 'galih']; //fungsi tambah penumpang var tambahPenumpang = function(namaPenumpang, angkot){ //jika angkot kosong if(angkot.length ==0){ angkot.push(namaPenumpang); return angkot; } else { //jika angkot berisi for (var i=0; i
Code ane sebelum dikerjain bersama, its work but different. var passenger = []; var maxPassenger = 17; var namePassenger = undefined; var empty = "empty"; // new passenger function newPassenger(namePassenger) { var allPassenger = passenger.length; // Function Check Undefined & namePassenger var checkPass = passenger.find(function (x) { return x == namePassenger; }); // Function Check Empty Passenger var defEmpty = passenger.find(function (x) { return x == empty; }); // Function Check No Empty Passenger var defNo = passenger.findIndex(function (x) { return x == empty; }); if (allPassenger
filter nama penumpang tidak boleh sama hanya berjalan saat di indeks[0] saja karena jika diisi nama indeks[2] saat prose looping nya akan masuk ke if undefined karena terdeteksi ada undefined di indeks [1].
Alhamdulillah di menit 8.28, akhirnya ketemu juga code-nya sesuai dengan pseudo code dari Pak Shandika: var penumpang = ["Robbi", undefined, "Cindy"]; var tambahPenumpang = function (namaPenumpang, penumpang) { if (penumpang.length === 0) { penumpang.push(namaPenumpang); return penumpang; } else if (penumpang.includes(namaPenumpang)) { console.log("Nama penumpang sudah ada"); return penumpang; } else if (penumpang.includes(undefined)) { var indexUndefined = penumpang.indexOf(undefined); penumpang[indexUndefined] = namaPenumpang; return penumpang; } else if (penumpang.length !== 0) { penumpang.push(namaPenumpang); return penumpang; } }; tambahPenumpang(...., penumpang); console.log(penumpang);
pak itu ada kesalahan pada bagian "jika nama penumpang sama".. rumusan pak sandi hanya berlaku jika nama penumpang[0] sama dengan namaPenumpang, jika yang namaPenumpang ada di index setelahnya penumpang[0], rumusnya jadi kacau.... kita harus pakai array.some untuk mengecek apakah keseluruhan index penumpang sama dengan nama yg baru masuk.. makasih,, aku baru belajar
pesan kesalahan tidak keluar kalau isi nama doddy dahulu, sandika, doddy, doddy pesan kesalahan tidak keluar. sebab doddy di index ke 2. code nya jalan undefined dahulu sebelum ngechek nama yang sama
Klo make method find : NOTE : Klo ada penumpang turun, tidak sya replace dengan undefined, sehingga sya gunakan simbol lain, dalam contoh sya, jika penumpang turun akan di replace dengan string 'Kursi Kosong' const contohAjaNih = []; var indexKursiKosong; function tambahPenumpang(namaPenumpang, arrayMana){ if (arrayMana.find(function(item){ return item == namaPenumpang; }) == undefined){ if (arrayMana.find(function(item, index){indexKursiKosong = index; return item === 'Kursi Kosong';})== undefined){ arrayMana.push(namaPenumpang); console.log(' ' + namaPenumpang + ' telah masuk ke angkot. Duduk di kursi index ke - ' + (arrayMana.length - 1)); }else{ arrayMana[indexKursiKosong] = namaPenumpang; console.log(' ' + namaPenumpang + ' telah masuk ke angkot. Duduk di kursi index ke - ' + indexKursiKosong); } }else{ console.log(' ' + namaPenumpang + ' sudah ada di dalam angkot !'); } } tambahPenumpang('Tes1', contohAjaNih); tambahPenumpang('Tes2', contohAjaNih); tambahPenumpang('Tes2', contohAjaNih); tambahPenumpang('Tes3', contohAjaNih); contohAjaNih[0] = 'Kursi Kosong'; console.log(' Tes1 turun dari angkot. Kursi index ke - 0 kosong !'); tambahPenumpang('Tes4', contohAjaNih); console.log(contohAjaNih);
@@ombotak7145 Ini om, udh saya perbarui, semoga lebih mudah dibaca const contohAjaNih = []; let indexKursiKosong; let namaPenumpang; function penumpangYangSama(item) { return item == this.namaPenumpang; } function kursiKosong(item, index){ this.indexKursiKosong = index; return item == 'Kosong'; } function tambahPenumpang(namaPenumpang, kursiAngkot){ this.namaPenumpang = namaPenumpang; if (!kursiAngkot.find(penumpangYangSama)){ if (!kursiAngkot.find(kursiKosong)){ kursiAngkot.push(namaPenumpang); console.log(' ' + namaPenumpang + ' telah masuk ke angkot. Duduk di kursi index ke - ' + (kursiAngkot.length - 1)); }else{ kursiAngkot[this.indexKursiKosong] = namaPenumpang; console.log(' ' + namaPenumpang + ' telah masuk ke angkot. Kursi no. ' + this.indexKursiKosong + ' yang sebelumnya kosong, telah diisi.'); } }else{ console.log(' ' + namaPenumpang + ' sudah ada di dalam angkot !'); } } tambahPenumpang('Anda', contohAjaNih); tambahPenumpang('Andi', contohAjaNih); tambahPenumpang('Andi', contohAjaNih); tambahPenumpang('Andu', contohAjaNih); contohAjaNih[0] = 'Kosong'; console.log(' Andi turun dari angkot. Kursi index ke - 0 kosong !'); tambahPenumpang('Ande', contohAjaNih); console.log(contohAjaNih);
@@fajarmukhlis7584 bang saya mau nanya lagi nih, saya benar² pemula, Gimana cara baca 2 code ini ya bang if (!kursiAngkot.find(penumpangYangSama) Dan if (!kursiAngkot.find(kursiKosong) Makasih sebelumnya bang
pa mau nanya nih, kalo di menit ke 14:35 itu bekerja sebelum di tambahkan else tapi pas bapak tambahkan else kok var i nya jadi 0? dan else nya harus di tambahkan if
Pak Dhika saya mau bertanya, kenapa parameter yg digunakan dalam function tambahPenumpang ada 2 buah yaitu : namaPenumpang dan penumpang? saya coba hanya namaPenumpang only bisa pak, return nya return penumpang, karena di awal sudah dideklarasikan (var penumpang = []) , mohon koreksinya ya pak terimakasih.
@@monangbahana4562 mungkin untuk menandakan bahwa dia adalah penumpang yang naik ke angkot, dan munkin misal kita ganti penumpang nya jadi angkot ('ujang', angkot) maka ujang naik angkot gitu mungkin ilustrasinya. maaf kalau salah mohon koreksi
var penumpang = []; var namaPenumpang; var hapus; menu(); function menu() { var pilihan = prompt("Masukkan aksi yang ingin dilakukan : 1. Menambahkan penumpang 2. Menurunkan penumpang 3. Keluar aplikasi"); if (pilihan === "1") { namaPenumpang = prompt("Masukkan nama penumpang"); tambahPenumpang(namaPenumpang, penumpang); } else if (pilihan === "2") { hapus = prompt("Siapa yang ingin anda turunkan?"); hapusPenumpang(hapus, penumpang); } else if (pilihan === "3") { alert("Terimakasih"); } } function tambahPenumpang(name, arrPenumpang) { for (var i = 0; i < arrPenumpang.length; i++) { if (arrPenumpang[i] === name) { alert("Penumpang sudah naik"); menu(); return; } } for (var i = 0; i < arrPenumpang.length; i++) { if (arrPenumpang[i] === "(Kosong)") { arrPenumpang[i] = name; menu(); return; } } arrPenumpang.push(name); menu(); } function hapusPenumpang(hapus, arrPenumpang) { for (var i = 0; i < arrPenumpang.length; i++) { if (arrPenumpang[i] === hapus) { arrPenumpang[i] = "(Kosong)"; alert(hapus + " berhasil turun"); menu(); return; } } alert("Penumpang tidak ada di dalam angkot"); menu(); }
lumayan puter otaknya :), aku gak hapal fungsi fungsinya jadi harus liat video sebelumnya. akhirnya jadi juga :D var penumpang = ['sandihka','galih',undefined,'ronald']; var tambahpenumpang = function(nama, penumpang){ // jika angkot kosong if ( penumpang.length == 0 ) { // tambah penumpang penumpang.push(nama); return penumpang ;
} else // tulusuri seluruh kursi dari awal { var sama = penumpang.find(function(e) //cek jika ada elemen yang sama { return e == nama; }); var kosong = penumpang.findIndex(function(e) //cek jika ada elemen undefined { return e == undefined; //kembalikan index yang elemennya kosong }); if( sama == nama) //jika ada penumpang yang namanya sama { console.log('nama yang dimasukan sudah ada'); } else if( kosong != undefined) {
penumpang.splice(kosong, 1, nama); } else //jika semua tempat duduk sudah dipenuhi { penumpang.push(namaPenumpang); }
ini jawaban saya bos var penumpang= ['budi',undefined,'jason']; //Secara singkat perbedaan antara fungsi dan metode adalah fungsi adalah serangkaian instruksi untuk menjalankan sebuah tugas, sedangkan // metode adalah serangkaian instruksi yang berkaitan dengan sebuah object //map mengembalikan nilai array //foreach tidak mengembalikan isi array
function tambahPenumpang(nama , penumpang){ var flag; //cara pertama buat cek data penumpang.forEach(function(e){ if(nama == e){ console.log(`penumpang dengan nama `+ nama + `sedang berada di dalam angkots`); flag=1; }else{ flag=0; } });
// cara ke 2 buat ngecek data //cek apakah ada penumpang yang sama for(i=0; i
maaf pak, apakah itu tdk terbalik urutan pengkondisiannya pada kondisi, jika ada kursi yang kosong (undefined) DENGAN jika sudah ada nama yang sama? saya buat seperti ini : var penumpang = []; var tambahPenumpang = function(namaPenumpang){ if (penumpang.length == 0){ penumpang.push(namaPenumpang); return penumpang; }else{ for ( var i = 0; i < penumpang.length; i++){ if(penumpang[i] == namaPenumpang){ console.log(namaPenumpang + ' Sudah ada di dalam angkot!'); return penumpang; } } for ( var i = 0; i < penumpang.length; i++){ if(penumpang[i] == undefined){ penumpang[i] = namaPenumpang; return penumpang; }else if( i == penumpang.length -1){ penumpang.push(namaPenumpang); return penumpang; } } } }
kita kan punya array penumpang = [ ] atau istilahnya angkot yang masih kosong.. nah, jadi ceritanya 'namaPenumpang' naik ke angkot 'penumpang' .. mungkin kayanya lebih baik namanya 'angkot' ya daripada penumpang.. supaya nantinya kalo ada misalnya var ojek = [ ], atau var bis = [ ] kita bisa suruh namaPenumpangnya naik itu dengan cara tambahPenumpang('Ikhsan', ojek) atau tambahPenumpang('Sandhika', bis) misalnya.. mudah2an paham.. :)
Oh iya pa saya ngerti :) Jdi klw gitu kasusny, kita kasih if di awal function y pak? supaya kita tahu dia mau naik kendaraan apa, misalny dia mau naik "angkot", atau "bis". nah jika user pilih "angkot" kita proses arrAngkot=[ ] dn begitu jg untuk bis. Trimakasih pa, bermanfaat banget ilmuny :D
Masih bingung saya pak, maklum msh awam. dari desain grafis mau coba ke programming krn skripsi saya berkaitan sm RPL. mau gak mau, suka gak suka, harus kerja keras agar bisa. yg paling susah di LOGIKA nya ya pak kl ngoding. minta do'anya pak agar saya bisa selesai dan lancar skripsinya. di suruh dosen pake MVC PHP CI. dy ga mau yg PHP native.
klo masih kurang bener atau bisa lebih efektif lgi mohon koreksinya.. const penumpang = ["dani", undefined, "ando", undefined]; function tambahPenumpang(nama, arr) { if (arr.includes(nama)){ console.log(`${nama} sudah ada di dalam angkot`) }else if (arr.includes(undefined)) { arr[arr.indexOf(undefined)] = nama; } else { arr.push(nama); } return arr
Pak setelah saya coba buat ada bug di programnya, ketika yang kita isikan 'doddy' maka akan langsung masuk ke undefined, sedangkan nama Doddy sudah ada pada array penumpang
nah ini, ku awam banget js, bljr script ini, kog ada yg janggal,klo pas kosong bisa tambah penumpang , isi penumpang ke 2 malah undefined, kenapa harus diisi penumpangnya dulu, 😅
// jumlah penumpang var penumpang = [undefined]; // tambah penumpang function nambahPenumpang(nama){ // jika jumlah arraynya dibawah 15 : if(penumpang.length
mau tanya pak, di kondisi awal yang jika ada penumpang kosong maka penumpang baru mengisi tempat tersebut, harusnya kan programya berhenti di situ karena ada return , kenapa kondisi else if dibawahnya masih terbaca dan berhenti di return itu jika penumpang mempunyai nama yang sama, bukanya fungsi return untuk menghentikan program ya pak tapi kenapa masih terbaca return dibawahnya, mohon penjelasanya pak ..
Pak Sandhika, mohon maaf saya mau tanya di algoritma pak Sandhika apakah betul yang dimaksud kurang efektif adalah di bagian cek nama penumpang yang double seharusnya di cek terlebih dahulu sampai selesai dalam for if( penumpang[i] == namaPenumpang){ console.log(namaPenumpang+" sudah ada di dalam angkot"); } baru diajalankan for lagi untuk mengecek kursi yang kosong if(penumpang[i]==undefined){ penumpang[i]=namaPenumpang; return penumpang; } karena menurut analisa saya kalau source code yang diatas akan mengalami kebocoran jika var penumpang=["Shandika", undefined, "Doddy"]; di jalankan fungsi tambahPenumpang("Doddy", penumpang) akan menjadi var penumpang=["Shandika", "Doddy", "Doddy"]; Apakah betul Pak? Mohon info nya hehe Kalau saya salah mohon infonya ya pak supaya saya lebih paham
mau tanya pak, gmn cara agar code js yang kita buat mau di jalanin kayak bapak gitu lewat console html di browser,, saya udah ikutin tapi pas saya click console di browser ada error "The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must be declared in the document or in the transfer protocol." dan saya coba ketikkan perintah js yang telah saya buat seperti contoh yang bapak buat, tetapi tidak bisa muncul malah error , apa ada caranya sebelum kita memakukan itu ?
ini udah pake charome,, tapi masih error VM129:1 Uncaught ReferenceError: tambahpenumpang is not defined at :1:1 code javascript nya gak mau di jalanin di code html yang di buat kayak yang bapak buat , apa ada cara / tehnik nya terlebih dahulu agar bisa menjalankan code js yang sudah kita buat lewat console html ?
tapi sudah saya panggil code javascript saya dan ada error lagi :Failed to load resource: net::ERR_FILE_NOT_FOUND , file tidak di temukan, padahal file itu ada di tempatnya ?, ada solusi pak?
Terimakasih ilmunya Pak Dhika. var penumpang = []; var tambahPenumpang = function(namaPenumpang) { // Cek apakah namaPenumpang sudah ada var ada = penumpang.find(function(e) { return e == namaPenumpang; }); if (ada) { console.log(namaPenumpang + " sudah ada di dalam angkot."); return penumpang; } // Penumpang belum ada // Cek apakah ada kursi kosong var kursiKosong = penumpang.findIndex( e => e == undefined); if (kursiKosong > -1) { // Ada kursi kosong penumpang[kursiKosong] = namaPenumpang; } else { // Tidak ada kursi kosong penumpang.push(namaPenumpang); } return penumpang; }
Pak, mau ijin tanya, kalau misal kita mengetik nama penumpang yang sama, tetapi yang kita ketik itu ada di urutan sebelum penumpang dengan nama yang sama sebelumnya. Itu kan nanti fungsi yang memunculkan tulisan penumpang a sudah ada dalam angkot nggak jalan. Karena udah keduluan fungsi yang jika ada kursi kosong, terus di return sama fungsinya itu. Mohon penjelasanya
pak mau nanya menit 17:26 : else if( i == penumpang.length -1) kenapa -1 penumpang.lengthnya. apa itu selisih krn array lengthnya 3 sedangkan indexnya 0,1,2? masih krg paham saya.
Bantu jawab kak, karena array itu dimulai dari 0, misal ada 10 array itu dari 0 sampai 9. sedangkan properti '.length' menghitung isi array yaitu ada 10, jadi biar 'i' sama dengan array.length harus dikurangin satu, 9 == 9, kalau ndak bakal false terus.
@@brianrahmarela6552 length itu bukan index, tapi jumlah array. Array 10 yaitu dari 0 - 9, kan ada 10 jumlah arraynya,. Index nya akan tetap 0 - 9. Dan length itu 10. Makanya dikurangi 1 biar 9, kalau ndak dikurangi nanti jadinya if(9 == 10), sementara 9 itu index yang paling akhir, jadinya akan terus false. Bisa juga if (i+1 == array.length), jadinya (10 == 10)
let tambahPenumpang = (namaPenumpang, penumpang) => { if (penumpang.includes(namaPenumpang)) { console.log(`${namaPenumpang} sudah di dalam angkot.`); } else { let index = penumpang.indexOf(undefined); index !== -1 ? penumpang[index] = namaPenumpang : penumpang.push(namaPenumpang); } return penumpang; }
var penumpang = ['udin',undefined,'cocote'] function tambahPenumpang (namaPenumpang,Apenumpang){ Apenumpang === penumpang //cek nama yang udah ada var chekNama = penumpang.find(function(e){ return e == namaPenumpang }) //cek nama yang kosong var kursiKosong = penumpang.findIndex(function(penumpang){ return penumpang==undefined }) //kondisi nama penumpang ada yang sama if (namaPenumpang==chekNama){ console.log(namaPenumpang + ' sudah ada didalam angkot') return penumpang } //kondisi ada kursi kosong else if (kursiKosong>=0){ penumpang[kursiKosong] = namaPenumpang console.log(penumpang) return penumpang } //kondisi angkot masih kosong semua else if(penumpang.length ==0 ){ penumpang.unshift(namaPenumpang) console.log(penumpang) return penumpang } //kondisi angkot ada penumpangnya else if (penumpang.length>0){ penumpang.push(namaPenumpang) console.log(penumpang) return penumpang } } ini versi saya pak Dhika, terimakasih atas ilmunya
Assalamu'alaikum Pak Mau nanya di bagian tambahPenumpang() Pas di console kita masukkan Sandhika Kemudian Sandhika masuk ke indeks 0, maka dikerjakan di rules ke 1. Lalu Galih masuk, karena Galih di array penumpang , dia masuk ke statement else Apakah gitu Pak? Mohon Pencerahnnya. Makasih Pak.
Menurut saya kodingan pak sandika kurang tepat... karena saat kondisi seperti ini ['galih', undefined, 'hanan'], lalu mengisi dengan nama yang sama misal 'hanan', akan menghasilkan ouput ['galih', 'hanan', 'hanan'], mungkin sc ini bisa membantu var bangku = ['galih', undefined, 'hanan']; //function tambah penumpang var tambahPenumpang = function (nama, bangku){ //jika angkot tidak kosong if(bangku.length != 0){ for(var i = 0; i < bangku.length; i++){ //mencari penumpang dengan nama yang sama if(bangku[i] == nama){ return nama +' sudah ada di angkot'; //mencari tempat duduk yang kosong diantara penumpang } else if(bangku[i] == undefined){ bangku[i] = nama; return bangku; } } } //menambah penumpang saat angkot kosong ataupun sudah terisi bangku.push(nama); return bangku; }
Pak dika, saya sudah bikin algoritma pengelolaan angkot, cuman ya saat saya menginput tambahPenumpang('Doddy',penumpang) yang ke index 1, kok tiba tiba langsung bertambah aja, tapi gada pesan yang di tampilkan, apa saya menginput algoritma nya salah, atau bagaimana ini?
dan saya masih awam di dunia pemograman web adakah tips untuk bisa melatih logika karena sering kali saya paham tapi logika kurng krna belum pernah ada dasar coding terimaksih teman2 tlong tips ya terimakasi
ijin pak, kenapa di function-nya ada dua parameter? kenapa bukan diisi nama penumpang barunya saja? saya coba bikin dengan pendekatan yang berbeda. var penumpang = [] function tambahPenumpang(namaPenumpang) { //mencari bangku kosong var bangkuKosong if(penumpang.indexOf(undefined) != -1) { bangkuKosong = penumpang.indexOf(undefined) } else bangkuKosong = penumpang.length //mencari nama sama var namaSama = penumpang.find(function(x){ return x == namaPenumpang }) //menambah penumpang ke bangku kosong dengan kondisi bukan nama yang sama if(namaSama != undefined) { console.log(namaPenumpang + ' sudah ada di dalam angkot') } else(penumpang.splice(bangkuKosong, bangkuKosong, namaPenumpang)) //return penumpang return penumpang } console.log(penumpang)
Pak Sandhika, coba untuk case ini di run di code Bapak dengan kondisi penumpang = ['Galih', undefined, 'Sandhika']: --> tambahPenumpang('Sandhika',penumpang). Pasti jadinya 'Sandhika' tetap duplikat. Mohon konfirmasinya Pak Sandhika. Terima kasih.
@ Naufal Syammary Coba di check lagi di code nya terutama di kurung kurawal saya sempet error karna kurang teliti, seperti itu dan ternyata codingan saya tidak masuk di BLOCK nya function. coba di check trus refresh, masukin variablenya. semoga membantu.
Sebenarnya saya kurang paham sepenuhnya mengenai penumpang.length-1, cuma yg saya tahu adl di dalam iterasi for itu i sedang mencari apakah i sama dengan array untuk penumpang.length-1 secara array itu kan dimulai dari 0 bukan 1, jadi mau gak mau harus tambahin penumpang.length-1 saat kondisi. Karena kalau saat kondisi penumpang.length saja, hasilnya: - Saat tambah penumpang: Undefined mungkin karena datanya bertabrakan - Saat kurangi penumpang: Nanti nama penumpang yg tidak ada di dalam angkot itu tidak bisa muncul notif di console walau nanti saat dihapus, nama yg ada di dalam array berhasil diubah menjadi undefined Maaf ya kalau penjelasanku kurang bisa dipahami. Apalagi memang ilmu logika saya memang masih lemah
Kok hasil saya aneh ya Pak, untuk case yang undefined :'] . Okay, saya lanjut play aja biar tahu, btw makasih Pak ilmunya, sangat bermanfaat. var angkot = []; var tambahPenumpang = function(namaPenumpang, angkot){ if (angkot.length==0){ angkot.push(namaPenumpang); return angkot; console.log(angkot); } else{ for (var i = angkot.length - 1; i >= 0; i--) { if (angkot[i]==undefined){ angkot[i]=namaPenumpang; return angkot; } else if (namaPenumpang==angkot[i]) { console.log('Penumpang dengan nama '+ namaPenumpang + ' sudah ada!'); return angkot; } else { angkot.push(namaPenumpang); return angkot; } } console.log(angkot.join('-')); } }
iya sama mas, saya juga pas nyoba nambah array nya undefined trus. Tapi sudah bisa sih. coba ini, ganti (penumpang.lenght == 0) jadi (penumpang.lenght == undefined) var penumpang = []; var tambahPenumpang = function(namaPenumpang, penumpang) { //jika angkot kosong if (penumpang.lenght == undefined) mungkin karena array penumpang belum di isi, jadi harusnya bukan 0 tapi undefined (siapa tau berhasil)
Halo pak Sandhika, sebelumnya terima kasih sudah membuat video yang sangat bermanfaat, semoga menjadi amal baik pak Sandhika. Saya mau share jawaban nih pak, tapi sekaligus tanya apakah alogaritma seperti ini sudah benar? mohon koreksinya pak Sandhika, dan dan temen-temen semua barangkali ada yang baca komen dan menemukan kesalahan logika saya. Terima kasih (; //membuat variabel kosong var penumpang = []; var tambahPenumpang = function (nama, arr) { for (var i = 0; i < arr.length; i++) { if (arr[i] === undefined) { arr[i] = nama; console.log(arr); return; } // pertama saya cek dulu apa ada kursi yang kosong dengan isi undefined (bukan variabel kosong), kalo ada maka langsung isi seat tersebut } for (var i = 0; i < arr.length; i++) { if (i >= 10) { console.log(`angkot cuma muat 10, sudah diisi dengan ${arr.join(", ")}`); return; } } // kalo gaada undefined, apakah angkot masih muat. oh iya disini saya kasih batasan angkot 10 orang, kalo masih muat maka skip ke for selanjutnya for (var i = 0; i < arr.length; i++) { if (arr[i] === nama) { console.log( `nama ${nama} sudah ada, kamu gaboleh naik! penumpang sementara yaitu ${arr.join( ", " )}` ); return; } // lanjut apabila masih muat, ini untuk cek apakah namanya sudah ada dalam angkot? kalo gaada maka skip ke statement selanjutnya } arr.push(nama); // lanjut kalo kondisi semua diatas false, maka akan memasukkan nama baru ke dalam array penumpang console.log(arr); };
Numpang nanya di 17:29 saat else if( i == penumpang.length - 1). Disini kan 'i' nilainya 0, trs si penumpang.length -1 nilainya jadi 2, itu kenapa bisa masuk ke aksinya? Maaf kalau belibet.
karna adanya perulangan for yang didalam nya ada increment i++,maka nilai i akan terus ditambah dengan 1 sampai mencapai angka penumpang.length - 1 ,mudah-mudahan bisa membantu bro
@@annajmalbupy Wah iya. Soalnya kalau hanya pakai penumpang.length saja di else if sementara kondisinya adalah sedang looping, maka ya saat masuk data berikutnya, jadi undefined karena datanya tabrakan ya. Jadi pakai min.length-1
terimakasih atas ilmunya pak dhika.
var penumpang = [];
// tambah penumpang
var tambahPenumpang = function(namaPenumpang) {
// jika angkot kosong
if (penumpang.length == 0) {
penumpang.push(namaPenumpang);
return penumpang;
}
// jika angkot ada penumpang
// perulangan untuk menelusuri seluruh kursi dari awal
for( var i = 0; i < penumpang.length; i++) {
// jika kursi bernilai undefined
if(penumpang[i] == undefined) {
// perulangan untuk setiap elemen array
for (var j = 0; j < penumpang.length; j++) {
// jika kursi bernilai undefined dan nama penumpang sama dengan salah satu elemen array
if(namaPenumpang == penumpang[j]) {
console.log(namaPenumpang + ' Sudah ada didalam angkot.');
return penumpang;
}
}
// jika kursi bernilai undefined dan nama penumpang tidak sama dengan salah satu elemen array
if (namaPenumpang != penumpang[i])
penumpang[i] = namaPenumpang;
return penumpang;
}
// jika kursi tidak bernilai undefined dan nama penumang sama dengan salah satu elemen array
if(namaPenumpang == penumpang[i]) {
console.log(namaPenumpang + ' Sudah ada didalam angkot.');
return penumpang;
}
// jika kursi sudah penuh
if(i == penumpang.length - 1) {
penumpang.push(namaPenumpang);
return penumpang;
}
}
}
// hapus penumpang
var hapusPenumpang = function(namaPenumpang) {
// jika tidak ada penumpang didalam angkot
if(penumpang.length == 0) {
console.log('Angkot masih kosong.');
return penumpang;
}
// pengulangan untuk menelusuri elemen array
for(var i = 0; i < penumpang.length; i++) {
// jika nama penumpang yang ingin dihapus ada didalam array
if( namaPenumpang == penumpang[i]) {
penumpang[i] = undefined;
return penumpang;
}
// jika nama penumpang yang ingin dihapus tidak ada didalam array
else if( i == penumpang.length - 1) {
console.log(namaPenumpang + ' Tidak ada didalam angkot.')
return penumpang;
}
}
}
Awalnya butuh proses utk memahami algoritmanya, tapi akhirnya paham juga
apa cuma gw disini yaa dari semenjak awal ngikutin sampe else if while for masih bisa.. Semenjak masuk ke Function ama array trus nyoba kasus kayak gini malah jd puyeng ? yang menyebabkann gw berkali kali nonton ulang video mas sandhika tentang Function dan Array lagi??
Iya, array dan function mumet ngikutinya... perlu berulang2...
wkwkwk sama bro.... ketika di sini hampir putus asa ni aku... ketika di video ini bikin puyeng...tapi tetap berusaha cari ngerti wkwkwk
Hadir 😂
sama, alhamdulillah setelah mengulang ulang akhirnya ngerti
bener woi, gua udh 4x ngulang dr function intro sampai vidio ini, belum bisa ngerjain studi kasus yg iniiiiii. Kasih semangatt plss😢
Mantap sekali Latihan yang diberikan Pak!
Baru belajar JS sudah bisa paham sampai tahap ini dan semua function yang dipelajari dapat diterapkan didalam Latihan ini, Mantap Pak!
var penumpang = ['Ando', undefined, 'Loli'];
var tambahPenumpang = function(nama, arr) {
if (arr.length == 0)
{
arr.push(nama);
return arr;
}
else
{
var checkPenumpang = arr.find(function(e) {
if (e == nama)
{
return true;
}
})
var ambilIndexPenumpang = arr.findIndex(function(e) {
return e == undefined;
})
if (checkPenumpang === nama)
{
console.log(nama + ' sudah ada didalam angkot')
return arr;
}
else if (ambilIndexPenumpang < 0 && checkPenumpang == undefined)
{
arr.push(nama);
return arr;
}
else if (checkPenumpang == undefined && penumpang.length > 0)
{
arr[ambilIndexPenumpang] = nama;
return arr;
}
}
}
@Nirma Ulifa Janata
Q: mas mau nanya dong, arr itu array kan ya?
A: iyaa, arr adalah sebuah parameter yang menerima argument array.
Q: tapi variabel kamu kan pake nama penumpang, nah itu gmna? kok bisa diganti ama arr di syntax fungsinya?
A: nama juga adalah sebuah parameter didalam function tambahPenumpang, syntax bagian mna kah yang mbak anggap parameter nama diganti sama arr? hehehe
Q: terus juga yang 'e', apakah 'e' itu mutlak nunjukkin elemen yang ada di array ya?
A: iyaa, contohnya
var checkPenumpang = arr.find(function(e) {
if (e == nama)
{
return true;
}
parameter e menampung nilai yg ada didalam arr.
makasih bang berkat tambahan varialbel ini :
var checkPenumpang = arr.find(function(e) {
if (e == nama)
{
return true;
}
})
bisa ngecek kesebelahnya kalo yang dari pak andika dia cuma ngecek index ke 0 aja ke sebelahnya,
jadi otomatis nama di penumpang di index ke 2 jadi dobel, eh btw ini funcion ekspresion kan ya namanya karna di dalam variabel?
@@adiwiranto6289 maksudnya kembalikan true itu gmna bg
Terimakasih Pak Sandi... Baru belajar.... hehe
var penumpangAngkot1 = []
function tambahPenumpang (a,b) {
if (b.find(function(e) {return e === 'Kosong'}) === 'Kosong') {
var indexKosong = b.findIndex(function(e) {
return e == 'Kosong'
})
b[indexKosong] = a
}
else if(b.find(function(e) {return e == a}) ==a) {
console.log('Penumpang ini Sudah ada di dalam Angkot')
}
else {
b.push(a)
}
console.log(b)
}
function turunPenumpang (a,b){
var index = b.findIndex(function(e) {
return e == a
}
)
b.splice(index,1,'Kosong')
console.log(b)
}
saya tidak kuliah/sekolah jurusan IT, tapi penjelasan pak sandhika sangat mudah dipahami
code saya walau agak beda hehehe;
var penumpang = [];
function tambahPenumpang(nama, array) {
if(array.indexOf(nama) > -1){
console.log(nama + " sudah ada di dalam angkot")
} else {
var kursiKosong = array.findIndex(Object.is.bind(null, undefined));
if(kursiKosong >= 0){
array[kursiKosong] = nama;
} else {
array.push(nama);
}
}
return array;
}
Halo bang Eko. kalau boleh tau, bang Eko belajar dimana saja selain di channel ini?
Thx
Bg saya kok kurang paham di latihan ini ya masi ada yg ngeh gitu, sebaiknya perdalam materi apa itu bg?
ini saya janin sudah oke, boleh minta masing masin keterangannya ? buat saya pelajari
nahh ini lebih akurat, punya pak sandhika masih ada bug dimana kalo ada undefined masih tetep di push biarpun ada nama yang sama😁btw thank you mas
untuk rules yg jika ada nama yang sama dibalik aja syntax nya jadi namaPenumpang == penumpang[ i ]...trima kasih pak ilmunya...
enakeun pisan sih ini tutorialnya
Terimakasih vidionya sangat membantu saya belajar pemograman WEB.
Terima kasih ilmu nya... penjelasannya bisa di mengerti
makasih bang sandhika akhrnya nongkrong lagi didpan chanell ini ilmu baru lagi..cepat sembuh bang..dan satu lagi jangan lupa titik koma :) sukses bang sandika
terimakasih bang William doanya.. sukses terus juga untuk anda.. :)
var penumpang = [];
function tambahPenumpang(nama, bangku){
//Cek Nama
if(bangku.find(function (bangku){return bangku == nama;}) == nama ){
console.log("nama tidak boleh sama");
return bangku.join(" - ");
}
//Cari kursi kosong
var posisi = bangku.findIndex(function (bangku){
return bangku == undefined;
})
//Mengisi tempat kosong
if (posisi>-1) bangku [posisi] = nama;
else bangku.push(nama);
return bangku.join(" - ");
}
tambah Penumpang versi dikombinasikan dengan method includes :
mana tau membantu bagi yg membutuhkan :)
var penumpang = [];
function tambahPenumpang(nama, arr) {
if (arr.includes(nama)) {
console.log(nama + ' sudah ada didalam angkot');
} else if (arr.includes(undefined)) {
arr[arr.indexOf(undefined)] = nama;
} else {
arr.push(nama);
}
return arr;
}
Jujur saya bingung sama kodingnya, tapi paham sama rulesnya. Masih kagok pas eksekusi bener gak yah malah eror terus. Tapi saya gak mau nyerah meskipun akhirnya nyontek juga jawabannya. Tapi saya coba ulang-ulangin dengan sambil pahami lagi kodingnya. Terutama bagian pengkodisian masih bingung kenapa di dalam Else ada If dan else if lagi. Makasih mas Dhika untuk ilmunya.
liat di chatgpt aja bang,,,, copy aja semua sintaxnya ke AI ntar dibenerin tuh sintaxnya
skrg udah sampe mana bang?@ihsanpraditya
Mantap pak, izin download yakk hehe
Ketinggalan jauh hdwwhhh,video kemarin aja belum tengok pak
Semngat 45 pak
ayo semangat kejarnya Isma.. :)
punya saya begini
var penumpang = ["ayas", "budi", undefined, "otong"];
var tambahPenumpang = function(namaPenumpang, penumpang)
{
if(penumpang.length == 0) //angkot kosong
{
penumpang.unshift(namaPenumpang);
}
else if(typeof(penumpang) == "object")//angkot sudah berisi penumpang
{
var kosong = penumpang.findIndex(function(e) //cek jika ada elemen undefined
{
return e == undefined; //kembalikan index yang elemennya kosong
});
var sama = penumpang.find(function(e) //cek jika ada elemen yang sama
{
return e == namaPenumpang;
});
if(kosong != undefined) //jika ada elemen kosong
{
penumpang.splice(kosong, 1, namaPenumpang);
}
else if(sama == namaPenumpang)//jika ada penumpang yang namanya sama
{
console.log("Error, nama yang dimasukan sudah ada...");
}
else //jika semua tempat duduk sudah dipenuhi
{
penumpang.push(namaPenumpang);
}
}
else //angkot tidak ada
{
console.log("Angkot tidak ada!");
}
return penumpang;
};
makasih pak,sehat selalu, otw part 40
Salam Kenal mas sandhika ,atas ilmunya sangat bermanfaat sekali ,smoga lekas sembuh.
Salam Sapei
salam kenal juga Sapei.. terimakasih ya doanya.. :)
Makasih pak Dhikaa
Dari belajar C++ sampe ke JavaScript yang bikin pusing itu emang Array
wkwkwkwkwkwk
#tinggalkanjejak
Makasih ilmu nya
// Keren😃
var penumpang = ['Sandhika', 'Galih', 'Doddy'];
// variabel array kursiKosong untuk mengetahui kursi yang mana saja yang masih kosong.
var kursiKosong = [];
// variabel sebagai penanda penumpang yang keluar itu pada indeks ke berapa
var indeksPenumpangKeluar;
var tambahPenumpang = function(nama){
if(penumpang.length == 0) {
penumpang.push(nama);
} else {
// Jika tidak ada kursi yang kosong dan nama penumpang yang akan duduk tidak sama dengan nama
// penumpang yang sudah ada di didalam angkot, maka langsung push bagian akhir.
if( kursiKosong.length == 0 && nama != penumpang.find(function(e) { return e == nama })) {
penumpang.push(nama);
// Jika penumpang yang naik memiliki nama yang sama maka akan tampil message.
} else if( nama == penumpang.find(function(e) { return e == nama }) ) {
console.log(nama + " sudah ada di dalam Angkot
");
console.log(penumpang);
// jika ada kursi kosong dan nama penumpang yang masuk tidak sama, maka
// penumpang akan mengisi kursi kosong paling depan
} else {
// value undefined pada array penumpang akan dihapus dan diganti dengan nama penumpang baru
penumpang.splice(kursiKosong[0], 1, nama);
// kemudian value paling depan pada array kursi kosong akan dihapus, karena sudah terisi penumpang.
kursiKosong.shift();
}
}
}
var hapusPenumpang = function(nama) {
// Jika nama penumpang yang mau keluar ada, maka indeks penumpang keluar tersebut akan disimpan
// pada array indeksPenumpangKeluar
if( nama == penumpang.find(function(e,i) {indeksPenumpangKeluar = i; return e == nama;}) ) {
// menambahkan indeks penumpang keluar pada array kursiKosong
kursiKosong.push(indeksPenumpangKeluar);
// Menandakan kursi kososng dengan undefined
penumpang[indeksPenumpangKeluar] = undefined;
// Mengurutkan value yang ada didalam array kursiKosong agar dapat mengantisipasi jika
// penumpang yang paling belakang yang keluar duluan sebelum penumpang didepan
// sehingga saat kursi kosong diisi itu selalu paling depan
kursiKosong.sort();
} else {
console.log("Nama " + nama + " tidak ada di dalam Angkot.");
}
}
kalau saya coba looping pakai every :D
var penumpang = ['satu', undefined, 'dua'];
var tambahPenumpang = function (namaPenumpang, penumpang) {
if (penumpang.length == 0) {
penumpang.push(namaPenumpang);
return penumpang;
} else {
penumpang.every(function (e, i) {
if (e == undefined) {
penumpang.splice(i, i, namaPenumpang);
return false;
} else if (i == penumpang.length - 1) {
penumpang.push(namaPenumpang);
return false;
} else if (e == namaPenumpang) {
console.log(namaPenumpang + ' sudah naik ke angkot!');
return false;
}
return true;
});
return penumpang;
}
};
penumpang.splice(i,i, namaPenumpang); itu mksd nya gimana ya? kenapa dalam kurung i nya ada 2, dan splice nya itu buat apa?
lalu kenapa di pengkondisian .every nya diakhir dikasih return false?
puyeng saya pak hahaha
tetap semangat tapi pastinya pak :D
mantap!
walaupun work tapi saya agak beda dikit sih
pak hehe
var penumpang = ["andi", undefined, "rafi"];
function tambahPenumpang(penumpang, arrayPenumpang) {
// menambahkan penumpang
if (arrayPenumpang.length == 0) {
arrayPenumpang.push(penumpang);
return arrayPenumpang;
}
// jika nama sama
for (var i = 0; i < arrayPenumpang.length; i++) {
if (arrayPenumpang[i] == penumpang) {
console.log("Penumpang " + penumpang + " sudah ada");
return arrayPenumpang;
}
}
// jika penumpang undefined
for (var i = 0; i < arrayPenumpang.length; i++) {
if (arrayPenumpang[i] === undefined) {
arrayPenumpang[i] = penumpang;
return arrayPenumpang;
}
}
// jika penuh
arrayPenumpang.push(penumpang);
return arrayPenumpang;
}
Bismillah..
Dari Array penumpang = ['sandika', undifened, 'galih']
Ketika kita masukkan nama 'sandika' maka nama 'sandika' tidak bisa masuk.
namun ketika kita masukkan nama 'galih'..
Array penumpang menjadi ['sandika', 'galih', 'galih']
Jadi mungkin perlu perbaikan pak..
setuju, mungkin karena menggunakan looping jadi flow pengondisiannya dari index awal ke akhir. Jadi si program nemu undefined dulu sebelum nama galih.
Betul sekali mas tabah..
nemu masalah yang ginin juga ... coba pake find saja mencari namanya
yup harusnya kita telusurin dulu seluruh isi array ada yang namanya sama kayak penumpang yang mau masuk/ngga, kalo ada print dia udah masuk angkot, kalo ngga baru ke program nyari kursi kosong
tinggal nambah syarat aja untuk ifnya angkot[i] !== undefined
// membuat array penumpang
var angkot = ['sandika', undefined, 'galih'];
//fungsi tambah penumpang
var tambahPenumpang = function(namaPenumpang, angkot){
//jika angkot kosong
if(angkot.length ==0){
angkot.push(namaPenumpang);
return angkot;
} else {
//jika angkot berisi
for (var i=0; i
Code ane sebelum dikerjain bersama, its work but different.
var passenger = [];
var maxPassenger = 17;
var namePassenger = undefined;
var empty = "empty";
// new passenger
function newPassenger(namePassenger) {
var allPassenger = passenger.length;
// Function Check Undefined & namePassenger
var checkPass = passenger.find(function (x) {
return x == namePassenger;
});
// Function Check Empty Passenger
var defEmpty = passenger.find(function (x) {
return x == empty;
});
// Function Check No Empty Passenger
var defNo = passenger.findIndex(function (x) {
return x == empty;
});
if (allPassenger
Yg penting hasilnya sama bro, mantap👍
mumet sumpah🤤
Keep it up :)
siap billy.. :)
terima kasih....
Terima kasih pak
Pak saya paham alur nya tapi saya susag untuk menulis nya pak penyebab nya apa ya
kurang latihan mas, tambahin jam terbangnya dan jangan lupa fokusnya dijaga
Kalo latihan trus pasti bisa, ibaratnya kaya main game awalnya pasti kagok sama karakternya, kalo sering dimainin ntar jadi lancar
filter nama penumpang tidak boleh sama hanya berjalan saat di indeks[0] saja karena jika diisi nama indeks[2] saat prose looping nya akan masuk ke if undefined karena terdeteksi ada undefined di indeks [1].
Benar tuh, sya gk bisa pchkan mslh ini
Alhamdulillah di menit 8.28, akhirnya ketemu juga code-nya sesuai dengan pseudo code dari Pak Shandika:
var penumpang = ["Robbi", undefined, "Cindy"];
var tambahPenumpang = function (namaPenumpang, penumpang) {
if (penumpang.length === 0) {
penumpang.push(namaPenumpang);
return penumpang;
} else if (penumpang.includes(namaPenumpang)) {
console.log("Nama penumpang sudah ada");
return penumpang;
} else if (penumpang.includes(undefined)) {
var indexUndefined = penumpang.indexOf(undefined);
penumpang[indexUndefined] = namaPenumpang;
return penumpang;
} else if (penumpang.length !== 0) {
penumpang.push(namaPenumpang);
return penumpang;
}
};
tambahPenumpang(...., penumpang);
console.log(penumpang);
selama 1 bulan berhenti nonton karna eror terus, nyadarnya sekarang ternyata masalahnya di html doang. sadstory :")
pak kapan ya kira2 kita belajar frame work javascript...??
video pak dika pernah menggunakan jquery tapi belum belajar tntang jquery??
nanti kita belajar DOM dulu yah, baru belajar pake framework biar ga bingung.. 🙂
semoga cepet sembuh pa
hatur nuhun Zaii.. :)
pusing saya pak hahah, harus ngulang2 nononnya nih... makasih pak dikaa..
pak itu ada kesalahan pada bagian "jika nama penumpang sama".. rumusan pak sandi hanya berlaku jika nama penumpang[0] sama dengan namaPenumpang, jika yang
namaPenumpang ada di index setelahnya penumpang[0], rumusnya jadi
kacau....
kita harus pakai array.some untuk mengecek apakah keseluruhan index penumpang sama dengan
nama yg baru masuk..
makasih,, aku baru belajar
nah iya wkwk
pesan kesalahan tidak keluar kalau isi nama doddy dahulu,
sandika, doddy, doddy
pesan kesalahan tidak keluar.
sebab doddy di index ke 2. code nya jalan undefined dahulu sebelum ngechek nama yang sama
Kenapa pada //telusuri array menggunakan method map untuk mengganti looping for tidak bisa?????
saya juga sama bro, kayaknya studi kasus kayak gini gak ush pake map
Klo make method find :
NOTE : Klo ada penumpang turun, tidak sya replace dengan undefined, sehingga sya gunakan simbol lain, dalam contoh sya, jika penumpang turun akan di replace dengan string 'Kursi Kosong'
const contohAjaNih = [];
var indexKursiKosong;
function tambahPenumpang(namaPenumpang, arrayMana){
if (arrayMana.find(function(item){ return item == namaPenumpang; }) == undefined){
if (arrayMana.find(function(item, index){indexKursiKosong = index; return item === 'Kursi Kosong';})== undefined){
arrayMana.push(namaPenumpang);
console.log(' ' + namaPenumpang + ' telah masuk ke angkot. Duduk di kursi index ke - ' + (arrayMana.length - 1));
}else{
arrayMana[indexKursiKosong] = namaPenumpang;
console.log(' ' + namaPenumpang + ' telah masuk ke angkot. Duduk di kursi index ke - ' + indexKursiKosong);
}
}else{
console.log(' ' + namaPenumpang + ' sudah ada di dalam angkot !');
}
}
tambahPenumpang('Tes1', contohAjaNih);
tambahPenumpang('Tes2', contohAjaNih);
tambahPenumpang('Tes2', contohAjaNih);
tambahPenumpang('Tes3', contohAjaNih);
contohAjaNih[0] = 'Kursi Kosong';
console.log(' Tes1 turun dari angkot. Kursi index ke - 0 kosong !');
tambahPenumpang('Tes4', contohAjaNih);
console.log(contohAjaNih);
gimana cara baca program nya ya bang,bingung saya
@@ombotak7145 sya lupa permasalahannya bang, lagi bahas apa ya itu?
@@fajarmukhlis7584 bikin program tambahPenumpang bang
@@ombotak7145
Ini om, udh saya perbarui, semoga lebih mudah dibaca
const contohAjaNih = [];
let indexKursiKosong;
let namaPenumpang;
function penumpangYangSama(item) {
return item == this.namaPenumpang;
}
function kursiKosong(item, index){
this.indexKursiKosong = index;
return item == 'Kosong';
}
function tambahPenumpang(namaPenumpang, kursiAngkot){
this.namaPenumpang = namaPenumpang;
if (!kursiAngkot.find(penumpangYangSama)){
if (!kursiAngkot.find(kursiKosong)){
kursiAngkot.push(namaPenumpang);
console.log(' ' + namaPenumpang + ' telah masuk ke angkot. Duduk di kursi index ke - ' + (kursiAngkot.length - 1));
}else{
kursiAngkot[this.indexKursiKosong] = namaPenumpang;
console.log(' ' + namaPenumpang + ' telah masuk ke angkot. Kursi no. ' + this.indexKursiKosong + ' yang sebelumnya kosong, telah diisi.');
}
}else{
console.log(' ' + namaPenumpang + ' sudah ada di dalam angkot !');
}
}
tambahPenumpang('Anda', contohAjaNih);
tambahPenumpang('Andi', contohAjaNih);
tambahPenumpang('Andi', contohAjaNih);
tambahPenumpang('Andu', contohAjaNih);
contohAjaNih[0] = 'Kosong';
console.log(' Andi turun dari angkot. Kursi index ke - 0 kosong !');
tambahPenumpang('Ande', contohAjaNih);
console.log(contohAjaNih);
@@fajarmukhlis7584 bang saya mau nanya lagi nih, saya benar² pemula,
Gimana cara baca 2 code ini ya bang
if (!kursiAngkot.find(penumpangYangSama)
Dan
if (!kursiAngkot.find(kursiKosong)
Makasih sebelumnya bang
Kodenya pak dika bersih, kode punya saya tadi juga berjalan sesuai rule, tapi berantakan codenya hehe
Terima kasih latian nya sudah membuat saya mual mual (y) :v
pa mau nanya nih, kalo di menit ke 14:35 itu bekerja sebelum di tambahkan else tapi pas bapak tambahkan else kok var i nya jadi 0? dan else nya harus di tambahkan if
Pak Dhika saya mau bertanya, kenapa parameter yg digunakan dalam function tambahPenumpang ada 2 buah yaitu : namaPenumpang dan penumpang? saya coba hanya namaPenumpang only bisa pak, return nya return penumpang, karena di awal sudah dideklarasikan (var penumpang = []) , mohon koreksinya ya pak terimakasih.
Udh nemu jawaban.a blm yang? Saya juga nyri2 jawaban yg ini.
@@monangbahana4562 mungkin untuk menandakan bahwa dia adalah penumpang yang naik ke angkot, dan munkin misal kita ganti penumpang nya jadi angkot ('ujang', angkot) maka ujang naik angkot gitu mungkin ilustrasinya. maaf kalau salah mohon koreksi
lah iya juga ya... baru sadar.
var penumpang = [];
var namaPenumpang;
var hapus;
menu();
function menu() {
var pilihan = prompt("Masukkan aksi yang ingin dilakukan :
1. Menambahkan penumpang
2. Menurunkan penumpang
3. Keluar aplikasi");
if (pilihan === "1") {
namaPenumpang = prompt("Masukkan nama penumpang");
tambahPenumpang(namaPenumpang, penumpang);
} else if (pilihan === "2") {
hapus = prompt("Siapa yang ingin anda turunkan?");
hapusPenumpang(hapus, penumpang);
} else if (pilihan === "3") {
alert("Terimakasih");
}
}
function tambahPenumpang(name, arrPenumpang) {
for (var i = 0; i < arrPenumpang.length; i++) {
if (arrPenumpang[i] === name) {
alert("Penumpang sudah naik");
menu();
return;
}
}
for (var i = 0; i < arrPenumpang.length; i++) {
if (arrPenumpang[i] === "(Kosong)") {
arrPenumpang[i] = name;
menu();
return;
}
}
arrPenumpang.push(name);
menu();
}
function hapusPenumpang(hapus, arrPenumpang) {
for (var i = 0; i < arrPenumpang.length; i++) {
if (arrPenumpang[i] === hapus) {
arrPenumpang[i] = "(Kosong)";
alert(hapus + " berhasil turun");
menu();
return;
}
}
alert("Penumpang tidak ada di dalam angkot");
menu();
}
Pak shandika , kenapa ada 2 parameter di function tambahPenumang() bukannya satu saja namaPenumpang sudah bisa?
selalu titik koma :D
jangan lupa titik koma.. ;
Pak Dhika mau nanya. Maksudnya kembalikan isi array dan keluar dari function itu apa ya? gimana ?
lumayan puter otaknya :), aku gak hapal fungsi fungsinya jadi harus liat video sebelumnya. akhirnya jadi juga :D
var penumpang = ['sandihka','galih',undefined,'ronald'];
var tambahpenumpang = function(nama, penumpang){
// jika angkot kosong
if ( penumpang.length == 0 )
{
// tambah penumpang
penumpang.push(nama);
return penumpang ;
}
else // tulusuri seluruh kursi dari awal
{
var sama = penumpang.find(function(e) //cek jika ada elemen yang sama
{
return e == nama;
});
var kosong = penumpang.findIndex(function(e) //cek jika ada elemen undefined
{
return e == undefined; //kembalikan index yang elemennya kosong
});
if( sama == nama) //jika ada penumpang yang namanya sama
{
console.log('nama yang dimasukan sudah ada');
}
else if( kosong != undefined)
{
penumpang.splice(kosong, 1, nama);
}
else //jika semua tempat duduk sudah dipenuhi
{
penumpang.push(namaPenumpang);
}
return penumpang;
}
}
we dont need use method some
Atau bisa juga dalam perulangan nya dibuat i
ini jawaban saya bos
var penumpang= ['budi',undefined,'jason'];
//Secara singkat perbedaan antara fungsi dan metode adalah fungsi adalah serangkaian instruksi untuk menjalankan sebuah tugas, sedangkan
// metode adalah serangkaian instruksi yang berkaitan dengan sebuah object
//map mengembalikan nilai array
//foreach tidak mengembalikan isi array
function tambahPenumpang(nama , penumpang){
var flag;
//cara pertama buat cek data
penumpang.forEach(function(e){
if(nama == e){
console.log(`penumpang dengan nama `+ nama + `sedang berada di dalam angkots`);
flag=1;
}else{
flag=0;
}
});
// cara ke 2 buat ngecek data
//cek apakah ada penumpang yang sama
for(i=0; i
maaf pak, apakah itu tdk terbalik urutan pengkondisiannya pada kondisi, jika ada kursi yang kosong (undefined) DENGAN jika sudah ada nama yang sama? saya buat seperti ini :
var penumpang = [];
var tambahPenumpang = function(namaPenumpang){
if (penumpang.length == 0){
penumpang.push(namaPenumpang);
return penumpang;
}else{
for ( var i = 0; i < penumpang.length; i++){
if(penumpang[i] == namaPenumpang){
console.log(namaPenumpang + ' Sudah ada di dalam angkot!');
return penumpang;
}
}
for ( var i = 0; i < penumpang.length; i++){
if(penumpang[i] == undefined){
penumpang[i] = namaPenumpang;
return penumpang;
}else if( i == penumpang.length -1){
penumpang.push(namaPenumpang);
return penumpang;
}
}
}
}
Pa dika, itu parameter k dua "penumpang " di function tambahPenumpang() buat apa ya?
Bukany gk pake jg gk ngaruh ya? malahan bingung aku..
kita kan punya array penumpang = [ ] atau istilahnya angkot yang masih kosong.. nah, jadi ceritanya 'namaPenumpang' naik ke angkot 'penumpang' ..
mungkin kayanya lebih baik namanya 'angkot' ya daripada penumpang.. supaya nantinya kalo ada misalnya var ojek = [ ], atau var bis = [ ] kita bisa suruh namaPenumpangnya naik itu dengan cara tambahPenumpang('Ikhsan', ojek) atau tambahPenumpang('Sandhika', bis) misalnya..
mudah2an paham.. :)
Oh iya pa saya ngerti :)
Jdi klw gitu kasusny, kita kasih if di awal function y pak? supaya kita tahu dia mau naik kendaraan apa, misalny dia mau naik "angkot", atau "bis". nah jika user pilih "angkot" kita proses arrAngkot=[ ] dn begitu jg untuk bis.
Trimakasih pa, bermanfaat banget ilmuny :D
iya betul Ikhsan.. 🙂
sama2, semangat ya belajarnya.. 👍
@dunia gamers sekarang udah bisa belum bro? kalau belum, dicoba bisa nggak..
else if(penumpang.length == 5 //limitnya terserah aja) {
console.log("Kursi sudah penuh!");
return penumpang;
}
Mungkin untuk menghandle tambahPenumpang setelah undefind, bisa diganti jadi string kosong
Masih bingung saya pak, maklum msh awam. dari desain grafis mau coba ke programming krn skripsi saya berkaitan sm RPL. mau gak mau, suka gak suka, harus kerja keras agar bisa. yg paling susah di LOGIKA nya ya pak kl ngoding. minta do'anya pak agar saya bisa selesai dan lancar skripsinya. di suruh dosen pake MVC PHP CI. dy ga mau yg PHP native.
klo masih kurang bener atau bisa lebih efektif lgi mohon koreksinya..
const penumpang = ["dani", undefined, "ando", undefined];
function tambahPenumpang(nama, arr) {
if (arr.includes(nama)){
console.log(`${nama} sudah ada di dalam angkot`)
}else if (arr.includes(undefined)) {
arr[arr.indexOf(undefined)] = nama;
} else {
arr.push(nama);
}
return arr
}
Interupsi pak, di Medan angkotnya 8-6, kursi tambahnya utk 2 org, belum lg yg gantung sama yg duduk di atas. wkwkwk
😂😂 *duduk di atas* 😂😂
Udah kayak naik sinabung aja ya bg duduk di atas, haha..
Saat tambah penumpang hasil nya selalu undefined, kenapa ya?
bila ingin bertanya, sertakan skrip nya gan.
Pak setelah saya coba buat ada bug di programnya, ketika yang kita isikan 'doddy' maka akan langsung masuk ke undefined, sedangkan nama Doddy sudah ada pada array penumpang
Pak dika bisa ga kalo penumpangnya naik lebih dari satu
kalo untuk nambah penumpang di array awal bukannya memakai method unshift ya kang Dhika ?
nah ini, ku awam banget js, bljr script ini, kog ada yg janggal,klo pas kosong bisa tambah penumpang , isi penumpang ke 2 malah undefined, kenapa harus diisi penumpangnya dulu, 😅
// jumlah penumpang
var penumpang = [undefined];
// tambah penumpang
function nambahPenumpang(nama){
// jika jumlah arraynya dibawah 15 :
if(penumpang.length
mau tanya pak, di kondisi awal yang jika ada penumpang kosong maka penumpang baru mengisi tempat tersebut, harusnya kan programya berhenti di situ karena ada return , kenapa kondisi else if dibawahnya masih terbaca dan berhenti di return itu jika penumpang mempunyai nama yang sama, bukanya fungsi return untuk menghentikan program ya pak tapi kenapa masih terbaca return dibawahnya, mohon penjelasanya pak ..
izin menjawab kang, itu karena ia hanya menghentikan if, sedangkang else if masih dalam function makanya berjalan
maaf kalo salah
Pak Sandhika, mohon maaf saya mau tanya di algoritma pak Sandhika apakah betul yang dimaksud kurang efektif adalah di bagian cek nama penumpang yang double seharusnya di cek terlebih dahulu sampai selesai dalam for
if( penumpang[i] == namaPenumpang){
console.log(namaPenumpang+" sudah ada di dalam angkot");
}
baru diajalankan for lagi untuk mengecek kursi yang kosong
if(penumpang[i]==undefined){
penumpang[i]=namaPenumpang;
return penumpang;
}
karena menurut analisa saya kalau source code yang diatas akan mengalami kebocoran jika
var penumpang=["Shandika", undefined, "Doddy"];
di jalankan fungsi
tambahPenumpang("Doddy", penumpang)
akan menjadi
var penumpang=["Shandika", "Doddy", "Doddy"];
Apakah betul Pak? Mohon info nya hehe
Kalau saya salah mohon infonya ya pak supaya saya lebih paham
iya gan ini sama kaya saya, malah jadi tambah bukannya muncul pesan nama penumpang nya sudah ada
mau tanya pak, gmn cara agar code js yang kita buat mau di jalanin kayak bapak gitu lewat console html di browser,, saya udah ikutin tapi pas saya click console di browser ada error "The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must be declared in the document or in the transfer protocol." dan saya coba ketikkan perintah js yang telah saya buat seperti contoh yang bapak buat, tetapi tidak bisa muncul malah error
, apa ada caranya sebelum kita memakukan itu ?
hmm, pakai firefox ya? kayanya ada problem di encodingnya.. coba tambahkan ini di bagian head HTML nya :
atau coba ganti browsernya pakai Chrome
ini udah pake charome,, tapi masih error VM129:1 Uncaught ReferenceError: tambahpenumpang is not defined
at :1:1
code javascript nya gak mau di jalanin di code html yang di buat kayak yang bapak buat , apa ada cara / tehnik nya terlebih dahulu agar bisa menjalankan code js yang sudah kita buat lewat console html ?
hmm maaf pak , ternyata saya yang kurang teliti, saya lupa memanggil code java script yang sudah saya buat :),, makasih pak :D
tapi sudah saya panggil code javascript saya dan ada error lagi :Failed to load resource: net::ERR_FILE_NOT_FOUND , file tidak di temukan, padahal file itu ada di tempatnya ?, ada solusi pak?
salah alamatnya di src nya coba di cek lagi penempatan file javascriptnya
Terimakasih ilmunya Pak Dhika.
var penumpang = [];
var tambahPenumpang = function(namaPenumpang) {
// Cek apakah namaPenumpang sudah ada
var ada = penumpang.find(function(e) {
return e == namaPenumpang;
});
if (ada) {
console.log(namaPenumpang + " sudah ada di dalam angkot.");
return penumpang;
}
// Penumpang belum ada
// Cek apakah ada kursi kosong
var kursiKosong = penumpang.findIndex( e => e == undefined);
if (kursiKosong > -1) { // Ada kursi kosong
penumpang[kursiKosong] = namaPenumpang;
} else { // Tidak ada kursi kosong
penumpang.push(namaPenumpang);
}
return penumpang;
}
enak ya di bandung susunan angkotnya 7, 5
klo di medan 8,6
sempit2 penumpangnya hahhaa
😂 di sini juga masih ada yang 86 Leo..
Pak dhika,sepertinya ada yg masih kurang programnya,buat handle kalau nama yg sudah ada posisi/indexnya berada di setelah undefined...
betul, seharusnya cek nama dulu di for loop sendiri agar tidak masuk kalau ada nama yang sama
Pak, mau ijin tanya, kalau misal kita mengetik nama penumpang yang sama, tetapi yang kita ketik itu ada di urutan sebelum penumpang dengan nama yang sama sebelumnya. Itu kan nanti fungsi yang memunculkan tulisan penumpang a sudah ada dalam angkot nggak jalan. Karena udah keduluan fungsi yang jika ada kursi kosong, terus di return sama fungsinya itu. Mohon penjelasanya
Jadi penelusuranya sampai kursi terakhir apakah ada nama penumpang yang sama belum selesai, udah kedulan di return sama if penumpang[i] == undefined
kak saya sudah ikutin caranya, tapi saat pertama kali coba di console "tambahPenumpang('iman',penumpang) " array penumpangnya jadi ['amin, 'iman', 'iman']
kenapa ya kak?
Code :
var penumpang = ['amin',undefined,'iman'];
var tambahPenumpang = function(namaPenumpang, penumpang) {
if( penumpang.length == 0) {
//tambahPenumpang
penumpang.push(namaPenumpang);
return penumpang;
} else {
for(var i = 0; i+1 < penumpang.length; i++) {
if( penumpang[i] == undefined) {
// kursi kosong
penumpang[i] = namaPenumpang;
// tambah di kosongnya
return penumpang;
}else if( penumpang[i] == namaPenumpang) {
console.log(namaPenumpang +' sudah ada di angkot.' );
return penumpang;
}else if( i == penumpang.length -1) {
penumpang.push(namaPenumpang);
// tambah di akhir
return penumpang;
}
}
}
}
17:54
var penumpang = [];
var undefine = [];
function tambahPenumpang(nama){
var hasil = penumpang.filter(function(x){
return x == nama;
});
if(hasil.length != 0){
alert("Penumpang ini sudah masuk sebelumnya");
} else if(undefine.length != 0){
penumpang.splice(undefine[0],1,nama);
undefine.shift();
} else{
penumpang.push(nama);
}
}
function KeluarkanPenumpang(nama){
for(var i = 0;i < penumpang.length;i++){
if(penumpang[i] == nama){
penumpang[i] = undefined;
undefine.push(i);
i = 1000;
}
}
}
while(true){
var tanya = prompt('Tambah/Keluarkan/Tampilkan?');
if(tanya == 'tambah' || tanya == 'Tambah'){
var namaPenumpang = prompt('Siapa namanya?');
tambahPenumpang(namaPenumpang);
} else if(tanya == 'keluarkan' || tanya == 'Keluarkan'){
var namaPenumpang = prompt('Siapa namanya?')
KeluarkanPenumpang(namaPenumpang);
} else{
alert(penumpang.join());
}
}
Jenius banget bang, kok bisa kepikiran gitu ya hehe
pak mau nanya menit 17:26 :
else if( i == penumpang.length -1)
kenapa -1 penumpang.lengthnya. apa itu selisih krn array lengthnya 3 sedangkan indexnya 0,1,2? masih krg paham saya.
Bantu jawab kak, karena array itu dimulai dari 0, misal ada 10 array itu dari 0 sampai 9. sedangkan properti '.length' menghitung isi array yaitu ada 10, jadi biar 'i' sama dengan array.length harus dikurangin satu, 9 == 9, kalau ndak bakal false terus.
@@bayusenoariefyanto599 jd lengthnya itu yg dikurang 1 ya? Indexnya tetap? Penjabarannya kan;
- Indexnya tetap 0 - 9.
Lengthnya kalau di krg 1 jd 9 dong.
- lengthnya tinggal 9 apakah ngaruh indexnya jd 0-8 krn jumlah arraynya kan jd 9?
@@brianrahmarela6552 length itu bukan index, tapi jumlah array. Array 10 yaitu dari 0 - 9, kan ada 10 jumlah arraynya,. Index nya akan tetap 0 - 9. Dan length itu 10. Makanya dikurangi 1 biar 9, kalau ndak dikurangi nanti jadinya if(9 == 10), sementara 9 itu index yang paling akhir, jadinya akan terus false. Bisa juga if (i+1 == array.length), jadinya (10 == 10)
@@bayusenoariefyanto599 mesti pake tabel penelusuran kayaknya nih gw. Masih ngga ngerti😅
pak seri javascript sudah end atau masih lanjut???
~Makasih ilmu nya bermanfaat :)
1 topik lagi Zi tentang Object.. :)
sama2 Zi.. terimakasih juga uda nonton..
let tambahPenumpang = (namaPenumpang, penumpang) => {
if (penumpang.includes(namaPenumpang)) {
console.log(`${namaPenumpang} sudah di dalam angkot.`);
} else {
let index = penumpang.indexOf(undefined);
index !== -1
? penumpang[index] = namaPenumpang
: penumpang.push(namaPenumpang);
}
return penumpang;
}
Mau tanya nih sama para suhu kenapa metode push bisa di gunakan untuk memasukan array yang undifined di tengah?
siapa yang pake metode push? yang dipakai penumpang[index] = namaPenumpang. gak ada metode push, dan gak bakal bisa
var penumpang = ['udin',undefined,'cocote']
function tambahPenumpang (namaPenumpang,Apenumpang){
Apenumpang === penumpang
//cek nama yang udah ada
var chekNama = penumpang.find(function(e){
return e == namaPenumpang
})
//cek nama yang kosong
var kursiKosong = penumpang.findIndex(function(penumpang){
return penumpang==undefined
})
//kondisi nama penumpang ada yang sama
if (namaPenumpang==chekNama){
console.log(namaPenumpang + ' sudah ada didalam angkot')
return penumpang
}
//kondisi ada kursi kosong
else if (kursiKosong>=0){
penumpang[kursiKosong] = namaPenumpang
console.log(penumpang)
return penumpang
}
//kondisi angkot masih kosong semua
else if(penumpang.length ==0 ){
penumpang.unshift(namaPenumpang)
console.log(penumpang)
return penumpang
}
//kondisi angkot ada penumpangnya
else if (penumpang.length>0){
penumpang.push(namaPenumpang)
console.log(penumpang)
return penumpang
}
}
ini versi saya pak Dhika, terimakasih atas ilmunya
Izin tanya pak, knp yg di return penumpang?
Assalamu'alaikum Pak
Mau nanya di bagian tambahPenumpang()
Pas di console kita masukkan Sandhika
Kemudian Sandhika masuk ke indeks 0, maka dikerjakan di rules ke 1.
Lalu Galih masuk, karena Galih di array penumpang , dia masuk ke statement else
Apakah gitu Pak?
Mohon Pencerahnnya. Makasih Pak.
maksudnya karena galih diluar array penumpang dia masuk ke else
5:30
function tambahPenumpang(e, array) {
array.push(e);
}
mwhahaahha bisa saya >:V
Menurut saya kodingan pak sandika kurang tepat... karena saat kondisi seperti ini ['galih', undefined, 'hanan'], lalu mengisi dengan nama yang sama misal 'hanan', akan menghasilkan ouput ['galih', 'hanan', 'hanan'], mungkin sc ini bisa membantu
var bangku = ['galih', undefined, 'hanan'];
//function tambah penumpang
var tambahPenumpang = function (nama, bangku){
//jika angkot tidak kosong
if(bangku.length != 0){
for(var i = 0; i < bangku.length; i++){
//mencari penumpang dengan nama yang sama
if(bangku[i] == nama){
return nama +' sudah ada di angkot';
//mencari tempat duduk yang kosong diantara penumpang
} else if(bangku[i] == undefined){
bangku[i] = nama;
return bangku;
}
}
}
//menambah penumpang saat angkot kosong ataupun sudah terisi
bangku.push(nama);
return bangku;
}
kalau misal di undefined itu diisi oleh nama yang telah ada di array nya. Caranya bagaimana ya?
Pak dika, saya sudah bikin algoritma pengelolaan angkot, cuman ya saat saya menginput tambahPenumpang('Doddy',penumpang) yang ke index 1, kok tiba tiba langsung bertambah aja, tapi gada pesan yang di tampilkan, apa saya menginput algoritma nya salah, atau bagaimana ini?
Pak, saya sudah mengikuti sc di atas, tp kok tetep ya ada pesan error :
TypeError: penumpang is undefined
dan saya masih awam di dunia pemograman web adakah tips untuk bisa melatih logika karena sering kali saya paham tapi logika kurng krna belum pernah ada dasar coding terimaksih
teman2 tlong tips ya terimakasi
kode saya udah dirapihin sama kaya punya pak dhika tapi kok mentok di kursi kosong ya? undefined terus
ijin pak, kenapa di function-nya ada dua parameter? kenapa bukan diisi nama penumpang barunya saja?
saya coba bikin dengan pendekatan yang berbeda.
var penumpang = []
function tambahPenumpang(namaPenumpang) {
//mencari bangku kosong
var bangkuKosong
if(penumpang.indexOf(undefined) != -1) {
bangkuKosong = penumpang.indexOf(undefined)
} else bangkuKosong = penumpang.length
//mencari nama sama
var namaSama = penumpang.find(function(x){
return x == namaPenumpang
})
//menambah penumpang ke bangku kosong dengan kondisi bukan nama yang sama
if(namaSama != undefined) {
console.log(namaPenumpang + ' sudah ada di dalam angkot')
} else(penumpang.splice(bangkuKosong, bangkuKosong, namaPenumpang))
//return penumpang
return penumpang
}
console.log(penumpang)
Pak Sandhika, coba untuk case ini di run di code Bapak dengan kondisi penumpang = ['Galih', undefined, 'Sandhika']:
--> tambahPenumpang('Sandhika',penumpang).
Pasti jadinya 'Sandhika' tetap duplikat. Mohon konfirmasinya Pak Sandhika. Terima kasih.
var penumpang = ["Galih", undefined, "Sandhika"];
var tambahPenumpang = function(namaPenumpang, penumpang){
if(penumpang.length == 0){
penumpang.push(namaPenumpang);
return penumpang;
}else{
for(var i = 0; i < penumpang.length; i++){
if(namaPenumpang == penumpang[i]){
console.log("Nama sudah terdaftar pada sistem");
return penumpang;
}else if(i == penumpang.length - 1){
for(var j = 0; j < penumpang.length; j++){
if(penumpang[j] == undefined){
penumpang[j] = namaPenumpang;
return penumpang;
}else if(j == penumpang.length - 1){
penumpang.push(namaPenumpang);
return penumpang;
}
}
}
}
}
}
Mungkin bisa menggunakan Source Code tersebut bang. Semoga membantu ....
VM471:1 Uncaught ReferenceError: tambahPenumpang is not defined
at :1:1, kenapa error?
di refresh coba gan
sama walupun di refresh tetep gak bisa
Periksa lagi html nya,tadi saya juga gitu
@@ridhoaditya8841 udha kok gan
@
Naufal Syammary
Coba di check lagi di code nya terutama di kurung kurawal saya sempet error karna kurang teliti, seperti itu dan ternyata codingan saya tidak masuk di BLOCK nya function. coba di check trus refresh, masukin variablenya. semoga membantu.
2024 masih nonton
kurang paham di kodisi yang else if ( i == penumpang.length - 1) , kenapa harus di kurangi 1 pak?
sama masih gak paham
Sebenarnya saya kurang paham sepenuhnya mengenai penumpang.length-1, cuma yg saya tahu adl di dalam iterasi for itu i sedang mencari apakah i sama dengan array untuk penumpang.length-1 secara array itu kan dimulai dari 0 bukan 1, jadi mau gak mau harus tambahin penumpang.length-1 saat kondisi. Karena kalau saat kondisi penumpang.length saja, hasilnya:
- Saat tambah penumpang: Undefined mungkin karena datanya bertabrakan
- Saat kurangi penumpang: Nanti nama penumpang yg tidak ada di dalam angkot itu tidak bisa muncul notif di console walau nanti saat dihapus, nama yg ada di dalam array berhasil diubah menjadi undefined
Maaf ya kalau penjelasanku kurang bisa dipahami. Apalagi memang ilmu logika saya memang masih lemah
undefined ini juga bisa diterapkan di c++ nggak kak?
Kok hasil saya aneh ya Pak, untuk case yang undefined :'] . Okay, saya lanjut play aja biar tahu, btw makasih Pak ilmunya, sangat bermanfaat.
var angkot = [];
var tambahPenumpang = function(namaPenumpang, angkot){
if (angkot.length==0){
angkot.push(namaPenumpang);
return angkot;
console.log(angkot);
}
else{
for (var i = angkot.length - 1; i >= 0; i--) {
if (angkot[i]==undefined){
angkot[i]=namaPenumpang;
return angkot;
}
else if (namaPenumpang==angkot[i]) {
console.log('Penumpang dengan nama '+ namaPenumpang + ' sudah ada!');
return angkot;
}
else {
angkot.push(namaPenumpang);
return angkot;
}
}
console.log(angkot.join('-'));
}
}
iya sama mas, saya juga pas nyoba nambah array nya undefined trus. Tapi sudah bisa sih.
coba ini, ganti (penumpang.lenght == 0) jadi (penumpang.lenght == undefined)
var penumpang = [];
var tambahPenumpang = function(namaPenumpang, penumpang) {
//jika angkot kosong
if (penumpang.lenght == undefined)
mungkin karena array penumpang belum di isi, jadi harusnya bukan 0 tapi undefined (siapa tau berhasil)
Halo pak Sandhika, sebelumnya terima kasih sudah membuat video yang sangat bermanfaat, semoga menjadi amal baik pak Sandhika.
Saya mau share jawaban nih pak, tapi sekaligus tanya apakah alogaritma seperti ini sudah benar? mohon koreksinya pak Sandhika, dan dan temen-temen semua barangkali ada yang baca komen dan menemukan kesalahan logika saya. Terima kasih (;
//membuat variabel kosong
var penumpang = [];
var tambahPenumpang = function (nama, arr) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] === undefined) {
arr[i] = nama;
console.log(arr);
return;
} // pertama saya cek dulu apa ada kursi yang kosong dengan isi undefined (bukan variabel kosong), kalo ada maka langsung isi seat tersebut
}
for (var i = 0; i < arr.length; i++) {
if (i >= 10) {
console.log(`angkot cuma muat 10, sudah diisi dengan ${arr.join(", ")}`);
return;
}
} // kalo gaada undefined, apakah angkot masih muat. oh iya disini saya kasih batasan angkot 10 orang, kalo masih muat maka skip ke for selanjutnya
for (var i = 0; i < arr.length; i++) {
if (arr[i] === nama) {
console.log(
`nama ${nama} sudah ada, kamu gaboleh naik! penumpang sementara yaitu ${arr.join(
", "
)}`
);
return;
} // lanjut apabila masih muat, ini untuk cek apakah namanya sudah ada dalam angkot? kalo gaada maka skip ke statement selanjutnya
}
arr.push(nama); // lanjut kalo kondisi semua diatas false, maka akan memasukkan nama baru ke dalam array penumpang
console.log(arr);
};
Numpang nanya di 17:29 saat else if( i == penumpang.length - 1). Disini kan 'i' nilainya 0, trs si penumpang.length -1 nilainya jadi 2, itu kenapa bisa masuk ke aksinya?
Maaf kalau belibet.
Pake fungsi push bro
Artinya jika i sama dengan jumlah elemen maka jalankan fungsi push
karna adanya perulangan for yang didalam nya ada increment i++,maka nilai i akan terus ditambah dengan 1 sampai mencapai angka penumpang.length - 1 ,mudah-mudahan bisa membantu bro
@@annajmalbupy Wah iya. Soalnya kalau hanya pakai penumpang.length saja di else if sementara kondisinya adalah sedang looping, maka ya saat masuk data berikutnya, jadi undefined karena datanya tabrakan ya. Jadi pakai min.length-1
Pa, izin bertanya, saya masih bingung, dengan ekspresi (i == penumpang.length-1) yang mengembalikan penumpang.push(namaPenumpang),
itu untuk mengecek apakh arraynya sudah terisi semua atau belum