Sachverhalt: A. Die Staatsanwaltschaft Basel-Stadt führt eine Strafuntersuchung gegen den türkischen Staatsangehörigen X._ wegen des Verdachts der mehrfachen Vergewaltigung, der Körperverletzung, der Tätlichkeiten, der Drohung und des Missbrauchs einer Fernmeldeanlage. Sie wirft ihm vor, er habe zwei frühere Lebensgefährtinnen (im Folgenden: Opfer) während der jeweiligen Beziehung mehrfach vergewaltigt, bedroht und geschlagen. Am 3. Januar 2013 nahm ihn die Polizei fest. Am 7. Januar 2013 versetzte ihn das Zwangsmassnahmengericht des Kantons Basel-Stadt in Untersuchungshaft. Am 15. Februar und 13. März 2013 wies das Zwangsmassnahmengericht Haftentlassungsgesuche ab. Die von X._ gegen den letzteren Entscheid erhobene Beschwerde wies der Appellationsgerichtspräsident des Kantons Basel-Stadt am 8. April 2013 ab. B. Am 30. März 2013 verlängerte das Zwangsmassnahmengericht die Haft für die Dauer von 12 Wochen, d.h. bis zum 24. Juni 2013. Die von X._ hiergegen eingereichte Beschwerde wies der Appellationsgerichtspräsident am 17. Mai 2013 ab. Dieser bejahte den dringenden Tatverdacht und Kollusionsgefahr. Ob zusätzlich Flucht- und Fortsetzungsgefahr gegeben sei, liess er offen. Er beurteilte die Haft als verhältnismässig. C. X._ führt Beschwerde in Strafsachen mit dem Antrag, der Entscheid des Appellationsgerichtspräsidenten vom 17. Mai 2013 und die Verfügung des Zwangsmassnahmengerichts vom 30. März 2013 seien aufzuheben und der Beschwerdeführer unverzüglich aus der Haft zu entlassen. Eventualiter sei die Sache an den Appellationsgerichtspräsidenten bzw. das Zwangsmassnahmengericht zurückzuweisen, damit diese den Beschwerdeführer unter Auferlegung sachgerechter Ersatzmassnahmen (Friedensbürgschaft, Schriftensperre, Kaution, Electronic Monitoring und/oder weiterer technischer Massnahmen) aus der Haft entliessen. D. Der Appellationsgerichtspräsident und die Staatsanwaltschaft beantragen je unter Hinweis auf den angefochtenen Entscheid die Abweisung der Beschwerde. X._ hat innert Frist keine Stellungnahme dazu eingereicht.