I googled for sea transport from Port Klang to Jakarta so that I can visit my Szer everyweek. Cheaper alternative. But here’s what I found at InnCrowd’s website:
Unless you have plenty of time on your hands and don’t mind taking a slow boat to Indonesia, I’d say the best way to get to there is by air.
To get to either Sumatra or Java by ferry, you must first travel to Batam, part of the Riau Islands of Indonesia. From there, there are PELNI ferries to Belawan (port in Medan, Sumatra) and Tanjung Priok (port in Jakarta, Java). PELNI stands for PT Pelayaran Nasional Indonesia, a state-owned sea transportation company. They have a website where you can check schedules and fares.
The ferry ride from Singapore to Batam is about 45 minutes, and the one-way fare costs about S$25. There are several ferry operators, one of which Penguin Ferry Services has been receiving good reviews for their reliability. You can catch their ferries to Batam from World Trade Centre Ferry Terminal in Singapore.
A PELNI ferry by the name of Sinabung departs Batam at 10.00 a.m. once every 4 days for Tanjung Priok (port in Jakarta). The cheapest one-way fare costs Rp177,500 (about S$35) and the journey takes about 26 hours (i.e. you’ll arrive at Tanjung Priok at 12.00 p.m. the next day).
Its cheap but very time consuming. 😦 From Batam also need 26 hours. Arrggh.