Faits: A. Ressortissante de la République démocratique du Congo (ci-après: le Congo) née en 1982, X._ est arrivée en Suisse le 22 juin 2005 et y a déposé une demande d'asile qui a été définitivement rejetée le 1er décembre 2005. Le 16 avril 2006, elle a tenté de quitter la Suisse avec une carte d'identité ne lui appartenant pas, ce qui lui a valu une condamnation pénale. Elle a été annoncée disparue du 7 juin au 25 septembre 2006. Le 30 janvier 2007, elle a donné naissance à un fils, Y._, que son père, ressortissant congolais naturalisé suisse, a reconnu le 6 mars 2007, de sorte que cet enfant a la nationalité suisse. B. Le 14 avril 2007, X._ a adressé une demande de régularisation de séjour au Service des migrations du canton de Berne (ci-après: le Service cantonal) en invoquant qu'elle venait de donner le jour à un enfant que le père, de nationalité suisse, avait reconnu. Cette requête a été rejetée le 28 août 2007. X._ a recouru contre la décision du Service cantonal du 28 août 2007 auprès de la Direction de la police et des affaires militaires du canton de Berne (ci-après: la Direction cantonale). Par décision du 24 avril 2008, celle-ci a rejeté le recours dans la mesure où il portait sur l'octroi d'une autorisation de séjour et refusé d'entrer en matière sur la demande d'admission provisoire formée implicitement par l'intéressée. X._ a alors porté sa cause devant la Cour des affaires de langue française du Tribunal administratif du canton de Berne (ci-après: le Tribunal administratif). Par jugement du 5 décembre 2008, son recours a été admis dans la mesure où il s'en prenait aux frais de procédure et rejeté pour le reste. Le Tribunal administratif a notamment retenu que le père de Y._ n'avait jamais vécu avec cet enfant, ni apparemment envisagé de vie commune avec lui et sa mère, et il a rappelé que ledit père était marié à une autre femme et avait encore trois enfants nés de relations avec deux autres femmes. Il a considéré que des liens existaient sur les plans financier et affectif entre Y._ et son père, mais qu'ils ne dépassaient pas le cadre commun. Il a estimé en conclusion que X._ ne remplissait pas l'ensemble des conditions auxquelles était soumis le droit de demeurer en Suisse sur la base de l'art. 8 par. 1 CEDH. C. Le 5 janvier 2009, X._ a déposé un recours en matière de droit public au Tribunal fédéral contre le jugement du Tribunal administratif du 5 décembre 2008. Elle demande l'annulation du jugement attaqué et l'octroi d'une autorisation de séjour (permis B) fondée sur l'art. 8 CEDH ou une mesure de substitution compte tenu d'un concubinage stable et de longue durée. Dans ses conclusions, elle demande aussi au Tribunal fédéral de tenir compte des intérêts supérieurs de son enfant et des risques de traitements inhumains et prohibés par l'art. 3 CEDH auxquels elle serait exposée dans son pays. La recourante sollicite l'assistance judiciaire "gratuite et totale". Le Tribunal administratif a renoncé à se déterminer sur le recours. La Direction cantonale conclut, sous suite de frais, au rejet du recours et de la demande d'assistance judiciaire. Le Service cantonal propose de rejeter le recours, à l'instar de l'Office fédéral des migrations.