Anda di halaman 1dari 7

TES BACKEND WEB DEVELOPER II

1. Buatlah fungsi php untuk mengurutkan array masuk keluar uang berdasarkan
tanggal kemudian menghitung akumulasi saldo di setiap index!

Input :
$saldoawal = 100000;
$mutasi = array(
(object)["tanggal"=>"2021-10-01","masuk"=>200000,"keluar"=>0,"saldo"=>0],
(object)["tanggal"=>"2021-10-03","masuk"=>300000,"keluar"=>0,"saldo"=>0],
(object)["tanggal"=>"2021-10-05","masuk"=>150000,"keluar"=>0,"saldo"=>0],
(object)["tanggal"=>"2021-10-02","masuk"=>0,"keluar"=>100000,"saldo"=>0],
(object)["tanggal"=>"2021-10-04","masuk"=>0,"keluar"=>150000,"saldo"=>0],
(object)["tanggal"=>"2021-10-06","masuk"=>0,"keluar"=>50000,"saldo"=>0]);

Output :
2. Buatlah fungsi php untuk mengurutkan array masuk keluar stok berdasarkan

tanggal. Kemudian menghitung akumulasi keluarRp, saldoQty, dan saldoRp di


setiap index.

keluarRp = saldoRp di index sebelumnya dibagi saldoQty kemudian dikali


keluarQty.

Input :
saldoAwalStok = 0;
$saldoAwalStokRp = 0;
$kartuStok = array(
(object)["tanggal"=>"2021-10-
01","masuk"=>10,"keluar"=>0,"saldoQty"=>0,
"masukRp"=>10000,"keluarRp"=>0,"saldoRp"=>0],
(object)["tanggal"=>"2021-10-
03","masuk"=>45,"keluar"=>0,"saldoQty"=>0,
"masukRp"=>36000,"keluarRp"=>0,"saldoRp"=>0],
(object)["tanggal"=>"2021-10-
05","masuk"=>40,"keluar"=>0,"saldoQty"=>0,
"masukRp"=>35000,"keluarRp"=>0,"saldoRp"=>0],
(object)["tanggal"=>"2021-10-
02","masuk"=>0,"keluar"=>5,"saldoQty"=>0,
"masukRp"=>0,"keluarRp"=>0,"saldoRp"=>0],
(object)["tanggal"=>"2021-10-
04","masuk"=>0,"keluar"=>40,"saldoQty"=>0,
"masukRp"=>0,"keluarRp"=>0,"saldoRp"=>0],
(object)["tanggal"=>"2021-10-
06","masuk"=>0,"keluar"=>35,"saldoQty"=>0,
"masukRp"=>0,"keluarRp"=>0,"saldoRp"=>0]);

Output :
3. Buatlah stored procedure di database mysql untuk menampilkan laporan
mutasi kas seperti soal nomor 1

Input sebelum create / call stored procedure :


create table uangmasuk(
id int auto_increment primary key,
tanggal date,
nominal int
);

create table uangkeluar(


id int auto_increment primary key,
tanggal date,
nominal int
);

insert into uangmasuk(tanggal,nominal) values


('2021-10-01',200000),
('2021-10-03',300000),
('2021-10-05',150000);

insert into uangkeluar(tanggal,nominal) values


('2021-10-02',100000),
('2021-10-04',150000),
('2021-10-06',50000);

Output :
4. Dengan menggunakan bahasa pemrograman php dan framework
laravel/codeigniter, buatlah fungsi get / post untuk menghitung Total Harga
Sebelum Pajak (Dasar Pengenaan Pajak / Net Sales) dan Rupiah Pajak.
Input :
- total : number (misal 22000)
- persen_pajak : number (misal 10)
Output Json :
- net_sales
- pajak_rp
Misal :
{
"net_sales" : …,
"pajak_rp" : …
}
Hint : Lihat struk McDonald

5. Dengan menggunakan bahasa pemrograman php dan framework


laravel/codeigniter, buatlah fungsi post untuk menghitung total rupiah diskon
dan total harga setelah diskon dengan inputan diskon persen bertingkat.
Input :
- discounts : json array of number
misal : { "discounts" : [{"diskon":"20"},{"diskon":"10"}] }
- total_sebelum_diskon : number
misal : 100000
Output Json :
- total_diskon
- total_harga_setelah_diskon
Misal :
{
"total_diskon": …,
"total_harga_setelah_diskon": …
}
6. Dengan menggunakan bahasa pemrograman php dan framework
laravel/codeigniter, buatlah fungsi post untuk menghitung share revenue ojek
online food.
Input :
- harga_sebelum_markup : number (misal 10000)
- markup_persen : number (misal 10 / 20 / 25)
- share_persen : number (misal 20)
Output Json :
- net_untuk_resto
- share_untuk_ojol
Misal :
{
"net_untuk_resto": …,
"share_untuk_ojol": …
}

7. Gunakan mysql tools semacam mysql workbench / dbeaver / lainnya, lalu buat
koneksi database mysql ke server development nutapos :
host : dev.nutacloud.com (port 3306)
username : tes
password : tes
database : nutacloud
Database nutacloud mampu menampung data banyak perusahaan
1 perusahaan bisa punya banyak outlet (DeviceID)
1 outlet bisa punya banyak perangkat (DeviceNo)
Tiap perangkat bisa melakukan input
Tiap perangkat bisa saling edit data yang diinput oleh perangkat lain

1 mastercategory punya banyak masteritem


1 sale punya banyak saleitemdetail
1 saleitemdetail hanya 1 masteritem

relasi kolom yang harus dihubungkan antara mastercategory dan masteritem


mastercategory masteritem
PerusahaanNo PerusahaanNo
DeviceID DeviceID
DeviceNo CategoryDeviceNo
CategoryID CategoryID

relasi kolom yang harus dihubungkan antara sale dan saleitemdetail


sale saleitemdetail
PerusahaanNo PerusahaanNo
DeviceID DeviceID
DeviceNo TransactionDeviceNo
TransactionID TransactionID

relasi kolom yang harus dihubungkan antara masteritem dan saleitemdetail


masteritem saleitemdetail
PerusahaanNo PerusahaanNo
DeviceID DeviceID
DeviceNo ItemDeviceNo
ItemID ItemID

Buatlah query yang menampilkan semua kategori dan item baik laku maupun
tidak laku, semua itemnya, Qty (kalau tidak laku maka tampilkan 0), dan SubTotal
(kalau tidak laku maka tampil 0) untuk outlet bernama Mie Rampok Manukan
Surabaya (PerusahaanNo=639, DeviceID=1356) pada tanggal (kolom SaleDate)
'2017-05-11'
PETUNJUK :

 Setelah selesai coding, salin code Anda ke file doc/docx (misal Microsoft Word)
 Kirim via email ke erich@nutapos.com dan rahmat.ihsan03@gmail.com

Anda mungkin juga menyukai