I am sure you can catch a train from Gambir Railway Station in Jakarta. I remember catching such a train in 1997 a very very long time ago.
Just checked for you on this website http://www.kereta-api.co.id/
There are 2 trains.
Argo Muria leaves Gambir Jakarta at 7.30 am and arrives in Semarang at 2.04 pm.
Ardo Sindoro " " " at 4.45pm and arrives in Semarang at 23.03 pm.
Cost varies between 235,000 - 250,000 rupiah one way.
Hope this helps.
There are several airlines operating from Jakarta to Semarang or you can take a 6 hour train journey. Be aware that there are 2 stations in Semarang.
Be the first to rate this answer!