By Rail
From Jakarta, Bandung or Yogyakarta, travel first to Surabaya's Gubeng Station. A first-class train, Mutiara Utara, connects Jakarta with Surabaya everyday. This train departs from Jakarta's Kota Station in the late afternoon and arrives in Surabaya early the next morning. From Surabaya, you can choose between two daily departures from Gubeng Station for the 8-hour trip on the Mutiara Timur, a non-airconditioned train headed for Banyuwangi, and later catch the ferry to Bali. A bus will then take you across the straits on the ferry and over to Denpasar.
By Bus
It is true that you cannot actually travel to and from Bali by bus, but there are plenty of buses that link Bali with the rest of Indonesia by using the public ferry - the cost of which is included in the bus fare. With improved roads, the bis malam or night bus from Java to Bali is now faster than the train, although one cannot deny its dangers. There are air-conditioned buses from Surabaya to Denpasar, which take about 10 to 12 hours, and from Yogya to Denpasar, which is a 15 to16 hour trip. Most Indonesians travel this way, but you must be prepared to tolerate cigarette smoke and noise. Non-smoking buses are not available and the volume of videos are usually at their highest. Be sure to specify air-conditioned to avoid inhaling the noxious fumes spewed out by trucks and buses. Look up the Lorena buses, which are suppose to be the best in Bali; it will cost you a little more but deluxe services and a toilet is included. Buses usually depart from Jakarta at 9 a.m., 1.30 p.m. or 2 p.m. and arrive in Denpasar 24 hours later.
By Car
Cars are up for rent in Java and can be driven to Bali. However, the cost will be as much as hiring both chauffeur and car, and there is always the hassle of returning the car. Drive to Banyuwangi in East Java first and then take the ferry over to Bali.