A journey from Surabaya to Banyuwangi by express train ‘Mutiara Timur’ then ferry from Ketapang on Java to Gilimanuk on Bali. The train cost 200,000 rupiah ($15), ferry cost 6,500 rupiah ($1).
For practical information see

AloJapan.com