Faits: A. Par décisions des 12 mai et 17 juillet 2006, l'Office AI Berne a alloué à S._, né en 1980, une demi-rente d'invalidité depuis le 1er mai 2004, fondée sur un degré d'invalidité de 50 %. L'office AI disposait en particulier d'un rapport de la Clinique X._ du 29 juillet 2005, fonctionnant en tant que COMAI. Dans le cadre d'une révision du droit à cette prestation, l'office AI a recueilli un nouveau rapport d'expertise pluridisciplinaire de la Clinique X._, du 5 mai 2008. Le 19 juin 2008, l'office AI a fait savoir à l'assuré qu'il envisageait de supprimer la rente compte tenu de l'amélioration de l'état de santé, lequel était compatible avec un emploi d'informaticien à 70 %, voire à terme à 100 % avec une prise en charge psychiatrique. S._ a manifesté son opposition, par lettre du 12 août 2008, estimant que la Clinique X._ n'avait pas tenu compte de sa problématique d'apnée du sommeil l'empêchant de travailler davantage qu'à mi-temps. L'office AI a requis un avis complémentaire de la Clinique X._ sur la question de l'apnée du sommeil; le docteur P._ s'est déterminé dans un rapport du 27 octobre 2008. Par décision du 3 novembre 2008, l'office AI a supprimé la rente après avoir fixé le degré d'invalidité à 30 %. B. S._ a déféré cette décision au Tribunal administratif du canton de Berne, qui l'a débouté par jugement du 25 mai 2009. C. S._ interjette un recours en matière de droit public contre ce jugement dont il demande l'annulation ainsi que celle de la décision de l'office AI du 3 novembre 2008, avec suite de frais et dépens. L'intimé et l'Office fédéral des assurances sociales n'ont pas été invités à se déterminer. 