Batam is about 1,595 Km size island. About 45 minutes bout ride from Singapore.
It is very convenient to take boat or ferries from Singapore to go to Batam Indonesia.
Number of Ferry provider is waiting for your at Harbour Front or the Singapore Cruise Center.
Therefore there is no need to book in advance.
Once you arrive in Harbour front Singapore, you can go to First and second floor where you could buy ferry ticket to Batam.
It will cost you $25 Singapore dollars one way.
I advise you not to buy a 2 way ticket so you are flexible when you coming back to Singapore from Batam.
In Batam, there are many places you can go to stay, plenty of decent hotels such as:
Radisson = https://booki.ng/2BgdXkeBest Western
Eska = https://booki.ng/2Bo0I1R
Best Western = https://booki.ng/2hWC3Nk
And a lot more.
Price ranging from $38 To $200 for 2 to 4 Star hotels.
Food wise, if you wan to experience local food, head down to Windsor food court.
Taxi are also available but may are not reliable.