Hallo teman-teman semua, selamat datang kembali di sarapan koding.
Apa kabar teman-teman semua, semoga sehat selalu yah, meskipun di dalam kondisi pandemi COVID-19 yang tak kunjung selesai ini, kita harus tetap semangat. Sebagai teman kalian yang masih di rumah aja, disini saya kasih permainan mengenai logika dan algoritma.
Tidak hanya menggunakan javaScript, Kalian dapat menggunakan bahasa pemrograman yang kalian kuasai.
Jadi seperti ini, saya mempunyai studi kasus sebagai berikut:
Studi kasus
Kita akan diberi nilai berupa angka dalam array sebanyak 10 digit. Kemudian kita disuruh merubah format nomor tersebut menjadi format telepon.
Contoh:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0] => (123) 456-7890
[0, 3, 1, 8, 9, 9, 8, 1, 2, 6] => (031) 899-8126
3 digit pertama ada di dalam kurung sebagai kode area, kemudian dipisahkan dengan spasi, selanjutnya antara 3 digit kedua dan 4 digit ketiga dipisahkan dengan tanda "-".
Solusi 1
Logika dan algoritma:
- inisialisasi variabel a,b,c sebagai string
- memebedakan string menjadi 3 bagian
- 3 digit pertama dimasukkan ke dalam variabel a
- 3 digit kedua dimasukkan ke dalam variabel b
- 4 digit terakhir dimasukkan ke dalam variabel c
- gabungkan "(" + a + ") " + b + "-" + c
- kembalikan nilai
Kode program
function createPhoneNumber(numbers) {
let a = '', b = '', c = '';
for (i = 0; i < numbers.length; i++) {
if (i < 3) {
a += numbers[i];
} else if (i < 6) {
b += numbers[i];
} else {
c += numbers[i];
}
}
return '(' + a + ') ' + b + '-' + c;
}
Pada kode program di atas, kita menggunakan perulangan for untuk memasukkan angka ke dalam variabel. Kita bisa menggunakan console.log() untuk menampilkan hasilnya. Kita coba menampilkan hasil dari console.log(createPhoneNumber([1, 2, 3, 4, 5, 6, 7, 8, 9, 0])) maka hasilnya sebagai berikut:
(123) 456-7890
Solusi 2
Logika dan algoritma:
- inisialisasi format telepon '(xxx) xxx-xxxx'
- cari dan ganti nilai x pada variabel format dengan masing-masing digit angka
- kembalikan nilai
Kode program
function createPhoneNumber(numbers) {
let format = "(xxx) xxx-xxxx";
for (let i = 0; i < numbers.length; i++) {
format = format.replace('x', numbers[i]);
}
return format;
}
Pada solusi kedua ini, kita membuat variabel untuk format teleponnya terlebih dahulu, kemudian dilakukan perulangan for untuk mengganti nilai x pada variabel format menjadi angka. Cukup unik bukan.
Solusi 3
pada solusi ketiga ini, kita tidak menggunakan perulangan, tapi langsung menata angka di dalam array menjadi bentuk format telepon
kode program
function createPhoneNumber(numbers) {
let n = numbers;
return '(' + n[0] + n[1] + n[2] + ') ' + n[3] + n[4] + n[5] + '-' + n[6] + n[7] + n[8] + n[9];
}
dari kode di atas, kita dapat menyimpulkan pada solusi ketiga ini merupakan solusi serangan fajar, tanpa basa-basi langsung mengembalikan nilai dengan menata langsung angka di dalam array menjadi format telepon.
Bagaimana permianan logika dan algoritma program di atas ?, cukup menarik bukan, kalian dapat mencari cara yang lebih mudah dan lebih simpel dari cara di atas.
Sekian pembahasan kita kali ini, semoga bermanfaat dan dapat melatih kemampuan berlogika kita, Jangan lupa sarapan koding !.