If you're coming from Malaysia, you can take the Causeway Bridge from Johor Bahru. The trip will take about an hour, depending on the traffic.
If you're coming from Indonesia, you can take the ferry from Batam to Harbourfront, then take a bus or taxi to the city. The trip will take about 3 hours, depending on the ferry.
If you're coming from Thailand, you can take the bus from Bangkok to the border town of Padang Besar. Then, take the train to Singapore. The trip will take about 12 hours, depending on the train.