As well as being a National Park, Pulau Seribu has several islands which are mostly or fully devoted to tourism. As they are government-owned, investment in infrastructure is somewhat lacking, and the extremely high prices act to reduce visitor numbers and the resulting damage to the fragile environment.
The most popular and more expensive of the two options to reach the islands is Marina Ancol in the north of Jakarta. Getting there involves turning up at jetty at Marina Ancol where there is a building containing a number of travel agencies. The agencies sell package tours for the resorts on the islands and accordingly are all more or less selling the same product at the same price. There are also web-based agencies, who you should call and then pay by bank transfer/deposit in advance.
The boats leave at various times in the morning and you are required to arrive at least 30 minutes before departure. Some resorts on nearer islands have boats that leave at 9.00am and in the case of Pulau Ayer, at around 2pm. However, these are limited and places on the boats are only available if the boat can be filled.
The other option used by some locals is via Muara Angke harbor, located in the same area as the fish market. There are regular boats to Pramuka Island, which leave in the morning around 7am, and afternoon around 1pm.
No additional fees and permits are required. You can only go to the islands if you are a customer at one of the resorts (although many islands having island hopping boats which allow you to experience more that one island). By purchasing the package, you acquire the right to land on the islands.
Pulau Bidadari is the closest island to Jakarta. It takes about 20 minutes by boat (the boat holds about 50 people and leaves Marina Ancol, dock 17, at 11am, back at 6pm. It is purely a resort island, consisting of the hotel lobby and around 30-40 rooms/cottages, of which 6 are located out in the water, connected by a boardwalk. Other than hotel staff, there are a few squid fishermen working, and squid appears to be the only seafood available in the restaurant, although it is of variable quality.
The pollution on this island is rather depressing: A steady flow of plastic bags and other effluent from North Jakarta arrives on all 4 sides of the island, making swimming unpleasant and not recommended, and sitting on the beach an exercise in waste identification.
There are 2 or 3 very small beach areas, and it is possible to walk around the circumference of the island in under 10 minutes. You can also rent an old bicycle for 15,000Rp/hour.
Some attention has been paid to the entrance to the island with a big sign showing the name of the island and a couple of cannons from the 1800-1810 British-Dutch conflict.
The highlights of this island are late in the evening when many of the day-trippers have gone home, and you can sit on the beach looking at the Jakarta skyline. Similarly, early morning can also be magical. It is also popular with wedding photographers.
Staying overnight on this island will cost you as much as a 5-star hotel in Jakarta, especially if you eschew their spartan one-room offerings in favour of the 3-room traditional houses or prefabricated floating cottages. However the resort itself is of only a 2-star standard. There is limited entertainment (a few pool tables, swimming pool for babies, band playing at weekends).
A trip in a fishing boat to the 3 neighbouring islands is offered, costing 250,000Rp. There are some items of historical interest there (old Hajj quarantine buildings and Dutch ruins), but two of the islands are even more badly polluted (Pulau Onrust and Pulau Kahyangan) and the third (Pulau Kelor), which contains a large circular brick building, 3 trees and a small beach, cannot be visited as the dock was recently washed away.
Snorkeling. Two of the most popular start points are Pramuka Island and Tidung Island. From those, you can rent snorkeling gears for as low as Rp30.000, and hire a boat (can be filled up to 15-20 people). edit