The four main ways to get around Berlin by public transportation are subways (U-Bahn), urban railway lines (S-Bahn), Tram and buses. We avoided the Tram, since it’s very slow (it became a joke to us, that no one can ever get ran over by a Tram, no matter how hard you try) and not very friendly to use. The buses were sometimes handy, but we traveled mostly by S-Bahn – by far the best trains (the U-Bahns are more ancient and crammed).
The famous honor system, which very much surprised me when I first visited Europe many years ago (I was in Belgium then), is still very much alive. That means most of the times nobody checks if you have a ticket or not, but if you ran into an inspector (and you won’t notice them, as they’re dressed in civilian clothes), you’ll have to pay a fine of about 40 euros.
You have three tariff zones (A, B, and C). Zone A includes Berlin’s inner city up to and including the S-Bahn ring. Zone B is for outside the S-Bahn ring up to the city boundary; and Zone C is for Greater Berlin (area approx. 15 km around Land Berlin). You can get tickets for zones AB, BC or ABC. AB is the most popular. If you’re considering traveling to places like Oranienburg area or Potsdam, buy the ABC.
There are a few kinds of tickets you can buy. First, there’s the WelcomeCard, a nice deal, which includes public transport for zones A, B and C, and also a voucher booklet, which gives you discounts for all sort of things. It costs 16 euros for 48 hours, and 21 euros for 72 hours. Single journey ticket costs 2.10 euros, and you can also get a short distance ticket (3-4 stations) for 1.20 euros. Day ticket costs 6.10 euros, and a weekly ticket costs 25.40 euros. There is also a group ticket for maximum 5 people, which costs 15.40 euros.
You can get all the tickets at the ticket machines, which can be found everywhere in the stations. They are very easy to use. And you must not forget to validate your ticket before the first ride.
A ticket machine, and next to it on the right a ticket validation machine (click to enlarge):
And that’s a validated ticket: