Faits :
A.
A.a. A._, née en 1957, travaillait à temps partiel comme employée d'entretien. Elle a déposé une première demande de prestations de l'assurance-invalidité le 27 juin 2000, qui a été rejetée par l'Office de l'assurance-invalidité du canton de Genève (ci-après: l'office AI) par décision sur opposition du 27 novembre 2003. Le 20 juillet 2004, le Tribunal cantonal des assurances sociales de la République et canton de Genève (aujourd'hui Cour de justice de la République et canton de Genève, Chambre des assurances sociales) a débouté l'assurée.
A.b. Le 27 juillet 2016, A._ a déposé une nouvelle demande de prestations. L'office AI a recueilli l'avis des docteurs B._, spécialiste en médecine interne (des 25 août et 16 novembre 2016), C._, médecin praticien (du 27 février 2017), et D._, spécialiste en psychiatrie et psychothérapie (du 30 mai 2017), ainsi que celui des médecins de la Clinique de réhabilitation de E._ (du 12 juin 2017). Le 25 juin 2017, la doctoresse F._, spécialiste en médecine interne générale et médecin auprès du Service médical régional (SMR) de l'assurance-invalidité, a retenu les diagnostics suivants avec effet sur la capacité de travail: glaucome chronique à angle ouvert bilatéral avec diminution du champ visuel bilatéral, gonarthrose bilatérale et troubles de la marche et de l'équilibre après un accident ischémique transitoire (AIT) survenu en juillet 2014. Le médecin du SMR a conclu que la capacité de travail de l'assurée était nulle dans toute activité professionnelle depuis août 2015.
L'office AI a ensuite mis en oeuvre une enquête ménagère au domicile de l'assurée. Selon le rapport établi le 12 décembre 2017, l'assurée présentait un empêchement de 35 % pour les travaux ménagers (après prise en compte de l'aide apportée par les membres de la famille à hauteur de 30,75 %). Par décision du 27 août 2018, l'office AI a, en application de la méthode mixte d'évaluation de l'invalidité, octroyé à A._ une demi-rente d'invalidité dès le 1 er janvier 2017 (taux d'invalidité de 53 %).
B.
A._ a déféré cette décision à la Cour de justice de la République et canton de Genève, Chambre des assurances sociales, et produit notamment l'avis des docteurs B._ (du 18 octobre 2018) et D._ (du 19 octobre 2018). Statuant le 18 juin 2019, la Cour de justice a rejeté le recours.
C.
A._ forme un recours en matière de droit public contre ce jugement dont elle demande l'annulation. Elle conclut à l'octroi d'une rente entière de l'assurance-invalidité dès le 1 er janvier 2017. A titre subsidiaire, elle demande le renvoi de la cause à l'autorité précédente pour instruction complémentaire et nouvelle décision, dans le sens des considérants.
L'office AI conclut au rejet du recours, tandis que l'Office fédéral des assurances sociales a renoncé à se déterminer.
Considérant en droit :
1.
Le recours en matière de droit public peut être formé notamment pour violation du droit fédéral (art. 95 let. a LTF), que le Tribunal fédéral applique d'office (art. 106 al. 1 LTF), n'étant limité ni par les arguments de la partie recourante, ni par la motivation de l'autorité précédente. Le Tribunal fédéral fonde son raisonnement sur les faits retenus par la juridiction de première instance (art. 105 al. 1 LTF) sauf s'ils ont été établis de façon manifestement inexacte ou en violation du droit au sens de l'art. 95 LTF (art. 105 al. 2 LTF).
2.
Le litige porte sur l'étendue du droit de la recourante à une rente de l'assurance-invalidité dès le 1er janvier 2017 (rente entière au lieu de la demi-rente d'invalidité reconnue par l'intimé et confirmée par la juridiction cantonale). Le jugement entrepris expose de manière complète les dispositions légales et les principes jurisprudentiels relatifs à la notion d'invalidité (art. 7 et 8 al. 1 LPGA, en lien avec l'art. 4 al. 1 LAI) et à son évaluation, en particulier s'agissant de la détermination du statut de l'assuré (art. 8 LPGA et art. 28a LAI) et de l'évaluation de l'invalidité des assurés exerçant une activité lucrative à temps partiel (méthode mixte; art. 28a al. 2 et 3 LAI et art. 16 LPGA). Il suffit d'y renvoyer.
3.
3.1. En application de la méthode mixte d'évaluation de l'invalidité, la juridiction cantonale a retenu que si l'assurée avait été en bonne santé, elle aurait continué à consacrer 28 % de son temps à l'exercice d'une activité professionnelle de nettoyeuse et le solde (72 %) à l'accomplissement de ses travaux habituels. Se fondant sur l'enquête ménagère, les premiers juges ont constaté que la recourante présentait un empêchement pondéré sans exigibilité (des membres de la famille) de 66 %. Ils ont retenu qu'une exigibilité globale de 30,8 % de la part du mari, du fils et de la belle-fille de la recourante était certes très élevée, mais restait encore dans la fourchette admissible compte tenu des circonstances familiales. Quant aux critiques de la recourante portant sur les différents taux d'empêchement retenus par l'enquêtrice au regard des avis des docteurs B._ et D._, elles pouvaient rester sans réponse. Même en augmentant ces taux, en passant de 70 à 90 % pour l'entretien du logement, de 90 à 100 % pour les courses et emplettes et de "70" (recte: 60) à 100 % pour la lessive, comme le demandait la recourante, les premiers juges ont constaté que l'empêchement pondéré en résultant s'élèverait à 41 %. Compte tenu d'une incapacité de travail de 100 % dans l'activité lucrative, la recourante présenterait dès lors un degré d'invalidité de 58 % ([100 % x 0.28] + [41 % x 0.72]), soit un degré d'invalidité insuffisant pour justifier une rente supérieure à une demi-rente d'invalidité.
3.2. Invoquant une violation des art. 9 et 29 al. 2 Cst., en lien avec l'art. 61 let. c LPGA, la recourante reproche à la juridiction cantonale d'avoir tout d'abord omis de prendre en considération l'aggravation de son état de santé attestée par les docteurs B._ et D._ depuis le début de l'année 2018 (avis des 18 et 19 octobre 2018). Elle soutient ensuite que les conclusions de l'enquête à domicile sont dénuées de toute crédibilité. Elle fait enfin valoir que la juridiction cantonale a erré dans ses calculs au moment de déterminer les taux d'empêchement.
4.
Comme le fait valoir la recourante, la juridiction cantonale a commis en l'espèce une erreur manifeste de calcul.
4.1. Dans son rapport du 12 décembre 2017, l'enquêtrice de l'assurance-invalidité a pondéré les activités comme suit: conduite du ménage (5 %), alimentation (35 %), entretien du logement (20 %), emplettes et courses diverses (10 %), lessive et entretien des vêtements (10 %), soins aux enfants ou aux autres membres de la famille (10 %), divers (10 %). Elle a fixé ensuite les empêchements à 40 % pour la conduite du ménage (exigibilité de 25 %), 60 % pour l'alimentation (exigibilité de 30 %), 70 % pour l'entretien du logement (exigibilité de 30 %), 90 % pour les emplettes et courses diverses (exigibilité de 90 %), 60 % pour la lessive et entretien des vêtements (exigibilité de 20 %), 50 % pour les soins aux enfants ou aux autres membres de la famille (exigibilité de 0 %) et 90 % pour le poste "divers" (exigibilité de 20 %). Selon les conclusions du rapport du 12 décembre 2017, la recourante présentait dès lors un taux d'empêchement pondéré de 35 % (soit 35,25 % déterminé comme suit: 5 % x [0,4 - 0,25] + 35 % x [0,6 - 0,3] + 20 % x [0,7 - 0,3] + 10 % x [0,9 - 0,9] + 10 % x [0,6 - 0,2] + 10 % x [0,5 - 0] + 10 % x [0,9 - 0,2]).
4.2. Si on reprend le raisonnement de la juridiction cantonale en augmentant le taux d'empêchement de 70 à 90 % pour l'entretien du logement, de 90 à 100 % pour les courses et emplettes et de 60 à 100 % pour la lessive et entretien des vêtements, le taux d'empêchement dans les travaux habituels s'élèverait à 44,25 % (soit 5 % x [0,4 - 0,25] + 35 % x [0,6 - 0,3] + 20 % x [[0,9] - 0,3] + 10 % x [[1,0] - 0,9] + 10 % x [[1,0] - 0,2] + 10 % x [0,5 - 0] + 10 % x [0,9 - 0,2]), et non pas à 41 %, comme retenu par inadvertance par la juridiction cantonale.
En prenant en compte les différents taux d'empêchement invoqués par la recourante en instance cantonale, le degré d'invalidité s'élèverait dès lors à 59,86 % ([100 % x 0,28] + [44,25 % x 0,72]), soit un taux d'invalidité arrondi de 60 % ouvrant droit à des prestations plus élevées qu'une demi-rente d'invalidité (art. 28 al. 2 LAI).
5.
En conséquence, la juridiction cantonale ne pouvait pas renoncer à examiner la pertinence des griefs de la recourante portant sur les conclusions de l'enquête ménagère au regard des avis médicaux. Il convient par conséquent de lui renvoyer la cause afin qu'elle en reprenne l'instruction de la cause, puis statue à nouveau. Dans ces circonstances, le Tribunal fédéral n'a pas à examiner les autres griefs soulevés par la recourante.
6.
Succombant, l'intimé supportera les frais de justice afférents à la procédure (art. 66 al. 1 LTF) ainsi que les dépens que peut prétendre la recourante (art. 68 al. 1 LTF).
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est partiellement admis. Le jugement de la Cour de justice de la République et canton de Genève, Chambre des assurances sociales, du 18 juin 2019 est annulé. La cause est renvoyée à la Cour de justice de la République et canton de Genève, Chambre des assurances sociales, pour nouvelle décision dans le sens des considérants.
2.
Les frais judiciaires, arrêtés à 800 fr., sont mis à la charge de l'intimé.
3.
L'intimé versera à la recourante la somme de 2800 fr. à titre de dépens pour la procédure devant le Tribunal fédéral.
4.
Le présent arrêt est communiqué aux parties, à la Cour de justice de la République et canton de Genève, Chambre des assurances sociales, et à l'Office fédéral des assurances sociales.
Lucerne, le 30 juin 2020
Au nom de la IIe Cour de droit social
du Tribunal fédéral suisse
Le Président : Parrino
Le Greffier : Bleicker