Semarang’s Airport is Achmad Yani International Airport, quite nearby from the city centre. Daily flights are available to many major cities in Indonesia. Garuda Indonesia, AirAsia, Citilink, Lion Air, and Sriwijaya Air fly to Jakarta daily. Wings Air, Sriwijaya Air, Garuda Indonesia, and AirAsia also has a daily flight to Surabaya. Wings Air are also provides daily flight to Denpasar- Bali. Lion Air has also expand their flight route from Semarang to Balikpapan and Banjarmasin in Kalimantan. Trigana Air/Kalstar and Indonesia Air Transport also flies daily to Pangkalanbun.
Semarang is also connected to international destinations Singapore by SilkAir and AirAsia, and Kuala Lumpur by AirAsia.
Semarang is connected to Jakarta, Bandung and Surabaya by train. Interestingly, there is no comparable railway service to Yogyakarta, although a railway line exists. The Argo Muria express connects Semarang to Jakarta, and with its relatively new equipment (2002), is very comfortable. The downside is the very early departure (05:00) to Jakarta. Overnight trains are also available. The fastest train between Semarang and Jakarta takes around 6 hours.
Bandung and Surabaya are also connected to Semarang with air-conditioned eksekutif (Executive) class trains.
There are two main railway stations in Semarang, Stasiun Tawang and Stasiun Poncol.
On the northern main line, between Semarang and Pekalongan, the railway line follows the coast line, providing passengers with beautiful views of the Java Sea.
Semarang can be reached by car from Jakarta. It takes around 10 to 12 hours depending on traffic. You can choose to leave early in the morning from Jakarta to arrive in Semarang in the next 12 hours or so. An over-night drive is faster yet more challenging and even dangerous for “Pantura”, a non familiar with the roads driver. Pantura derives from “Pantai” which means Beach and “Utara” which means North.
From Jakarta you can take the Eastward route via Cikampek Toll-road. Go along the toll-road until your reach the Cikampek toll gate, take a left and you are in “Pantura Road”. In Pantura road you have to follow the directing signs to “Cirebon”, “Pekalongan”, “Kendal”, “Semarang” or “Surabaya” as those cities are eastward from Jakarta.
You will pass small towns such as Patrol, Jatibarang, and relatively bigger ones like Cirebon. Before entering Cirebon, you can take the toll-road, which will steer you out of the heavy traffic by-passing it all-together. That is, if you do want to avoid any traffic and do not intend to sight-see Cirebon. After exiting the Cirebon toll road, you will drive eastward along Losari and then you will pass Tegal, Pemalang, Pekalongan and Kendal before you arrive in Semarang.
Gas stations are abundant, you can see them almost every 5 or 10 kilometres along the road. They have toilet facilities. Pay Rp1,000. Beware of small or old gas station, they have poor lighting and terrible toilets. Choose a newer and bigger petrol station with good lighting, parking space and clean toilets. Please make sure that you have locked your car and do not leave your valuables unattended.
Many bus companies offer daily service from Jakarta to Semarang. You can choose to go in the day time with air conditioned from Pasar Rebo Bus Terminal in East Jakarta, Kalideres Bus Terminal in West Jakarta or from Lebak Bulus Bus Terminal in South Jakarta. The overnight bus with air con are also available with good services. You can choose bus operators such as: “Rosalia Indah”, “Raya”, “Kramat Jati”, Safari Dharma Raya as the good reputed bus serving Jakarta to Semarang. Sometimes the bus route is Jakarta to Solo via Semarang. You can choose them too, but please remind the bus driver’s assistant, (The person who checks your ticket on-board the bus) to wake you up in Semarang!!.
There is also the executive-class tourist transporter Central Java Transporter, +6285225993574 that connects Jogjakarta, Solo and Semarang (hence the name). Joglosemar picks up tourists from specific hotels and provide snacks and water for your trip. Considerably pricier than other executive buses, it is more comfortable and provides a friendly service throughout the journey.
If you are on a group, you can also rent a “Tourist/Charter Bus”
Jakarta – Semarang and vice-versa, Is mostly a traditionally via-railway travelled route along the northern coast road (“pantura”) or by plane. A trip by boat or sea vessel is uncommon due to its rare schedule and the length of the journey that takes too long compared with a train (approx 6 hours) and over-night bus (9 hours).
However, cruise ships occasionally spend a day in port. The port has few facilities for passengers, but an informal market of street vendors often assembles outside the secure-area. Most passengers take a one day tour to Borobudur.
Source : http://wikitravel.org